iimon TECH BLOG

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

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

Chromeってどんなふうにうごいているの?

はじめに Chromeのアーキテクチャはマルチプロセス?!! マルチプロセスを採用することの意味 マルチプロセスを採用することの課題とその対応 まとめ さいごに はじめに こんにちは!iimonでエンジニアをしているひがです! 先日アドベントカレンダー2…

AI駆動開発の新常識「SDD」- Spec Kitとcc-sddを実際に使って感じたこと

1. はじめに こんにちは!株式会社iimonでエンジニアをしている「みよちゃん」です! いや〜来てますねAIの波。開発現場でもAIは「あると便利なもの」から「ないと困るもの」に変化しつつありますよね。この記事もAIに添削してもらいながら執筆しています。 …

Chrome拡張機能開発で意識したいセキュリティ対策(Manifest V3)

はじめに 前提: Content ScriptとService Workerの違い 公式ドキュメントに基づくセキュリティ対策 Content Scriptの信頼性が低い理由 1. Content ScriptがアクセスするDOMの信頼性が低い 2. Webページと同じレンダラプロセスで実行される 対策 1. Content S…

TypeScriptの型システム、実はチューリング完全って知ってましたか?

はじめに 基礎パーツ作成 タプルのlengthで数値を取得 タプルを生成するユーティリティ タプルの結合 足し算の実装 引き算の実装 注意点 再帰の深さ 整数限定 チューリング完全について 応用編 掛け算 比較 まとめ 最後に 参考 はじめに こんにちは!株式会…

チーム目標に合わせてJestカバレッジを"狙い撃ち"計測する方法

こんにちは!iimonでフロントエンドを担当しております、まつむらです! 私たちのチームでは開発中のプロダクトにおいてテストコードが不足していたため、カバレッジを指標としてテストを増やす取り組みを行っていました。 もちろんカバレッジを上げることが…

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

1. はじめに 2. 6章 リファクタリングはじめの一歩 パラメータオブジェクトの導入 3. 7章 カプセル化 レコードのカプセル化 4. 8章 特性の移動 5. 9章 データの再編成 6. 10章 条件記述の単純化 7. 11章 APIのリファクタリング コマンドにおける関数の置き換…

MySQLのカラム追加や削除はなぜ速くなったのか?

はじめに みなさま、本年もよろしくお願いいたします。 現在のMySQLは本番環境でもカラム追加も懸念すべきことも少なくなり、ALTER TABLE ... ADD COLUMN を実行すれば、テーブルのサイズやレコード数に関係なく一瞬で完了するようになりました。 以前は本番…

JWT認証の仕組みについて調べてみた

■はじめに ■認証とは? ■JWT認証とは ■セッション認証方式 ◆処理フロー ◆セッション認証方式の課題点 ■JWTの構造 ■HMAC(Hash-based Message Authentication Code)とは ■アクセストークンとリフレッシュトークン ■JWTを使った認証フローを確認してみる ■悪…