ソースが一番のドキュメントとなるために

http://d.hatena.ne.jp/shot6/20090318#1237376050

ここの日本語ラベルを見て依然書こうと思っていたのをふと思い出した。

やっぱり英語がネイティブじゃないとプログラミングの実装の効率面で不利だねぇと。

日本人がプログラミング能力で劣るとは考えていないけど、どうしてもネイティブな人とは実装面で効率やバグの数で大きく差がついてるんじゃないのかなと。意外と海外のオープンソースのプロダクトのほうが単体テストとか日本のオープンソースのプロダクトより書いてないことも珍しくないよね?でも品質が
めちゃくちゃ低いとは思えない。


じゃあ、その差はどこからくるのか。

と考えた結果、やっぱり英文がネイティブかどうかってところかなと思った。


だってCustomerとかNameとか(まぁこのへんははわかりやすいからまだいいけど)アルファベット使ってプロパティやBean作ってるとそれがどういった意味なのか分からなくて辞書を引いたりコメントやマニュアルを見る羽目になったりしてしまう。そうでなくとも、一瞬ですぐに日本語並みに理解するのは難しいよね?

たぶんネイティブの人にとってはこんな感じにかかれてるように見えてるんだよね。javaっぽく。

public class 得意先 {

  private int id;
  private String 名前;
  private 都道府県 住所1;

  public int getId(){
    return id;
  }
  public String get名前(){
    return 名前;
  }
 public 都道府県 get住所1(){
    return 住所1;
  }
}

public class 得意先Service{
  public List<得意先> findAll(){
    ...
  }

  public 得意先 findById(int 得意先id){
    ...
  }
}

JSPとかテンプレート系はだとこんなかんじか。

<html>
...

都道府県名:<h:output value="#{得意先.住所1.都道府県名}" />

...


<c:forEach var="得意先" items="${得意先一覧}" >
  ID:${得意先.id}"/><br>
  名前:${得意先.名前}"/><br>
  都道府県名:${得意先.住所1.都道府県名}"/><br>
</c:forEach>
...
</html>

やっぱり直感的に分かるってステキだわ。あえてfindとかServiceとかIdとかはそのままにしてあるけど、そのほうが見やすくて分かりやすい感じ。漢字とひらがなカタカナを組み合わせて瞬時に判断できるのと同様にあえてごちゃまぜで。ごちゃまぜは日本の文化。



AccessやDBで日本語を扱うことはよく見かけるけど、そろそろそれ以外でもフィールド名とか変数名に日本語を入れる現場が増えてもいいと思う。言語自体は問題なく対応してるんだし。FEPがはいると記述が面倒という意見もあるかもしれないけど、見易さってのに比べればタイピングスピードが半分になったところで何の問題もあるまい。

よくAccessの他人の作ったソースをメンテするとき、資料がほぼゼロでソースがめちゃくちゃひどくてもなんとか追えることが多いのは、メソッドとか普通に日本語名を使うことが多いからだと思ってる。

おいらも個人での仕事はプロパティは日本語を使ったりしてる。おもにエンティティクラスのプロパティ名限定で。これだけでも開発効率は大きくかわると実感している。これだと一目でわかるからソースが一番のドキュメントだというのがよくわかるんだよね。