読者です 読者をやめる 読者になる 読者になる

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

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

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

プログラミング

"米国人からコーディングについての怒りのメールを頂戴した" の補足 - その手の平は尻もつかめるさ
↑の方で補足いたしました。(2012.09.04 追記)


最近、英語のメールでよく怒られます。moznion です。
海を隔てて共同作業しているアメリカ人から、僕のコーディングについてお叱りのメールを頂いたので、
自戒の念を込めて邦訳して記します。

書いてあることは「当然」とも言うべき内容ですが、僕はその「当然」も守れていなかったのかぁ〜と反省。
以下、邦訳(意訳)です。

1. 郷に入っては郷に従え

既にソースコードが存在しているって事は、そこには同時にコーディングスタイルも存在しているってことだ。
その既存のソースコードに手を加える場合、別のコーディングスタイルを導入してはならない。
もし君がバックエンドのソースコードを弄っているなら、バックエンドのコーディングスタイルで記述するんだ。
フロントエンドならフロントエンド、モデルならモデル、それぞれのスタイルに従うべきだ。
郷に入っては郷に従えってことさ。

2. Javadoc を書くのだ

Javadoc (コメント)をしっかり書いてくれ。君はどうもあまりコメントを書かない傾向がある。
JAutodoc みたいなプラグインを導入してコメントを自動生成できるようにするとなお良いだろう。
で、コメントを書き終わったら一度立ち止まってみてくれ。
そのコメントが完璧かどうか、そしてそのコメントがきちんとした精度・粒度で書かれているかを確かめるんだ。
コミットするのはそれからでも遅くはない。

3. プラグインを有効に使うんだ

最近は便利になった。なにせ、コンピュータの支援を受けながらコーディングが出来るんだから。
その「コンピュータが施してくれる支援」を知っているのと知らないのとでは雲泥の差がある。
君はどうやら、まだその偉大な力を知らないコネコチャンのようだな。

まずは、"Checkstyle" を使うんだ。これを使えばコーディング規約に従っていない部分や、
いわゆる「良くない書き方」をしている部分に対して警告を出してくれる。あとはソイツを正すだけだ。
併せて、"Find Bugs" も使おう。Find Bugs はプログラム中でバグを生み出しそうな部分を指摘してくれる。
(どういう仕組みで動いているのかを知りたい場合は自分で調べてくれ)
そして、その指摘された部分を修正すればバグレスなプログラムを組める(かも知れない)って塩梅さ。

他にもこういう支援プラグインは沢山あるから、自分でも色々探してみよう。
そして良い物があったら僕たちにも教えてくれ :-)

4. 君の書くコードはいつか誰かが読むコード

ソースコードを書く時は、「このコードは、後で必ず誰かが読むコードだ」と言うことを常に頭に留めておいて欲しい。
つまり、ソースコードの構造を熟考したり、コード中のホワイトスペースを工夫したりして
読みやすくするという努力を絶やしてはならない。

あと、さっきも言ったけどコメントを書いてくれ。出し惜しみする必要はない。
コメントがたくさん書いてあって困る事はないんだ。
可読性? そんなのは後になって「こんなコメントは必要無いだろ」と思った時に、そのコメントを消せば解決する。
ただそれだけのことだ。

5. テスト! テスト!! テスト!!!

テストをしてくれ。テストをしてくれ。テストをしてくれ。
大事な事だから3回言った。良いかい、テストをするんだ。

君が新しい機能やフィックスを追加した時は、必ずテストをしてプログラムを壊していないかを確かめるんだ。
とは言っても人力でテストするのには限界がある。
なのでテストプログラムを書いて、そのプログラムの正当さを証明すると良いだろう。これは良いプラクティスだ。

って感じで

君が書いたソースコードは、上に記したような事が守られていないものが多い。
いや、「多い」というのは正確じゃないな。正しくは「腐るほどある」だ。マジで。
製品になるソースコードにって、これは許されることではない。
他の開発メンバは以上のことを守ってコーディングしている。君も守ってくれ。


以上、和訳でした。

このメールが送られてきた時は若干凹みましたが、今は元気です。
気をつけたいと思います。