Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- ## 7章 制御フローを読みやすくする
- **条件やループなどの制御フローはできるだけ「自然」にする。コードの読み手が立ち止まったり読み返したりしないように書く**
- ### 条件式の引数の並び順
- どっちが読みやすい?
- ```javascript
- if(length >= 10) ...
- if(10 <= length) ...
- ```
- ```javascript
- while(bytes_received < bytes_expected) ...
- while(bytes_expected > bytes_received) ...
- ```
- **比較式の左側が変化する。右側は変化しない** とするとわかりやすい
- ```javascript
- if(length >= 10) ...
- while(bytes_received < bytes_expected) ...
- ```
- ### if/else ブロックの並び順
- ```javascript
- // 次のif文は同じだが、読みやすさは?
- if(a == b) {
- } else {
- }
- if(a != b) {
- } else {
- }
- ```
- 指針はつぎのようにすると複雑になりにくい
- - 否定形よりは肯定形を使う `if(debug)` がわかりやすい
- - 単純な条件を先に書くようにする
- - 関心を引く条件や目立つ条件を先に書く
- 最終的にはわかりやすさを基準に自分で判断する
- ```javascript
- if(!url.hasParameter("expand_all")) {
- } else {
- }
- if(url.hasParameter("expand_all")) {
- } else {
- }
- ```
- 最初のif文に関心を引く条件や目立つ条件を先に書くのと肯定形を先に書くという指針したがって
- 後者のif文の方がわかりやすそう。
- 逆に否定形を強調死体ケースは前者を採用すると良い
- ### 三項演算子
- 十分に短く書くことができて、理解しやすい場合に限り三項演算子を使うとよい
- ```javascript
- // NG
- return exponent >= 0 ? mantissa * ( 1 << exponent) : mantissa / (1 << -exponent);
- ```
- ### do/whileループを避ける
- do/whileループはwhileループで書き直す事ができることが多い。
Add Comment
Please, Sign In to add comment