『読みやすいコードのガイドライン』
https://gyazo.com/c2b314b9aa55d8456c7583c02b887353
2022/10/22
付録にKotlinの読み方が載っているmrsekut.icon
著者が書いたもの
読んだらスライドで十分では気持ちになったmrsekut.icon
はじめに
第1章 可読性の高いコードを書くために
1-1 生産性への恩恵
1-1-1 開発の規模と生産性の関係
1-1-2 可読性を高めるための環境と評価体制
1-2 可読性の高いコードを書くための要件
1-2-1 可読性に関連する指標
1-2-2 可読性を高める取り組み方
1-3 代表的なプログラミング原則
1-3-1 ボーイスカウトルール
1-3-4 単一責任の原則
1-3-5 早計な最適化は諸悪の根源
1-4 まとめ
2-1 命名に使う文法
2-1-1 名詞または名詞句
2-1-2 命令文
2-1-3 その他の文法
2-1-4 なぜ文法を無視した命名がされるのか
2-2 名前の示す内容
2-2-1 例:引数の名前
2-2-2 例:関数の名前
2-2-3 例外:抽象メソッド
2-3 単語の選択
2-3-1 曖昧性の少ない単語を選ぶ
2-3-2 紛らわしい省略語を避ける
2-3-3 単位を型で示す
2-3-4 肯定的な単語を用いる
2-4 言語・プラットフォーム・プロダクトの規約
2-5 まとめ
3-1 コメントの種類と目的
3-2 ドキュメンテーション
3-2-1 アンチパターン
3-2-2 ドキュメンテーションの校正
3-2-3 ドキュメンテーションの要約
3-2-4 ドキュメンテーションの詳細
3-3 非形式的なコメント
3-3-1 大きなコードの分割
3-3-2 非直感的なコードの説明
3-4 まとめ
第4章 状態
4-1 可変の値の方が有用なケース
4-2-1 直交の定義
4-2-2 手法:関数への置き換え
4-2-3 手法:直和型での置き換え
4-3 状態遷移の設計
4-3-1 不変性
4-3-2 冪等性
4-3-3 非巡回
4-4 まとめ
第5章 関数
5-1 関数の責任
5-1-1 責任の分割の基本方針
5-1-2 コマンドとクエリの分離
5-2 関数の流れ
5-2-1 定義指向プログラミング
なんじゃそりゃmrsekut.icon
5-2-3 操作対象による分割
5-3 まとめ
第6章 依存関係
6-1 依存の強さ:結合度
6-1-1 内容結合
6-1-2 共通結合と外部結合
6-1-3 制御結合
6-1-4 スタンプ結合とデータ結合
6-1-5 メッセージ結合
6-2 依存の方向
6-2-1 呼び出し元→呼び出し先
6-2-2 具体→抽象
6-2-3 複雑・可変→単純・不変
6-3 依存の重複
6-3-1 数珠つなぎの依存
6-3-2 依存の集合の重複
6-4 依存の明示性
6-4-1 アンチパターン1:過度な抽象化
6-4-2 アンチパターン2:暗黙的な変域
6-5 まとめ
第7章 コードレビュー
7-1 レビューイの注意点1:レビューしやすいプルリクエストを作る
7-1-1 プルリクエストの目的の明示
7-1-2 プルリクエストの分割
7-1-3 コミットの構造化
7-2 レビューイの注意点2:コメントを適用する方法
7-2-1 間違ったコメントや質問への対応
7-2-2 提案の意図の理解
7-2-3 他の部分への適用
7-3 レビューアの注意点1:レビュー実施時の基本原則
7-3-1 レビュー依頼を放置しない
7-3-2 問題のあるプルリクエストを拒否する
7-3-3 締切を意識しない
7-3-4 「提案」以外のコメントを考慮する
7-4 レビューアの注意点2:コメントの内容
7-4-1 ケーススタディ
7-5 まとめ
付録 本書を読む上で必要となるKotlinの文法