カロリーメイトください

Barbaroi Ware(バルバロイ・ウェア)という名前でアプリ開発してます

『リーダブルコード』を学習する3

リーダブルコード ―より良いコードを書くためのシンプルで実践的なテクニック (Theory in practice)

リーダブルコード ―より良いコードを書くためのシンプルで実践的なテクニック (Theory in practice)

序文

リーダブルコード学習3日目。
2名のキャンセルが出て明日の某勉強会に参加することになりました。

それはそれでめんどくさいなぁと思っている最中です。

GitHub

github.com

進捗

  • 5章 コメントすべきことを知る
  • 6章 コメントは正確で簡潔に
  • 第Ⅱ部
  • 7章 制御フローを読みやすくする
    (学習時間:3時間)

コード実装部分(一部)

  • if-else条件の順番について

\CodeExample\7章 制御フローを読みやすくする\7-2 if/else ブロックの並び順\expand-all.js

// expand_allが気になる(せやろか)

if(!url.hasQueryParameter("expand_all")){
  // 処理1
}else{
  // 処理2
}

/*******************
 改善例
********************/
// 関心を引く条件を先に処理する

if(url.hasQueryParameter("expand_all")){
  // 処理2
}else{
  // 処理1
}
  • その他実装部分

github.com

実行結果

ねえよ

感想

今日はコメントと、制御フローについて。

↑のコード。
"expand_all"って条件が気になるから、条件に合致するほうを先に処理しましょう。
って趣旨だと思うんだけど、個人的には"expand_all"に合致するほうが本筋のコードに見えるので、

!url.hasQueryParameter("expand_all")  

のほうを例外として先に処理したくなる。
ガード句と同じ発想で。

直後には例外を先に処理しましょうみたいな話もあって、なかなか腑に落とすのがむつかしく感じなくもない。

カロリーメイトください。

BGM

三浦綾子塩狩峠を読んでやり直せ / 日本マドンナ

www.youtube.com

再結成おめでとうございます。