リーダブルコード
意味
2 書籍リーダブルコードのこと
https://gyazo.com/b6b7751c835bb26426fd482c84b0d4d4
端的にまとまってる
2
僕みたいに頭が弱い人間でもプログラミングが楽しくなる
過去の自分が書いたコードがさほど怖くなくなる
プログラミングの生産性が単純に上がる
リーダブルなコードを積み上げていけるので、(リーダブルじゃなかった頃より)生産的
少しでも意味的に読みやすく
語彙力が大事
そういう意味で作家がプログラマーになったら強いのではと個人的に思っている
変数名一つに一時間悩むことだってあるんだ。
sta.iconフィクションで使いたいフレーズだなぁ
1
sta.iconGit周りは知らんので適宜参考にしたい
割と僕が心がけてるのと一緒
頭のなかの変数を少なくする。……例えば、ガード節などを使う
ガード節好きです
条件分岐において、否定の複数条件はわかりにくい
これもわかる
僕だったら isXXX と isNotXXX = !isXXX みたいな感じで、いちいちローカル変数つくっていって少しでもわかりやすくするかなぁ
一つ例上げる
code:たとえば僕はこんな感じで書く.typescript
const datePart = line.substr(POS_DATE, LEN_DATE);
const todayString = DateTimeUtil.todayString();
const isNotTodayLine = datePart != todayString // ★ここが肝
if(isNotTodayLine){
continue;
}
今日を表す行じゃない(isNotTodayLine)ってのをわざわざ定義している
一見すると無駄なローカル変数に見えるが、これのおかげで「あ、今日を表す行じゃないってのを判定してんだな」と一目でわかる
code:こういうのはリーダブルじゃない.typescript
if(line.substr(POS_DATE, LEN_DATE) != DateTimeUtil.todayString()){
continue;
}
慣れた人なら上述の意味を理解できるだろうが、それでも頭使ってる
そしてその「頭使う」が積み重なると、どんどんコード読むのがしんどくなっていく
code:これもやりがちだがコメントの使い方が違う.typescript
const datePart = line.substr(POS_DATE, LEN_DATE);
const todayString = DateTimeUtil.todayString();
// 今日を表す行じゃない場合, 処理対象じゃないのでスキップする.
if(datePart != todayString){
continue;
}
何でもコメント書けばいいってもんじゃない
コード読んでわかるならそれに越したことはない
sta.icon(まあ英語を用いたネーミングセンスが問われるけど……)
コメントで書いちゃうとコード修正時に反映し忘れることが多い
そしてそれが重なるとコメントという名のゴミになる