Guest User

Untitled

a guest
Sep 21st, 2018
83
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.80 KB | None | 0 0
  1. ## 7章 制御フローを読みやすくする
  2.  
  3. **条件やループなどの制御フローはできるだけ「自然」にする。コードの読み手が立ち止まったり読み返したりしないように書く**
  4.  
  5. ### 条件式の引数の並び順
  6.  
  7. どっちが読みやすい?
  8.  
  9. ```javascript
  10. if(length >= 10) ...
  11. if(10 <= length) ...
  12. ```
  13.  
  14. ```javascript
  15. while(bytes_received < bytes_expected) ...
  16. while(bytes_expected > bytes_received) ...
  17. ```
  18.  
  19. **比較式の左側が変化する。右側は変化しない** とするとわかりやすい
  20.  
  21. ```javascript
  22. if(length >= 10) ...
  23. while(bytes_received < bytes_expected) ...
  24. ```
  25.  
  26. ### if/else ブロックの並び順
  27. ```javascript
  28. // 次のif文は同じだが、読みやすさは?
  29. if(a == b) {
  30.  
  31. } else {
  32.  
  33. }
  34.  
  35. if(a != b) {
  36.  
  37. } else {
  38.  
  39. }
  40. ```
  41.  
  42. 指針はつぎのようにすると複雑になりにくい
  43.  
  44. - 否定形よりは肯定形を使う `if(debug)` がわかりやすい
  45. - 単純な条件を先に書くようにする
  46. - 関心を引く条件や目立つ条件を先に書く
  47.  
  48. 最終的にはわかりやすさを基準に自分で判断する
  49.  
  50. ```javascript
  51. if(!url.hasParameter("expand_all")) {
  52.  
  53. } else {
  54.  
  55. }
  56.  
  57. if(url.hasParameter("expand_all")) {
  58.  
  59. } else {
  60.  
  61. }
  62. ```
  63.  
  64. 最初のif文に関心を引く条件や目立つ条件を先に書くのと肯定形を先に書くという指針したがって
  65. 後者のif文の方がわかりやすそう。
  66.  
  67. 逆に否定形を強調死体ケースは前者を採用すると良い
  68.  
  69. ### 三項演算子
  70.  
  71. 十分に短く書くことができて、理解しやすい場合に限り三項演算子を使うとよい
  72.  
  73. ```javascript
  74. // NG
  75. return exponent >= 0 ? mantissa * ( 1 << exponent) : mantissa / (1 << -exponent);
  76. ```
  77.  
  78. ### do/whileループを避ける
  79.  
  80. do/whileループはwhileループで書き直す事ができることが多い。
Add Comment
Please, Sign In to add comment