iimon TECH BLOG

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

エンジニア&デザイナーのためのフォント入門

皆様ごきげんよう。タクシです。 最近、花粉症をこの世から消す方法と同じぐらい私はフォントについて調べています。 開いたWebサイトがどのフォントを使っているかをデベロッパーツールで確認するのが習慣です。1人でフォント当てクイズをしたりもします。…

Macのアクティビティモニタを理解する

はじめに アクティビティモニタとは 確認できること プロセスとは CPUタブ プロセス一覧 グラフの表示 メモリタブ メモリの全体像 グラフの表示 各項目の意味 メモリプレッシャーグラフ スワップ使用領域 エネルギータブ プロセス一覧の主な列 ウィンドウ下…

「なぜダメか」で学ぶクラス設計

導入 こんにちは!iimonで「入力速いもん」の開発を担当しているなかむ〜です! 弊社のメイン製品である「入力速いもん」は、リリースから時間が経っていることもあり、現在はレガシーな設計から「新しく保守しやすい設計」への移行を絶賛進めている最中です…

型に縛られず、型を守る。忘れがちな「ジェネリクス」を改めて整理して武器にする

こんにちは。iimonでエンジニアをしているhayashiと申します。 普段は主に拡張機能を開発しております。 今回はジェネリクスについて何となく分かったつもりではいたけれど、 忘れがちという事に気付きまして、ちゃんとアウトプットしてみようと思います。 …

Chrome拡張機能のE2Eテスト、PlaywrightとPuppeteerどっちを選ぶ?調べて比較してみた

目次 1. はじめに 2. PlaywrightとPuppeteerの関係性 3. Chrome拡張のテスト観点での技術比較 4. 公式ドキュメント・情報量の比較 5. CI/CDへの組み込みやすさ 6. 結論:どちらを選ぶか 7. おわりに 1. はじめに こんにちは!iimonでフロントエンドエンジニ…

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