はじめに
JavaScriptだとかなり認知が広まりつつある「変数はできるだけconst
で宣言して、厳しい場合だけlet
を使おう」という話。
なぜかJavaScript限定で話されがちですが、よく考えたらJava等でも同じようにしたほうが良いのでは?
例
Salesforceの文法なので厳密には違うかもしれませんが、まあJavaと似たようなもんのはず。
public static void testMethod(String inputValue) {
Boolean isXXX = checkValue(inputValue);
// 色んな処理がずらっと何十行
if (isXXX) {
// 色んな処理
}
}
さあこの時、下のif
分岐のときにisXXX
が最初の宣言通りかどうかは、きちんとコードを全部見ないといけません。
(検索したら良いというのはもちろんですが、それは一旦置いておいて)
こういうのを避けるためにJavaScriptでは「const
を使おう!」運動が広まっているわけですが、Javaでもやっていいはず。
public static void testMethod(String inputValue) {
final Boolean isXXX = checkValue(inputValue);
// 色んな処理がずらっと何十行
if (isXXX) {
// 色んな処理
}
}
これでisXXX
が宣言時の値のままであることが確実になりました。
みんなハッピー。
おわりに
Salesforce、もといApexにはJavaScriptと比べて、Array関数のような配列をまとめて処理する関数がないので、実際にはちょっと難しかったりするんですが・・。
できる限り、コードを読むときの懸念点を減らしていきたい。