iimon TECH BLOG

iimonエンジニアが得られた経験や知識を共有して世の中をイイモンにしていくためのブログです

2025-01-01から1年間の記事一覧

これぞ拡張機能の真髄!chrome.webRequest APIについてまとめてみた

こんにちは。iimonでエンジニアをしているhayashiと申します。 普段は主に拡張機能を開発しております。 本記事はiimon Advent Calendar 2025 24日目の記事となります! 今回はこれぞ拡張機能の真髄って個人的に思ったchrome.webRequest APIについて解説した…

不気味の谷から考える:違和感とユーザー体験

はじめに 不気味の谷 AIにおける不気味の谷 動画生成AI AIのハルシネーション 開発と不気味の谷の関係 不気味の谷を避ける配慮 さいごに 参考 はじめに 本記事はiimon Advent Calendar 2025 23日目の記事となります! みなさまごきげんいかがでしょうか。 株…

Claude Codeサブエージェントハンズオン

はじめに 本記事はiimonアドベントカレンダー22日目の記事となります。 こんにちは、kogureです。 あっという間に12月ですね、去年にアドベントカレンダーを書いたのが昨日のことのようです。 こうやってあっという間に歳をとっていくのですね。怖いですね。…

最初から完璧は目指すな──初めて設計するあなたへ伝えたい、TypeScript設計の最低ライン

初めて0→1設計を任された人向けに、TypeScriptを例に「壊れにくく変更に強い設計」を解説。依存方向の整理、副作用の隔離、テストファースト、仕様変更に強い型設計など、品質とスピードを両立する最低限の設計ポイントを紹介する記事です。

SwiftUIで「推し活カレンダー」アプリを作ってみた

この記事はiimon Advent Calendar 2025 20日目の記事となります! はじめに 開発環境 完成したアプリ 開発の流れ 1. まずはシンプルなスケジュールアプリから @Stateと@Bindingの使い分け 2. カレンダーUIを自作 日付セルのデザイン 3. カテゴリをenumで管理…

MutationObserverを理解する

MutationObserverとは 処理ステップと実装方法 オプションの設定 childList subtree attributes attributeFilter MutationRecordのプロパティ 無限ループの罠 廃止されたMutationEvent まとめ 参考記事 こんにちは。 iimonアドベントカレンダー19日目の記事…

Claude Codeと一緒に行う学習方法を試してみる

こんにちは、木村です。 本記事はiimonアドベントカレンダー18日目の記事となります。 最近Claude Codeを使用し始めたんですが、AIって便利ですね!全肯定でAIを使うのは良くないとは思うのですが、できることが多くて試しきれないと思うこの頃です。 Claude…

Node.js × Docker ベースイメージをどうやって選ぶか

はじめに Docker イメージとは Node.js Docker公式イメージとは Node.js Dockerイメージの種類 node:<version> node:<version>-alpine node:<version>-slim 補足:Debianのコードネーム イメージサイズ イメージサイズが重要な理由 イメージサイズの確認 イメージサイズ一覧 ベースイメ</version></version></version>…

RISC-Vはなぜシンプルなのか?x86との比較で理解する設計思想

本記事はiimon Advent Calendar 2025 16日目の記事となります! こんにちは、iimonでエンジニアをしている須藤です。 RISC-V(リスクファイブ)は「シンプルでエレガント」と言われますが、実感が湧いていなかったので、今回はx86との比較を通じて、シンプル…

PMに「Hono書いて」と言われたのでCloudflareでAIチャットボットを作ってみた

◼️ はじめに ◼️ Honoとは ◼️ Cloudflareとは ◼️ 今回作成するアプリのアーキテクチャに関して 各サービスの役割 ◼️ プロジェクト作成 Honoを使用するためのプロジェクト作成 各リソースを作成 型定義のインストール D1テーブル作成 ◼️ 実装 Bindings型定義 …

JavaScriptのWeb Audio APIを使ってジングルベルを演奏してみよう

こんにちは!iimonでエンジニアをしている、でっさんです。 本記事はiimon Advent Calendar 2025 14日目の記事となります! 今年はダイエットに挑戦したものの、チートデイを設けすぎてリバウンドしてしまいました。 来年は、みなさんの助言を真摯に受…

パソコンってなんで動くの?パーツ編

はじめに 主要パーツの名称 ハードウェアとソフトウェアの違い 主要パーツの役割 トータルバランス ボトルネック現象とは? ボトルネック回避のために 適切なバランスはどうやって調べればいいの? まとめ 参考資料 はじめに こんにちは!株式会社iimonでエ…

AI-DLCを導入するとしたら?それ以前に「うちのコードベース、AIに説明できる状態ですか?」

はじめに AI-DLCとは なんの略称やねん AI-Driven Development Lifecycleの概念 開始( Inception )フェーズ 構築( Construction )フェーズ 運用( Operation )フェーズ スプリントでは遅い!?ボルトという単位 AI-DLC実践事例 そもそもこの記事を書こうと思…

EXPLAINで探る!SQLが速くなる・遅くなる理由

はじめに 前提 EXPLAIN(実行計画)とは EXPLAINを使ってみる EXPLAIN の主なフィールドを見てみよーー インデックスありと無しのEXPLAINを比較してみた ▼ インデックス無しで検索した場合の EXPLAIN ▼ インデックスありで検索した場合の EXPLAIN カバリング…

React Router v7を使ったルーティングを体験してみた

