犯罪捜査技術を活用したソフトウェア開発手法 フォレンジックアプローチによるソースコード分析
Adam Tornhill/著 園田道夫/監訳 クイープ/訳
発売日:2024年10月
セブン-イレブン受取り(送料無料)
発送目安
発売日(発売日以降は当日)~2日で発送
宅配(送料¥550税込)
発送目安
発売日(発売日以降は当日)~2日で発送
交通状況・天候の影響や注文が集中した場合等、お届けにお時間をいただく場合がございます。
商品説明
フォレンジックテクニックを駆使して、プログラムの欠陥、ボトルネック、不良設計を発見する
「切り裂きジャック(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 エンクロージャの可視化
※お届け日が変更になりました
9月27日→9月30日
目次
本書に寄せて
謝辞
犯罪現場へようこそ
第2版の日本語版へのまえがき
監訳者まえがき
第1部 理解しにくいコードを特定する
第1章 理解するための最適化
1.1 コーディングがプログラミングのボトルネックではないことを理解する
1.1.1 アジャイルの世界でメンテナンスを理解する
1.2 規模の課題に対処する
1.2.1 デジタルの干し草の山から針を見つける
1.3 複雑さの指標の誘惑にご用心
1.3.1 振る舞いの観点からコードにアプローチする
第2章 コードを犯罪現場として扱う
2.1 速習:犯罪者プロファイリング
2.1.1 犯罪の地理的プロファイリングを学ぶ
2.1.2 犯行パターンを見つける
2.1.3 切り裂きジャックのプロファイル
2.2 地理的犯罪者プロファイリングをコードに応用する
2.2.1 コードを地理的に探索する
2.3 捜索範囲を絞り込む:コードの空間的パターン
2.3.1 変更頻度を捜査の指針にする
2.3.2 複雑さと関連性を組み合わせてホットスポットを特定する
2.3.3 ホットスポットは欠陥の予兆となる
2.4 ホットスポットは確率を反映する
第3章 ホットスポットの検出:コードの犯罪者プロファイルを作成する
3.1 コードの進化を掘り出す
3.1.1 Gitログに慣れる
3.1.2 Code Maat用のGitログを作成する
3.1.3 コミットアクティビティを調べる
3.1.4 影響の分析:コードの変更頻度を計算する
3.2 複雑さの次元を調べる
3.2.1 コードの行数から複雑さを把握する
3.2.2 clocで行数を調べる
3.3 複雑さと作業量が交差する場所
3.4 空間的確率分布によるリファクタリング
3.4.1 技術的負債をすべて返済しなくてもよいのはなぜか
3.5 練習問題
3.5.1 ホットスポット分析をコードベースの一部に限 ほか
商品詳細
- 出版社名
- 秀和システム新社
- サイズ
- 24cm
- 対象年齢
- 一般
- フォーマット
- 単行本
- 原題
- 原タイトル:YOUR CODE AS A CRIME SCENE 原著第2版の翻訳
注意事項
- 本の帯に関して
- 帯つきでの出荷はお約束しておりません。
商品ページに、帯のみに付与される特典物等の表記がある場合でも、確実に帯つきでの出荷はお約束しておりません。
また、帯は商品の一部ではなく「広告扱い」のため、帯の有無・破損による交換や返品は承っておりません。 - 版・表紙について
- 版・表紙(カバー)のご指定は承っておりません。ご注文いただくタイミングによっては、お届けする商品の版や表紙が商品ページ上のものとは異なる場合がございます。
また、初版にのみにお付けしている特典(初回特典、初回仕様特典)がある商品は、商品ページに特典の表記がされている場合でも、無くなり次第終了となります。