リーダブルコード
リーダブルコード
1.理解しやすいコード
コードは他の人が最短時間で理解できるように書くことが目標
2.名前に情報を詰め込む
明確な単語を選ぶ
抽象的な名前よりも具体的な名前
名前に情報を追加
3.誤解されない名前
限界値、範囲、包含、ブール値などで使い分ける
4.美しさ
一貫性のある改行位置
メソッドを使った整列
縦の線をまっすぐに
宣言をブロックにまとめる
コードを段落に分割する
5.コメントすべきことを知る
コメントの目的は書き手の意図を読み手に知らせることである
読み手の立場になって考える
ハマりそうな罠を告知する
全体像のコメント
6.コメントは正確で簡潔に
関数の動作を正確に記述する
入出力のコーナーケースに実例を使う
コードの意図を書く
名前付き引数コメント
情報密度の濃い言葉を使う
7.制御フローを読みやすくする
条件式の引数の並び順
If/elseブロックの並び順
do/whileループを使わない
関数から早く返す
Gotoは使わない
ネストを浅くする
8.巨大な式を分割する
説明変数
要約変数
より優雅な方法を見つける巨大ないs機を分割する
9.変数と読みやすさ
変数を削除する
変数のスコープを縮める
定義の位置を下げる
変数は一度だけ書き込む
10.無関係の下位問題を抽出する
汎用コードをたくさん作る
11.一度に1つのことを
タスクは小さくできる
12.コードに想いを込める
ロジックを明確に説明する
ライブラリを知る
解決策を言葉で説明する
13.短いコードを書く
コードを小さく保つ身近なライブラリに親しむ
14.テストと読みやすさ
エラーメッセージを読みやすくする
15.分/時間カウンタを設計・実装する
凄腕エンジニアさんから学んだ例外の話
Clean Coder
最低限のこと
デザインパターン:GOFの24パターン、POSAのパターン
設計原則:SOLID原則、コンポーネントの原則
方法論:XP、スクラム、リーン、カンバン、ウォーターフォール、構造化分析、構造化設計
規律:TDD、オブジェクト指向設計、構造化プログラミング、CI、ペアプログラミング
成果物:UML、DFD、構造チャート、ペトリネット、状態遷移図、状態遷移表、フローチャート、ディシジョンテーブル
追加
ナッシーシュナイダーマン図、ミーリの状態遷移図、ムーアの状態遷移図、変換分析、トランプデータ、connasence、パーナステーブル