その手の平は尻もつかめるさ

ギジュツ的な事をメーンで書く予定です

"米国人からコーディングについての怒りのメールを頂戴した" の補足

そこそこ前に書いた記事が炎上してて、軽く恐怖と困惑を抱いております、moznionです。
おいおい身バレすんじゃねーか、これ!!!!!!

さておき、本記事は
米国人からコーディングについての怒りのメールを頂戴した - その手の平は尻もつかめるさ
の補足です。

個人的には
YAPC::Asia Tokyo 2012 にてLT-THON なるイベントが開催されるようです - その手の平は尻もつかめるさ
の方もお願いしたい所存です!!!

げんぶん

要求が来ていたので原文を載せます。
さあ、これで僕の危うい英語力と妖しい日本語力によって生成された
「盛った意訳」*1や「曲訳」や「誤訳」(←コレが一番ヤバい)が浮き彫りになるって寸法ですよ!!

以下引用
Hi,
 
When making any additions or changes to source code anywhere in the our project (backend, frontend, models, etc...) please do the following:
 
1)     Follow the coding style already established in the file. Do not introduce a different coding style.
         If working with backend files, use backend coding style, and so on.
         When in Rome do as the Romans do. Right?

2)      WRITE Javadoc. Why don't you write Javadoc?
          Use JAutodoc to auto generate comments and then review the comments for accuracy and completeness.
          Then you start to commit, but it's not late.

3)	 Recent IDE supports programmers. It's very very useful and powerful. Do you know such great functons?
	 We are using the following plugins. Use them!!
         - Checkstyle : Check code with Checkstyle and fix violations. It alerted to bad coding style.
         - Find Bugs : Check code with Find Bugs and fix violations. It detects cause of bug bugs. (If want to know mechanism, please search the Net.)
	 We just have to correct these warnings then can prevent bugs.
	 In addition, various plugins are available. You find a good one, please tell us it :-)

4)     ALWAYS write code for the next person who is going to look at it. 
         This means organization, white space and structure of code for readability, and generous use of comments and headers.
         And we should write enough comments. Many comments were in source code, we won't suffer.
         Don't think readability. If we feel hard to read source codes, start to consider that removing redundant comments.

5)     TEST TEST TEST, Okay?
         TEST especially when making changes to make sure nothing was broken.
         But testing overall by human power is impossible.
         So we write test program and run test automatically. It's a good practice.
 
I have found too many examples of your work where coding standards have not been followed.  In production code, this is not acceptable.
Everyone on the project should follow the same standards.

コメント文について

コメント文に関しては賛否両論だと思います。
ぶっちゃけて言えば、僕も不必要に細かく細かく説明するコメント文はノイズだと認識していますが、
今回の件は少し事情が違いまして……

当然の事ながら、このプロジェクトではコメント文は英語で書かなくてはならない訳です。
しかしながら僕は英語がからっきしなので、「英語のコメント文を書く」という作業には
割とかなり高いコストがかかってしまいます。

そして、容赦なく襲い掛かってくる
_人人 人人人_  _人人 人人人_
> 新しい機能 < >バグフィックス
 ̄Y^Y^Y^Y^Y ̄   ̄Y^Y^Y^Y^Y ̄
これらを言い訳にして、(面倒くさい)コメント書きをほぼ一切しなかったので、
今回のように「頼むからコメント書けよ!」というメールが飛んできた次第なのであります。
理想形は日本語でコメントを書くように英語でコメントを書けるようになることですね。精進致します。

プラグインについて

僕がこのプロジェクトに関わった初期の段階に割り当てられたコンピュータは呪われていて、
Eclipse を起動すると、容赦なく(最悪の場合OS ごと)落ちる
という割とアレな環境だったので、Vim をメインに開発しておりました。
なおかつその当時 (去年の話です)、僕は「チームで作業する」という開発スタイルを一切知りませんでした。*2
なので、Checkstyle もFind bugs もJAutodoc も、そのなにもかもを知らずに開発していたのです。
で、後にEclipse が動く(!) コンピュータを手にしたのですが、もちろんそういう便利プラグインは知らない訳です。
(EclipseVimキーバインドで使えるようにするVrapper のようなプラグインは入れてましたが)
その無知ゆえにヤンチャなことになっているソースコードに業を煮やした為に、
今回のようなメールが飛んできたという悲しき経緯が……*3

テストについて

積極的にテストを書くようにはなりました……が、難しいです。
テストを書くこと自体も難しいですが、何よりもテストにどれくらい労力を割いていいのか見極めるのが難しく感じます。
テストファーストとかにも興味はあるんですが、いざ実践しようとすると混乱してしまうので、
ガンガン経験を積んで行かないとなーと思っております。TEST TEST TEST!!!

という感じで

僕は幸せです。
僕のような尻の青いプログラマに対して、がっちりとコーディング指南をしてくれるプロジェクトの先輩がいるのは非常にラッキーだったと思います。
(もちろん、メールをもらった直後は結構凹みましたが。時差の影響で真夜中に届いたので、その日はあまり眠れませんでした)

いろいろな方が仰っているように、先の記事に書いてあった事は「普通の事」です。
「普通の事」をわざわざ記事にするのは少し心苦しい気もしましたが、
その「普通の事」も守れていない自分が居たので、自戒の念を込めて記事にしたためました。

もらったアドバイスは常に留意して今後に活かしていきたいと考えています。
もしも、先の記事が少しでも皆様のお役に立ってくだされば幸いです。

だ・そ・く

タイトルに「米国人に」という枕詞が付いているのに他意はありません!
事実、アメリカ人から送られてきたので、そうくっつけたに過ぎません。
日本人から言われたら「会社の先輩から」、あるいは「◯◯さんから」というプレフィックスを付加しただろうと思います。

アメリカ的な何かが深く関係していると思われた方、スミマセン。*4

*1:原文中にコネコチャンとか出てこねーし!!!

*2:本当に。さらに言えばgit はおろか、subversion も知らなかった。maven も、Redmine も、Jenkinsも……

*3:悲しくなんか無い。僕が悪い

*4:まあ、僕がコメント文を書かなかったくだりはアメリカ、というか英語が関わってるんでよしとしてください!