2020-06-13

プログラマが絶対守るべきこと(連載第3回目:変数名について)

投稿者: KuRo

変数名を考えるのに時間をかける

/** データベースから name の連絡先を返却 */
public static Address getAddress(String name){
    return addressDb.getAddress(name);
}

public class Address{
    public String name;
    public String tel1;
    public String tel2;
}

public static void main(String[] args){
    Address address = getAddress(args[0]);
    System.out.println(args[0] + “さんの携帯電話番号は” + address.tel1);
    System.out.println(args[0] + “さんの自宅電話番号は” + address.tel2);
}

tel1 が携帯電話であることを、System.out.println の中でのみ説明しています。
100人に聞いて100人が 「tel1 といえば携帯電話だろっ!」ならいいのですが、そうではないと思いますよ。
これは、「斎藤さんの双子」を「双子1、双子2」と呼ぶことと同じです。

こうしてほしい例

/** データベースから name の連絡先を返却 */
public static Address getAddress(String name){
    return addressDb.getAddress(name);
}

public class Address{
    public String name;
    public String telHome;
    public String telMobile;
}

public static void main(String[] args){
    Address address = getAddress(args[0]);
    System.out.println(args[0] + “さんの携帯電話番号は” + address.telMobile);
    System.out.println(args[0] + “さんの自宅電話番号は” + address.telHome);
}

tel が接頭辞になっているのがポイントです。
同じ仲間を意味する言葉をグルーピングするときは、接頭辞でグルーピングできるよういに統一すると、言葉にさらに意味が加わります。
プログラムが大きくなればなるほど、1画面で確認できるのは部分的な切り取りになります。
そこでぱっと見、何を表すものなのかがわかることは、早く少ない文字数でコーディングすることよりも将来性のあるプログラムだと思っています。
変数名はぜひ時間をかけて命名してほしいものです。