「切り裂きジャック(Jack the Ripper)」とプログラムのソースコードには、実は共通点がたくさんあります。本書では、科学的犯罪捜査の手法を活用し、犯罪の地理的プロファイルを使ってコミットログからコードベースを視覚化し、開発のホットスポット(不具合が発生している可能性が高いところ)を見つけ、技術的負債に優先順位を付け、隠れた依存関係を明らかにします。それにより、リファクタリングの方向性を評価したり、チームがソフトウェア アーキテクチャにどのように影響するかを理解したりといった戦略を立てることが可能になります。また、これらの分析や戦略は、プログラミング言語、あるいは、コードベースの規模を問いません。
本書は、大きく3つの部に分かれています。「第1部 理解しにくいコードを特定する」では、ソフトウェアのソースコードを犯罪現場のように分析し、問題点を特定・解決することで、よりよいソフトウェアを開発する方法論を紹介します。「第2部 支援的なソフトウェアアーキテクチャの構築」では、ソースコードの特定の問題だけでなく、システム全体を俯瞰し、設計と実装の整合性を検証する方法を解説します。ソースコードの履歴を分析することで、開発者の意図やシステムの進化を理解し、リファクタリングやモダナイゼーションに役立つ情報を引き出します。「第3部 コードの社会的側面」では、チームの組織化とソフトウェアアーキテクチャのミスマッチが、コードの品質低下やコミュニケーション問題を引き起こすことを解説します。社会的バイアスやチームの決定過程がソフトウェア開発に与える影響も分析し、よりよいチーム開発を実現するためのヒントを提供します。また、付録には、各章の章末にある練習問題の解答を掲載しています。
○ 目次
第1部 理解しにくいコードを特定する
第1章 理解するための最適化
第2章 コードを犯罪現場として扱う
第3章 ホットスポットの検出:コードの犯罪者プロファイルを作成する
第4章 ホットスポットの応用:人の視点に立ってコードを可視化する
第5章 劣化している構造を突き止める
第6章 複雑なコードを修正する
第7章 技術的負債のビジネスへの影響を伝える
第2部 支援的なソフトウェアアーキテクチャの構築
第8章 コードは協力的な目撃者
第9章 アーキテクチャのレビュー:データに基づく設計の見直し
第10章 従うべきは美しさ
第11章 隠れたボトルネックを明らかにする:デリバリーと自動化
第3部 コードの社会的側面
第12章 社会的バイアス、グループ、偽の連続殺人犯
第13章 コードベースで組織的な指標を発見する
第14章 技術的な問題が組織的な問題を引き起こすとき
第15章 システムの知識マップを作成する
第16章 未来に向かって
付録
付録A 練習問題の解答
付録B エンクロージャの可視化
よく利用するジャンルを設定できます。
「+」ボタンからジャンル(検索条件)を絞って検索してください。
表示の並び替えができます。