読書会でまとめたものになります

リーダブルコード

14章『テストと読みやすさ』P.179

14章における「テスト」……他の(「本物」の)コードの振る舞いを確認するためのすべてのコードのこと 14.1 テストを読みやすくて保守しやすいものにする(P.180) テストコードを読みやすくすることは大切。本物のコードの動作が理解しやすくなる。 テストコー…

12章『コードに思いを込める』P.157

コードは簡単な言葉で書くべき --- 手順 コードの動作を簡単な言葉で同僚にも分かるように説明する。 その説明のなかで使っているキーワードやフレーズに注目する。 その説明に合わせてコードを書く。 --- 12.1 ロジックを明確に説明するP.158 具体例:説明す…

13章 短いコードを書く(P168)

#キーとなる考え方 最も見やすいコードは、何も書かれていないコードだ ##その機能の実装について悩まないで(きっと必要ないから) エンジニアいうのは、見積を過小評価するため、 プロジェクトに欠かせない機能を過剰に必要だと錯覚する。 ##質問と要求の…

10章 無関係の下位問題を抽出する P129

#キーとなる考え方 無関係な下位問題を抽出することだ つまりプロジェクト固有のコードから汎用コードを分離することだ 以下に考え方を記載する 1. 関数やコードブロックをみて、このコードの高レベルの目標は何か?を自問自答する 2. コードの各行に対して…

11章『一度に1つのことを』P.143

11章ではソースコードの「デフラグ」を行う https://enjoy.sso.biglobe.ne.jp/archives/defragmentation/ 一度に複数のことを行うコードは分かりづらい ■コードは1つずつタスクを行うようにする 手順 コードが行っている「タスク」をすべて列挙 タスクをで…

09章『変数と読みやすさ』

変数をテキトーに使うとプログラムが理解しにくくなる この章では以下3つの問題に取り組む 変数が多いと変数を追跡するのが難しくなる 変数のスコープが大きいとスコープを把握する時間が長くなる 変数が頻繁に変更されると現在の値を把握するのが難しくなる…

08章 巨大な式を分割する

#キーとなる考え 巨大な式は飲み込みやすい大きさに分割する。 ※式が大きくなるとコードが読みにくい #テクニック ##説明変数(P100) 式を表す変数を使う。 ##要約変数 大きなコードの塊を小さな名前に置き換えて、要約する。 ##ドモルガンの法則を使う。 n…

06章『コメントは正確で簡潔に』

どうすればコメントを正確に書けるか ポイント コメントは領域に対する情報の比率が高くなければならない 6.1 コメントを簡潔にしておく(P.72) そのコメントは1行でまとめられないか? と自問する 6.2 あいまいな代名詞を避ける(P.72) 読み手は「代名詞」を…

07章 制御フローを読みやすくする(P83)※制御フロー…if文、for文とか

#キーとなる考え 制御フローはできるだけ「自然」にする。 コードの読み手が立ち止まって読み返さないように書く。 ##条件式の引数と並び順 ■条件式は、以下に書くとよい 左側…「調査対象」の式(変化する) 右側…「比較対象」の式(あまり変化しない) 例:…

04章『美しさ』

優れたソースコードは「目に優しい」ものでなければいけない 読み手が慣れているパターンと一貫性のあるレイアウトを使う 似ているコードは似ているように見せる 関連するコードをまとめてブロックにする 美しさを改善すると…… □大きなリファクタリング(新…

05章『コメントすべきことを知る』

#コメントの目的とは? →書き手の意図を読み手に知らせること ##考え方その①(コメントすべきでは「ない」こと) ・コードから”すぐに"わかることをコメントに書かない 例えば、//コンストラクタとか ・コメントのためのコメントをしない →コメントを書く…

01章『理解しやすいコード』

●優れたコードって何? →他の人が最短で理解できるコード ⇨基本定理の考え方(最も大事な考え方ということ) ・どうすればいいか悩んだときは、どうすればいいか? →他の人が最短で理解できるかどうか自問自答する。 担当:らうみー

02章『名前に情報を詰め込む』

名前は短いコメント 短くても良い名前をつければ、多くの情報を伝えることができる ・明確な単語を選ぶ ・汎用的な名前を避ける(あるいは、使う状況を選ぶ) ・抽象的な名前よりも具体的な名前を使う ・接尾辞や接頭辞を使って情報を追加する ・名前の長さ…

03章『誤解されない名前』

●最善の名前とは? →誤解されない名前である。 ・基本的な考え方 →名前「他の意味と間違えられることはないだろうか?」何度も自問自答する ・テクニック1 →限界値の名前を明確にする際、名前の前にmax、minを付けよう 例:MAX_ITEMS_IN_CART=10(最大カート…