読みやすいコードとは

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

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つのことを/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)