【書評】リーダブルコード
はじめに
新人エンジニアにオススメする本として有名なリーダブルコードを読みました!
全体を読んだ感想としては「難しくてよくわからない・・」。
難しいと感じた部分は、
「サンプルコードが色々な言語で書かれていて読みづらい(読めない)」
「英語の言い回しについて議論されても、英語の微妙なニュアンスの違いがわからない」
「プログラマが書きがちな悪い例がピンとこない」
です・・。
そんな自分でも勉強になったし、意識していきたいと思ったポイントをまとめたいとおもいます!
名前は慎重につける!
明確な単語を選ぶ。例えば、「start」は 、begin や open と似ている。「make」は、create や set up と似ている。
迷った時は類語辞典を見ると良さそう→ 英語類語 - Weblio辞書
長い名前はだめじゃない!
newNavigationControllerWrappingViewControllerForDataSorceOfClass
これは本に書いてあった長い名前。さすがに長すぎる・・。
document を doc と書くなど、プログラマならわかる名前ならOKだが、プロジェクトに依存した名前を書くくらいなら、正式名称を書くべき。(例:○BookLabTokyo ×BLTYO)
コメントを書くのは恥ずかしくない!
「コメントをたくさん書く = 分かりづらいクソコード」というイメージだったけど、他の人が読む以上コメントを書くことが親切。
分かりづらい処理だと思いつつ、なんてコメントしたらいいかわからない場合は、頭の中で考えている言葉をそのまま書けばいい。(例:// このリストに重複があったらいけないのでチェックするための処理 )
ただ、当たり前だけど意味のないコメントはしない。(例:// 東京 const tokyo = getData.place )
並びまで気をつける!
ループ処理の場合、for ( length > 10 ) のほうが for ( 10 < length ) より読みやすい。
最初の書き方だと、頭の中で「for(繰り返しか)length(長さかな)> 10 (10より大きい数か)」とわかるのに対し、次の書き方だと、「for(繰り返し)10 < (何が10より大きいんだろう)length(長さか)」となり、lengthを読むまで頭の中で「10」を記憶しなくてはいけない。
これは、条件文でも三項演算子でも同じ。
1つに1つのことをする!
コードは1つずつタスクを行わなければいけない。
1つの関数に複数のタスクが列挙されて読みにくいようなら、他のクラスや関数に切り出せないかを考える。
まとめ
書いてある内容すべて理解できたわけじゃないですが、コードを書く上でのヒントになったかなーと思います!
定期的に読み直して、他人が読みやすいコードを意識していけたらと思います〜
スキ頂けると嬉しいです〜