今回のリーダブルコードの概念はやや抽象的。
要は一度に行うタスクは1つにする、というところがポイントになります。
そのための手法として下記のようなことを上げています。
- コードが行っているタスクをすべて列挙する。
- タスクをできるだけ異なる関数に分割する
- タスクは常に小さくする
- 1つの段落に複数の処理を詰め込まない
下記の例を示したほうがわかりやすいかも。
仕様:ユーザーの所在地をわかりやすい文字列に変換する(例,Chiba、Japan)
- location_infoの情報から都市と国を選ぶ
- local_area →city →prefectureの順にする
- 上3つすべてが使えないときは、Middle -of -Nowhereを使う
言語 JavaScript
ダメなコード
リーダブルコードのデフラグ状態
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 |
var place = location_info['local_area'] if( !place ){ place = location_info['prefecture']; } if( !place ){ place = location_info['city']; } if( !place ){ place = 'Middle-of-Nowhere'; } if( location_info['Country_name']) { place += "," + location_info['Country_name']; } else { place += ",Planet Earth" } return place |
良いコード
値の取得→優先度を考えた更新→結合とすべて1つずつのタスクが実行されている。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 |
var local_area = location_info['local_area'] var prefecture = location_info['prefecture']; var city = location_info['city']; var country_name = location_info['country_name']; fisrt_place = "Middle-of-Nowhere"; second_place = "Planet Earth"; if( local_area ){ first_place = local_area; } if( prefecture ){ first_place = prefecture; } if( city ){ first_place = city; } if( country_name ){ second_place = country_name; } return fisrt_place + "," + second_place |