読みやすいコードとは

Dustin Boswell氏の著書

「The Art of Readable Code: Simple and Practical Techniques for Writing Better Code」

がとても参考になったのでメモしておきます。

以下の内容が書かれています。

プログラミングに携わる人は、読んで損はない内容です。

1 コードは理解しやすいべきです/CODE SHOULD BE EASY TO UNDERSTANDING

Part1:表面レベルの改善/SURFACE-LEVEL IMPROVEMENTS

2 名前に情報をパッキングする/PACKING INFORMATION INTO NAMES

3 誤解されない名前/NAMES THAT CAN’T BE MISCONSTRUED

4 美学/AESTHETICS

5 コメントすることを知る/KNOWING WHAT TO COMMENT

6 コメントを精密かつコンパクトにする/MAKING COMMENTS PRECISE AND COMPACT

Part2:ループとロジックの簡素化/SIMPLIFYING LOOPS AND LOGIC

7 読みやすい制御フローを作成する/MAKING CONTROL FLOW EASY TO READ

8 巨大な表現を分解する/BREAKING DOWN GIANT EXPRESSIONS

9 変数と読みやすさ/VARIABLES AND READABILITY

  • 変数の排除/Eliminating Variables
  • 変数の範囲を縮小する/Shrink the Scope of Your Variables
  • 追記型変数の方が望ましい/Prefer Write-Once Variables
  • 最終的な例/A Final Example
  • 要約/Summary

Part3:コードを再編成する/REORGANIZING YOUR CODE

10 非関連除外項目/EXTRACTING UNRELATED SUBPROBLEMS

  • 導入例:findClosestLocation()
  • 純粋なユーティリティコード/Pure Utility Code
  • その他の汎用コード/Other General-Purpose Code
  • 多くの汎用コードを作成する/Create a Lot of General-Purpose Code
  • プロジェクト特有の機能/Project-Specific Functionality
  • 既存のインターフェイスの簡素化/Simplifying an Existing Interface
  • 必要に応じたインタフェースの変更/Reshaping an Interface to Your Needs
  • あまりにも遠いものを取る/Taking Things Too Far
  • 要約/Summary

11 1度に1つのタスク/ONE TASK AT A TIME

  • タスクは小さくなる/Tasks Can Be Small
  • オブジェクトから値を抽出する/Extracting Values from an Object
  • より大きい例/A Larger Example
  • 要約/Summary

12 コードを考え直す/TURNING THOUGHTS INTO CODE

  • ロジックの明確な記述/Describing Logic Clearly
  • あなたのライブラリを知ることは助けになる/Knowing Your Libraries Helps
  • この方法をより大きな問題に適用する/Applying This Method to Larger Problems
  • 要約/Summary

13 少ないコードを書く/WRITING LESS CODE

  • その機能を実装するのを煩わせないでください。それを必要としません。/Don’t Bother Implementing That Feature—You Won’t Need It
  • 要件を質問し、打ち破りましょう。/Question and Break Down Your Requirements
  • コードベースを小さくする/Keeping Your Codebase Small
  • ライブラリをよく知る/Be Familiar with the Libraries Around You
  • 例:コーディングの代わりにUnixツールを使用する/Example: Using Unix Tools Instead of Coding
  • 要約/Summary

Part4:選択されたトピック/SELECTED TOPICS

14 テストと読取り可能性/TESTING AND READABILITY

  • テストを読みやすく、維持しやすくする/Make Tests Easy to Read and Maintain
  • このテストで何が間違っていますか?/What’s Wrong with This Test?
  • このテストを読みやすくする/Making This Test More Readable
  • エラーメッセージを読み取り可能にする/Making Error Messages Readable
  • 良好なテスト入力の選択/Choosing Good Test Inputs
  • テスト関数のネーミング/Naming Test Functions
  • そのテストで何が間違っていたのですか?/What Was Wrong with That Test?
  • テストフレンドリーな開発/Test-Friendly Development
  • 遠すぎる/Going Too Far
  • 要約/Summary

15「分-時カウンタ」の設計と実装/DESIGNING AND IMPLEMENTING A “MINUTE-HOUR COUNTER”

  • クラスインタフェースの定義/Defining the Class Interface
  • 問題/The Problem
  • 試行1:ナイーブな解決策/Attempt 1: A Naive Solution
  • 試み2:コンベヤーベルトの設計/Attempt 2: Conveyor Belt Design
  • 試行3:タイムバケット設計/Attempt 3: A Time-Bucketed Design
  • 3つのソリューションの比較/Comparing the Three Solutions
  • 要約/Summary
  • さらに読む/FURTHER READING

参考文献:

リーダブルコード ―より良いコードを書くためのシンプルで実践的なテクニック

The Art of Readable Code: Simple and Practical Techniques for Writing Better Code (English Edition)

The Art of Readable Code: Simple and Practical Techniques for Writing Better Code Kindle (English Edition)