ページ

2014年3月13日

どきどきJavaの国際化

※ とあるところでかいたものの転載


それでは、それでは。

変数名とかに英語表記ではなく、ローマ字で記述しているコードって沢山あるじゃないですか?アリエルは開発フレームワークなので、Javaのコードにはローマ字表記はコーディング規約として許していませんが、その上で作るアプリケーション(JavaScriptで記述)はちょっとカオスなところがあって、変数名にローマ字表記されているところもあります。

あっ、今回もJavaのお題です。僕はJavaScriptは嫌いなので…。

例えばこんな感じ

  public class MyClass {
      private int hensu = 1;

      public int add(int v) {
          hensu += v;
          return hensu;
     }
          
      public static void main(String[] argv) {
          MyClass obj = new MyClass();
          System.out.println(obj.add(10));
      }
  }

英語でもそうですけど、ローマ字でも読みにくいですよね。日本人なら日本語(漢字とかひらがな、カタカナ)ですよね。
ということで、変数名も日本語にしちゃいましょう!


  public class MyClass {
      private int 変数 = 1;

      public int add(int v) {
          変数 += v;
          return 変数;
     }
          
      public static void main(String[] argv) {
          MyClass obj = new MyClass();
          System.out.println(obj.add(10));
      }  }

ほら、読みやすくなった。じゃあ、メソッドも日本語化したほうがわかりやすくなるんじゃない?


  public class MyClass {
      private int 変数 = 1;

      public int 加算(int 入力値) {
          変数 += 入力値;
          return 変数;
      }

      public static void main(String[] argv) {
          MyClass インスタンス = new MyClass();
          System.out.println(インスタンス.加算(10));
      }
  }

ほら、スッキリした。クラス名も日本語に…。えーと、僕は日本語のファイル名があまり好きではないので、それはしません。インナークラスだったら許せます。なので、


  public class MyClass {
      static class 算術クラス {
          private int 変数 = 1;
         
          public int 加算(int 入力値) {
              変数 += 入力値;
              return 変数;
          }
      }

      public static void main(String[] コマンドライン引数) {
          算術クラス インスタンス = new 算術クラス();
          System.out.println(インスタンス.加算(10));
      }
  }


ほら、すごーく分かりやすい。Javaって素敵。でも、悲しいことが2つあります。1つ目はIMEを切り替えながら使わないといけないこと。これは、慣れの問題なのでがんばりましょう。もうひとつは、エディタによっては、全角空白が入り込むと、見つけるのがちょっと大変になることかな。

そう言えば、アリエルもJavaのテストコードに日本語のメソッド名を使っているところがあったような気がする。
ちなみに、pythonで同じようなことをした時のもの。
  http://blog.liris.org/2012/02/python3.html


※ 今回はネタでした。
※ 次回はlombokかもしれない。でも、スレッドのお話かもしれない。グローバル変数についてのお話かもしれない。

0 件のコメント: