試験公開中

このエントリーをはてなブックマークに追加

Clean Code アジャイルソフトウェア達人の技

アスキードワンゴ

3,040円+税

コードを書き、読み、洗練する。プロと呼ばれるプログラマになるためには、洗練されたコード(クリーンコード)を書くことが必須といえます。本書を通して、クリーンコードを書くための原則、パターン、実践について学んでください。

関連サイト

本書の関連ページが用意されています。

内容紹介

プロと呼ばれるプログラマになるためには、洗練されたコード(クリーンコード)を書くことが必須といえます。本書を通して、クリーンコードを書くための原則、パターン、実践について学んでください。

クリーンコードを書くための「心地よい」原則を書き並べ、あなたがうまくやるだろうと信じることは可能です(言い換えれば、あなたを自転車に乗せ、転ばせるということです)。このようなやり方をとったら、我々はどんな先生となり、あなたはどんな生徒になるのでしょう?

いえいえ。この本でやろうとしている方法はこうではありません。

クリーンコードを書くことを身につけるには努力が必要です。原則とかパターンといった知識を身につけるだけではだめなのです。実際に汗をかかなければならないのです。自分自身で実践してみて、そして失敗してみなければならないのです。また、他の人が実践しているのを、また失敗しているのを見なければならないのです。彼らがつまづき、やり直すのを観察しなければならないのです。彼らが判断に苦しむのを見て、間違った判断の結果として、彼らが支払うはめになった代償を見なければならないのです。

この本を読む間は、いつでも一所懸命に作業ができるように準備しておいてください。この本は飛行機の中で読み、到着するまでに読み終わってしまうような「心地よい」本ではありません。この本はあなたに作業をさせます。しかも激しくです。どんな作業をすることになるのでしょうか?大量のコードを読むことになります。そして、どんなコードが正しくて、どんなコードが間違っているかについて考えなければなりません。モジュールを切り離したり、ふたたび元どおりにしたりすることも要求されます。これには、時間と努力を要しますが、我々はこの作業に意味があると考えています。

(「序論」より)

書誌情報

  • 著者: Robert C. Martin(著), 花井志生(訳)
  • 発行日: (紙書籍版発行日: 2017-12-18)
  • 最終更新日: 2017-12-18
  • バージョン: 1.0.0
  • ページ数: 529ページ(PDF版換算)
  • 対応フォーマット: PDF, EPUB
  • 出版社: アスキードワンゴ

対象読者

著者について

Robert C. Martin

Robert Cecil Martin (ボブおじさんとも知られている) はアメリカのソフトウェアエンジニア兼著者であり、アジャイルマニフェストの起草者の一人でもある。コンサルティングファームUncle Bob Consulting LLCと、書籍や経験を元にした動画サービスClean Codersを経営している(Wikipediaより)。

目次

前書き

序論

  • 謝辞

カバーの絵について

第1章 クリーンコード

  • そこにコードありき
  • 粗悪なコード
  • 混乱のために支払う総コスト
  • 道場
  • 我々が著者です
  • ボーイスカウトの規則
  • 続編と原則
  • 結論
  • 参考文献

第2章 意味のある名前

  • 序文
  • 意図が明確な名前にする
  • 偽情報を避ける
  • 意味のある対比を行う
  • 発音可能な名前を使用する
  • 検索可能な名前を用いる
  • エンコーディングを避ける
  • ハンガリアン記法
  • メンバープレフィクス
  • インターフェイスと実装
  • メンタルマッピングを避ける
  • クラス名
  • メソッド名
  • 気取らない
  • 1つのコンセプトには1つの単語
  • ごろ合わせをしない
  • 解決領域の用語の使用
  • 問題領域の用語の使用
  • 意味のある文脈を加える
  • 根拠のない文脈を与えない
  • 最後に

