記事一覧
技術記事・日々の学びをまとめています。
チームトポロジーとは?エンジニアリング組織の構成方法
チームトポロジーの4チームタイプ(ストリームアラインド・プラットフォーム・イネイブリング・コンプリケイテッドサブシステム)と3つのインタラクションモード、コンウェイの法則・認知負荷を軸にした組織設計を解説します。
最新記事
ソフトウェア開発チームがMVVを定めるべき理由
ソフトウェア開発において「技術的に正しいか」の議論は重要ですが、技術的な正解はトレンドや環境、ビジネスフェーズによって容易に変わってしまいます。この記事では、開発チームがMVV(ミッション・ビジョン・バリュー)を定めるべき理由を、目的の明確化やチームの方向づけの観点から解説します。
Web配信の技術―HTTPキャッシュ・リバースプロキシ・CDNを活用する
『Web配信の技術―HTTPキャッシュ・リバースプロキシ・CDNを活用する』の書評。Webのコンテンツ配信におけるキャッシュについて網羅的に解説する一冊。HTTPキャッシュやリバースプロキシ、CDNを活用した効率的な配信の考え方がまとまっており、キャッシュ最適化を考える際に手元に置いておきたい。
具体と抽象 ―世界が変わって見える知性のしくみ
『具体と抽象 ―世界が変わって見える知性のしくみ』の書評。抽象的な思考の大切さと、具体と抽象という二つの考え方の対比に焦点を当てた一冊。多くの人が体系的に学ばないまま終えてしまうこのテーマを、平易に解きほぐす。抽象が苦手な人にも、日頃から抽象で考える人にも発見がある。
問いのデザイン: 創造的対話のファシリテーション
『問いのデザイン 創造的対話のファシリテーション』の書評。問いをどう立て、考えるかをテーマにした一冊。問いの質が成果の質に直結するという視点から、既存の枠を超えた問いを引き出し、発見する方法を教えてくれる。創造性を刺激される。
目的ドリブンの思考法
『目的ドリブンの思考法』の書評。目的・目標・手段というフレームワークで、仕事の成果をどう生み出すかを説く一冊。方針や実行、成果が戦略に依存し、その源泉が企業の文化にあるという視点から、「文化は戦略にまさる」という考え方を腑に落として理解できる。
2025年の振り返りと抱負
2025年の1年を振り返り、来年の抱負を記した記事です。振り返りブログを書き始めて8回目となる今回は、システム設計の習熟やAIへの依存との向き合い方、技術スキルの成長といったテーマを軸に、この1年の歩みとハイライトをまとめます。
ソフトウェア設計のモジュール化の原則|結合バランスと持続可能な成長
『ソフトウェア設計の結合バランス 持続可能な成長を支えるモジュール化の原則』の書評。結合という切り口からアーキテクチャの複雑性をどう管理するかを理論的に学べる珍しい一冊。結合に関する分析の観点が非常によく整理されており、設計するときに辞書的に参照したくなる。
プラットフォームエンジニアリングとは?内部開発者プラットフォームの構築
プラットフォームエンジニアリングとは何かを解説する記事です。開発者の認知負荷を下げて生産性を高めるための内部開発者プラットフォーム(IDP:Internal Developer Platform)とはどのようなものか、その構築の考え方や、DevOps・SREといった近接する概念との関係を整理します。
AIを使ったコードリーディングの手順について
AIを活用したコードリーディング手順を解説。README・ドキュメント・コールグラフツール活用による全体像把握、読む順序の手順書作成、チェックリスト・メモ活用で複雑なコード理解を効率化する実践的手法を紹介します。
クリーンコードクックブック ―コードの設計と品質を改善するためのレシピ集
『クリーンコードクックブック ―コードの設計と品質を改善するためのレシピ集』の書評。全単射や偶発的複雑さといった概念を軸に、コードの設計と品質を改善するテクニックをレシピ集の形で学べる一冊。よく知られた法則も網羅的にまとまっており、手元に置いておきたくなる。
初めてのGo言語 第2版 ―他言語プログラマーのためのイディオマティックGo実践ガイド
『初めてのGo言語 第2版』の書評。単なる入門書ではなく、Goの思想やイディオムを数多く紹介し、言語への理解を深められる一冊。他の入門書が拾わない細部にも踏み込んでおり、他言語の経験者がGoらしい書き方(イディオマティックGo)を身につけるのに向いている。
継承より委譲について
継承より委譲が推奨される理由を解説。ダックタイピング・リスコフの置換原則(LSP)・Goのインターフェースを通じて、四角形と正方形の例から設計の落とし穴と委譲の利点を示します。
なぜインターフェースの方が実装より変更頻度が低いのか
『クリーンコードクックブック』を読んで気になった、「インターフェースは実装よりも変更頻度が低い」という主張を言語化した記事です。インターフェース(契約)と実装(手段)の役割の違いに着目し、外部に公開する契約は安定的に保ちつつ実装は自由に変える、という設計原則を解説します。
Singletonパターンはなぜアンチパターンなのか
シングルトンパターンはなぜアンチパターンだと言われるのかについて、具体的なGoのコード例を交えて解説する記事です。最もよく知られ広く使われるパターンの1つでありながら、クリーンコードや保守性の観点で抱える問題点を整理し、依存性の注入といった代替となる設計を紹介します。
TUI開発で役立つターミナル仕様の理解
TUI(Terminal User Interface)アプリケーションを開発する基盤となる、ターミナルの仕様について解説する記事です。既存ライブラリの裏でターミナルがどう動作しているのかに踏み込み、Line Disciplineやtermios、ANSIエスケープシーケンス、Raw Modeの動作原理を、Goでの実装を交えて紹介します。
テストダブル解説:モック・スタブ・フェイク・スパイの違い
単体テストにおいて、テスト対象が外部のデータベースやAPIサーバーなどに依存することで生じる問題を解決するテストダブルについて解説する記事です。モック・スタブ・フェイク・スパイ・ダミーそれぞれの違いと、ユニットテストでの適切な使い分けを学べる内容にまとめています。
システム設計面接の傾向と対策
『システム設計面接の傾向と対策』の書評。面接対策をテーマにしつつ、システム設計のパターンを学ぶのにもちょうど良い一冊。設計の勘所を押さえた質問のパターンが整理されており、受験者だけでなく作問する面接官にとっても参考になる。
ストリートコーダー
『ストリートコーダー』の書評。現場(ストリート)で役立つtipsを、ジョークを交えて語る一冊。アルゴリズムやテスト、リファクタリングからセキュリティ、性能最適化まで幅広く扱い、現場で遭遇する課題への向き合い方を具体的に示す。初心者にも経験者にも学びがある。
セッションベースとトークンベースの認証方式について
Webアプリケーションにおける認証方式の選択について、セッションベース認証とトークンベース認証を比較して解説する記事です。それぞれの技術的な仕組みの詳細をふまえ、スケーラビリティやセキュリティ、保守性といった観点から、どちらを選ぶべきかを考えるための考慮事項を整理します。