達人プログラマー ―熟達に向けたあなたの旅― 第2版

 本日読了。

良書。Tipsはソフトウェア以外にも通じるものが多い。

Tip14-よい設計は悪い設計よりも変更しやすい

Tip15-DRY-Don't Repeat Yourself(繰り返しを避けること)

Tip17-関係のないもの同士の影響を排除すること(直交性)

Tip18-最終決定などというものは存在しない

Tip20-目標を見つけるには曳光弾を使うこと

Tip21-プロトタイプの真の目的は学びにある

Tip25-知識はプレインテキストに保存すること

Tip28-常にバージョン管理システムを使用すること

Tip31-コードの修正の前にテストを失敗させること

Tip36-あなたは完璧なソフトウェアを作ることができない

Tip45-照会せずに依頼する(TDA: Tell, Don't Ask)※オブジェクトの内部状態を外から使わない

Tip46-メソッドの呼び出しは連鎖させないこと(1ドットルール)

Tip48-大域データにするだけ重要なものである場合、APIでラップする

Tip52-相続税を支払わないこと(= Tip53-ポリモーフィズムの表現にはインタフェースを愛用すること、Tip54-機能の継承にはmixin(trait)を使用する)

Tip56-並行性を向上させるためにワークフローを分析する

Tip57-共有状態は間違った状態(リソースをトランザクション化する)(= Tip59-共有状態を持たないアクターを並行処理で使用する)

Tip67-テストはコードのユーザー第1号である

Tip72-KISSの原則を守り、アタックサーフェスを最小化する

Tip76-プログラマーの仕事は、人々自身が欲しているものを自らで気付いてもらえるように支援すること

Tip77-要求はフィードバックループの中で学んでいくものである

Tip78-ユーザーとともに働き、ユーザーのように考える

Tip83-Agileという言葉は名詞ではなく、ものごとの進め方を形容する形容詞である

Tip93-コードのカバレージではなく、状態のカバレージをテストすること