いまさらリーダブルコードまとめ(第9章)
はじめに
チーム内リーダブルコード輪読会の第9章。
第8章はこちら
第9章 変数と読みやすさ
どんな内容?
変数は書き込みを1度だけに抑え、使用箇所の直前で定義すべきである。
反対に何度も書き換わり、何処で使用されているかわからない変数は
コードを難解にし読みづらくさせる。
また、処理分岐の判断として中間結果を保持するために変数を使う事は
コード量の増加に繋がり簡潔で読みやすいコードからかけ離れてしまう。
読んだ感想
Javaを学習した事がある人であれば誰もが見聞きした「グローバル変数は使うな!」
と教えられた理由がよくわかった。
また、変数を減らす事で余計な追跡をする必要が無くなり
コードが読みやすくなるという結果になることは新たな気付きだった。
ただ、用途が的確に理解できるような説明変数は、使用することでコードを読みやすくもできるので
変数を減らす事だけに拘り続けるのは注意が必要だと感じた。
例を挙げて議論してみよう
変数を削除すると読みやすくなる?
fainalや拡張for文を使って変数をなくしてみる。
【変数あり】
final List<String> sl = getStringList();
for (int i = 0; i < sl.size(); i++) {
System.out.println(sl.get(i));
}
↓
【変数なし】
for (final String s : getStringList()) {
System.out.println(s);
}
簡略化されコード量は少なくなった。
読みやすさとしては個人差が出るのでは?
javascript ではスコープを縮める+関数の先頭で変数宣言しよう
以下の2例では結果が同じだが見比べてみよう。
【javascriptの特徴を抑えよう】
var hogeScope = "GlobalVar";
function getScopeValue() {
console.log(hogeScope); // ①
var hogeScope = "LocalVar";
return hogeScope;
}
console.log(getScopeValue()); // ②
console.log(hogescope); // ③
①は undefined (変数宣言はホイスティングされるが、代入はされない)
②は "LocalVar" (ローカル変数を参照)
③は "GlobalVar" (グローバル変数を参照)
★javascriptでは変数宣言前でもホイスティングできてしまう。
【関数内の先頭で変数宣言】
var hogeScope = "GlobalVar";
function getScopeValue() {
var hogeScope;
console.log(hogeScope); // ①
hogeScope = "LocalVar";
return hogeScope;
}
console.log(getScopeValue()); // ②
console.log(hogescope); // ③
①は undefined (変数宣言のみなのでundefined)
②は "LocalVar" (ローカル変数を参照)
③は "GlobalVar" (グローバル変数を参照)
スコープを小さくすることだけを意識すると、必要になった場所で
変数宣言しがちになるが、関数内の先頭に変数宣言をすることで
ブロックスコープがないjavascriptではコードが読みやすくなる。
Author And Source
この問題について(いまさらリーダブルコードまとめ(第9章)), 我々は、より多くの情報をここで見つけました https://qiita.com/nogunogu/items/c90926ae3715174bf787著者帰属:元の著者の情報は、元のURLに含まれています。著作権は原作者に属する。
Content is automatically searched and collected through network algorithms . If there is a violation . Please contact us . We will adjust (correct author information ,or delete content ) as soon as possible .