はじめに
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関数のような配列をまとめて処理する関数がないので、実際にはちょっと難しかったりするんですが・・。
できる限り、コードを読むときの懸念点を減らしていきたい。