第3章 関数

  • 小さいこと!
  • 1つのことを行う
  • 1つの関数に1つの抽象レベル
  • switch文
  • 内容をよく表す名前を使う
  • 関数の引数
  • 副作用を避ける
  • コマンド・照会の分離原則
  • 戻りコードよりも例外を好む
  • DRY(Don't Repeat Yourself)原則
  • 構造化プログラミング
  • なぜ関数をこのように書くのでしょう?
  • 結論
  • SetupTeardownIncluder
  • 参考文献

第4章 コメント

  • コメントで、ダメなコードを取り繕うことはできない
  • 自分自身をコードの中で説明する
  • よいコメント
  • よくないコメント
  • 参考文献

第5章 書式化

  • 書式化の目的
  • 縦方向の書式化
  • 横方向の書式化
  • チームの規則
  • アンクルボブの書式化規則

第6章 オブジェクトとデータ構造

  • データ抽象化
  • データ/オブジェクトの非対称性
  • デメテルの法則
  • データ転送オブジェクト
  • 結論
  • 参考文献

第7章 エラー処理

  • リターンコードではなく、例外を使用する
  • 最初にtry-catch-finally文を書く
  • 非チェック例外を使用する
  • 例外で状況を伝える
  • 呼び出し元が必要とする例外クラスを定義する
  • 正常ケースのフローを定義する
  • nullを返さない
  • nullを渡さない
  • 結論
  • 参考文献

第8章 境界

  • サードパーティーのコードを使用する
  • 境界の調査と学習
  • log4jを学習する
  • 学習テストは、タダ以上のものである
  • まだ存在しないコードを使用する
  • きれいな境界
  • 参考文献

第9章 単体テスト

  • TDD三原則
  • テストをきれいに保つ
  • クリーンテスト
  • 1つのテストに1つのアサート
  • F.I.R.S.T.
  • 結論
  • 参考文献

第10章 クラス

  • クラスの構成
  • クラスは小さくしなければならない!
  • 変更のために最適化する
  • 参考文献

第11章 システム

  • あなたは、街をどうやって造りますか?
  • システムを使うことと、構築することとを分離する
  • スケールアップ
  • 横断的関心事
  • Javaプロキシ
  • Pure JavaのAOPフレームワーク
  • AspectJアスペクト
  • システムアーキテクチャのテスト実行
  • 意思決定を最適化する
  • 論証可能な価値を追加する際には、標準を賢く使用する
  • システムはドメイン特化言語を必要とする
  • 結論
  • 参考文献

第12章 創発

  • 創発的設計を通して、洗練する
  • 単純な設計への規則1:全テストを実行する
  • 単純な設計への規則2~4:リファクタリング
  • 重複の排除
  • 表現に富む
  • クラスとメソッドを最小限に
  • 結論
  • 参考文献

第13章 同時並行性

  • なぜ同時並行性が必要なのか?
  • 難問
  • 同時並行性防御原則
  • 使用しているライブラリを知る
  • スレッドセーフなコレクション
  • 実行モデルを見分ける
  • 同期化メソッド間の依存関係に注意
  • 同期化セクションを小さくする
  • 正確な終了処理コードを書くのは難しい
  • スレッド化されたコードのテスト
  • 結論
  • 参考文献

第14章 継続的改良

  • Argsの実装
  • Argsクラス。大雑把な下書き
  • 文字列引数
  • 結論

第15章 JUnitの内部

  • JUnitフレームワーク
  • 結論

第16章 SerialDateのリファクタリング

  • まずは、動作するようにする
  • そして正しく直した
  • 結論
  • 参考文献

第17章 においと経験則

  • コメント
  • 環境
  • 関数
  • 一般
  • Java
  • 名前
  • テスト
  • 結論
  • 参考文献

付録A 同時並行性II

  • クライアント/サーバーの例
  • 結論
  • 実行経路候補
  • さらに深層へ
  • ライブラリを知る
  • メソッド間の依存性が同時並行コードを破壊する
  • スループットを高める
  • デッドロック
  • マルチスレッドコードをテストする
  • マルチスレッドコードのテストのツールによるサポート
  • チュートリアル:コードサンプルの全体

付録B org.jfree.date.SerialDate

付録C 経験則のクロスリファレンス

後書き

索 引

Home 書籍一覧 Clean Code アジャイルソフトウェア達人の技 ▲ ページトップへ戻る