« jMockを使うとより「文芸的プログラミング」になる? | トップページ | Javaの次に来るもの »

2006年9月22日 (金)

自分色に染めてしまいたい衝動

小野和俊のブログ:人のプログラムを自分色に染めてしまいたくなる衝動 より。

かのビル・ゲイツが、その昔、自社のBASICインタプリタのプログラム・ソースを、全部書き直していた、という逸話を思い出しました。

私にも身に覚えがあります。昔、外注先から納品されたソース全てに手を加えたりしていたこともありましたね。最近はできるだけ気にしないことにしています。プログラムの「実装部分」については。インターフェイス部分は、未だに自分色を押し通していますけど。

--
レベル1)
いわゆるプログラムのスタイル(書法)レベルですね。これは気にしないようにしてます。典型的には、「インデント論争」でしょう。タブかスペースか、2個か4個か8個(!)か。ちなみに、私は「スペース2個」派なんですけど。この論争は決着不能なようですので、自分が最初に書くときは自分色ですが、すでにソースがあって手を入れるときは、そのソースを書いた人のスタイルを踏襲します。本当は、プロジェクト内で統一した方が望ましいのですけども。一度試みてあきらめました。

レベル2)
これは、結構やってるかも...
自分が手を入れるときには、場合によっては、原型を留めないくらいに変えることがありますね。それで、別のバグを混入させてしまうこともありますけど。長い目で見れば、変えておいた方が良いコードというのもあり、状況によってはやります。

レベル3)
うーん、逆にそれでちゃんと動いているのなら、ある意味すごいですけど。まだリリースしておらず、稼動実績がないのであれば、「捨ててやり直し」ですかね。ただ、最近のプロジェクトは人的・時間的リソースがひどくタイトですので、一発勝負でやり直し不可となってしまってます。ですので、初めて一緒にやるメンバーの場合、最初にユーティリティ的な、ちょっとしたクラスなりメソッドなりを作ってもらい、それで、その人を使うか使わないか、使うならどの箇所か、を判断しています。
--

もう一つ、これは「レベル1」だと思いますが、論理式の書き方をどうするか、というのもあります。
例えば、

not ((a==b) or (c==d))

と書くか、あるいは、

(a!=b) and (c!=d)

と書くか、ですね。基本的に、私は下の方が「好み」なのですけども。人によっては、上の方を好むようです。

|

« jMockを使うとより「文芸的プログラミング」になる? | トップページ | Javaの次に来るもの »

コメント

ronさん、こんばんは!
何度も派生を繰り返して、たくさんの人やチームを経てきたソースには「できるだけ手を加えない」というルールがある会社もありました。「本当はあーしたいんだけど」「これを触るとなぁ」という声がたくさん聞こえました。

投稿: 手文庫 | 2006年9月24日 (日) 00時34分

手文庫さん、コメントありがとうございます。
直した箇所は全部、修正前のコードをコメントで残す、というルールのチームはありました。
しかし、改修を繰り返せば、コメントから元に戻すことなどできなくなるわけでして。ソース管理システムを使うべきですよね。

投稿: ron | 2006年9月24日 (日) 18時28分

コメントを書く



(ウェブ上には掲載しません)


コメントは記事投稿者が公開するまで表示されません。



« jMockを使うとより「文芸的プログラミング」になる? | トップページ | Javaの次に来るもの »