Hatena::ブログ(Diary)

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

2012-08-04

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

| 19:29 |

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


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

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

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

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

2. Javadoc を書くのだ

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

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

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

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

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

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

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

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

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

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

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

って感じで

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


以上、和訳でした。

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

こうこう 2012/09/04 10:23 訳されているので直接伝わってくる雰囲気はまた違ったのかもしれませんが、建設的に気づいて欲しいという感じに思いました。僕もグローバルチームで仕事をしているので、様子はある程度理解できるつもりですが、直接言うのって言う側も勇気がいるので、直で言ってきてくれたのは親切という面もあったのではないかなと思います。「そして良い物があったら僕たちにも教えてくれ :-)」というところからも、自分が言っていることが常に正しいという姿勢で言ってきているというよりは、自分も気づいていないことがあるかもしれないからその時は言ってくれという姿勢のある人なのではないかなと思いました。それにしても今はコーディングのために、いろいろと便利なものがあるんですね。僕がやっていた十数年前はそんなのなかったですw

通りすがり通りすがり 2012/09/04 10:59 なんて素敵な人なんでしょう。
アメリカ人でそこまで面倒見のいい人ってなかなかいないよー
ちゃんとお礼とか感謝はお伝えしましたよね???

けんけん 2012/09/04 11:36 初コメントです。貴重な体験のシェア、ありがとうございます。
すごく自分のこころにもしみました。
よければ、原文を拝見したいのですが、可能でしょうか?

 2012/09/04 13:30 当然ながら原文も載せてください.

sw2xsw2x 2012/09/04 15:28 初コメです。私なんて初めて作ったサイトは自分で書いたコードを見返す時に「なんだコレは!どうなっているんだ!」という感じになりました…最近はCSSの記述がいまいちで見返す時にまだまだ苦労します。
4番のいつかは誰かが見るというのを強く意識しながらわかりやすいコーディングをしていこうと思いました。

moznionmoznion 2012/09/04 21:32 >こうさん
上手く英語のニュアンスを汲み取れたかどうかは甚だ不安ですが、建設的な意見であったのは間違いないと思います。
とにかく、直接言ってもらって良かったです。良い経験になりました。
僕も便利なプラグインの効果には驚きっぱなしですw

>通りすがりさん
お礼しました! とは言うものの軽く平謝りみたいなメールになりましたが。

>けんさん
http://d.hatena.ne.jp/moznion/20120904/1346761290
こちらの方に補足として載せましたのでよろしくお願いします。

>sw2xさん
いつかは誰かが読むソース、というのは常に意識したいと思いました。かなり大事ですよね。

kaizen00kaizen00 2012/09/05 11:44 「誰かが読むコードだ」自分の場合は、具体的に「誰」を想定して読み直します。「誰」を特定すると、分かりにくいなという意識が生まれることがあります。「誰」を想定しないと、うやむやになっていくことがあります。「誰」は、なるべく口うるさい知人にします。大野元久くんとか、大野元久くんとか、大野元久くんとか。

さきちさきち 2012/09/10 23:04 コメントを書くのは大賛成だし、しこたま書くんだが、javadocの書式が嫌で嫌でたまらない私は、どうしたものだろう。
エリアコメントは通常のコメントに使わないんで欲しいんだ、++なしのCじゃないなら。

rokujyouhitomarokujyouhitoma 2012/09/13 18:23 原文をいただけますか?英語圏の知人に共有したいです。

リンク元