■はじめに ■環境 ■React Routerのインストール ■基本的なルーティングの定義 ◆コンポーネント ■ネストルーティングの定義 ◆パスを完全指定した場合のルーティング ◆ネストルーティングと< Outlet >を使った共通レイアウトの維持 ■ルーティング定義の分割 ■UR…

AIコーディングエージェントの理解を深めるために自作してみた

こんにちは!iimonでCTOをしているもりごです。 本記事はiimon Advent Calendar 20259日目の記事となります! 最近ではClaude Code、Cursor、CodexなどAIコーディングエージェントを使用してコードを書くことが当たり前の様になっています。 こういったAIコ…

Chrome拡張機能を自動リロードするVite Pluginを自作してみた

はじめに 本記事はiimon Advent Calendar 2025 8日目の記事となります。 SREチームに所属しています。hogeです。 普段はインフラまわりの業務が中心なのですが、時折プロダクト開発チームが進めているChrome拡張機能の開発を手伝うことがあります。 また、個…

積読解消プロジェクト「リファクタリング(第2版)既存のコードを安全に改善する」Part1

はじめに 個人的にリファクタリングについて思うこと リファクタリングの原則 リファクタリングの定義 リファクタリングをする理由 リファクタリングはプログラミングを速める より詳しくリファクタする理由を考える リファクタリングの問題点 リファクタリ…

Chrome拡張機能のE2Eテスト自動化を検討してみた

1. はじめに 2. なぜE2Eテストの自動化を検討しているのか 現状の課題 自動化で解決したいこと 3. E2Eテストツールの比較 Playwright Puppeteer Cypress Selenium 比較まとめ 4. Chrome拡張機能のE2Eテスト、ここが難しい 通常のWebアプリとの違い 拡張機能…

V8 JavaScript engineで寒い冬を暖かく過ごしたい

はじめに v8の概略 JavaScriptの処理ってどうなっているの? スタック領域とヒープ領域 コールスタック タスクキューとマイクロタスクキュー イベントループ v8で遊ぶ まとめ Appendix さいごに 参考 はじめに こんにちは! 株式会社iimonでエンジニア…

LLMの仕組みからプロンプトエンジニアリングの必要性を理解する

はじめに プロンプトエンジニアリングとは LLMの仕組みをざっくり理解する LLMとは トークン化 次のトークンを予測する プロンプトの工夫が必要な理由 まとめ 参考資料 はじめに こんにちは!株式会社iimonでエンジニアをしている遠藤です。 本記事は iimon…

初心者向け:Node.js(Express)でREST APIを最速で作ってみた

はじめに 株式会社iimonでフロントエンドを担当している新卒のクリスです。 この記事では、初心者でも10分で作れるシンプルな REST API を Node.js と Express を使って作る方法を紹介します。 「APIって何?」という人でも大丈夫です。 必要なコードはほん…

gh × Claude Code で Notion タスクから実装まで自動化する

1. はじめに この記事で作るもの 対象読者・前提条件 2. 使用ツールの準備 Notion API Claude Code gh(GitHub CLI) 3. 【ハンズオン】Notion タスク → 実装自動化 完成イメージ Step 1: Notion API でタスク内容を取得 Step 2: Claude Code で実装コードを…

CTOの一言で大学生になった29歳エンジニアの話

はじめに 大学入学編 なぜ大学に入学したのか 基礎を体系的に学びたい 海外への移住 大学選び 主な通信大学 大学通学編 メリット 知識の引き出し 学習習慣 デメリット 単位を取らねば 他の勉強に制限がかかる これから社会人大学生になろうと考えているあな…

Next.js/ReactServerComponentに入門してみる

こんにちは!木村です! 普段Reactを使用して開発をしているのですが、データの通信の扱いがなかなか難しいなと感じるこの頃です。そんな中で、なんだかちらちらと話に聞くReactServerComponentってどんな感じなんだろう。。。となったので、実際に触ってみ…

【Streams API】メモリ効率と低遅延なデータ処理

はじめに こんにちは。iimonでエンジニアをしている保田です。 本日は、Web標準技術であるStreams APIについて、その基本と実装サンプルまでを解説します。TypeScriptを用いた具体的なコード例を交えながら、Streams APIがなぜ必要で、どのように活用すべき…

FARM スタックを使ったフルスタックアプリ開発

FARM スタックとは? こんにちは。クリスと申します。 私はジュニアエンジニアとして、さまざまな技術にいつも興味があり、その概念をできるだけ理解しようとしています。最近はフルスタックエンジニアを目指して勉強しているのですが、その中で、複数の技術…

LGTM!2

はじめに こんにちは、木暮です。 最近、気温が一気に落ちてきてかなり過ごし易くなりましたね! tech.iimon.co.jp 前回はコードレビューの目的やコードレビューを円滑に進めるためのルールの作り方について復習しました。 www.manning.com 今回はコードレビ…

【初心者向け】 FirebaseとGCP / Google Cloudってどう違う?(というかどこまで無料なの!)

みなさまこんにちは。たくしです。 最近は一段と冷えてきましたね〜!私はこの季節が一年で一番元気な時期です。(冬最高!) そして来月にはアドベントカレンダーも!皆さんが何を書くのか楽しみです!✨ ※(追記)記事内でGoogle Cloud Platformと書いてあ…

【正規表現】先読みと後読みを理解する

はじめに 肯定的先読み:A(?=B) 否定的先読み:A(?!B) 肯定的後読み:(?<=B)A 否定的後読み:(?