- PR -

ソース修正時にコメントでどう挟むか?

投稿者投稿内容
Java僧
ぬし
会議室デビュー日: 2003/11/06
投稿数: 261
投稿日時: 2007-11-19 19:18
私も過去のコードはコミット時にはソース中に残しません。
必要な情報はコミット時のコメントに書くようにすれば、必要に応じてdiffで見られるようになるからです。
チームを率いることになったら、ルールでこうします。
不要なものは見ずにすみ、必要なものは見られる、これがベストですね。
flatline
大ベテラン
会議室デビュー日: 2005/09/22
投稿数: 102
投稿日時: 2007-11-20 00:14
引用:

ちなみに私の場合はこんな感じです。
コード:
	
	// 2007/11/18 会社名 A.Watanabe MOD begin #0041 インジェクション対応
	//// 2007/10/30 会社名 eiichi MOD begin 商品コードは前方一致でも可とする
	////sql += "ITEM_CD='" + item_cd + "' AND ";
	//sql += "ITEM_CD LIKE '" + item_cd + "%' AND ";
	//// 2007/10/30 会社名 eiichi MOD end
	sql += "ITEM_CD LIKE '?%' AND";
	// 2007/11/18 会社名 A.Watanabe MOD end



工夫しているところは・・・
修正のカテゴリとしてADD/MOD/DELを使い分けます。
不具合や仕様変更の番号があるときにはそれを付加します。
修正の修正をしても元のソースが類推できるようにしています。
grepしてもコメントかどうか分かるように、/* */は使いません。



昔むかし、汎用機でCOBOL をやっていたとき、こんな書き方してました。
Java でも(しかも未だに)やってるとは、ちょっと驚きです。

Scott W. Ambler氏が、「Writing Robust Java Code」の中で、
「30秒ルールに従う」ことの重要性を説いています。
http://www.alles.or.jp/~torutk/oojava/codingStandard/writingrobustjavacode_pidid93_c2.html#doc1_id609
上記のようなコメントは、可読性を妨げるだけだと思うのですが。

以前に、外部のソフト会社にJava のシステムを依頼したとき、納品されてきた
ソースに、System.out.println() が無数に入っていて、「これは?」と
訊いたら「この方がわかりやすいでしょう」と得意げに言われたことがあり、
「いろんな文化があるもんだ」と感心してしまいました。
案の定、そのシステムの品質は、ボロボロでしたが。
かつのり
ぬし
会議室デビュー日: 2004/03/18
投稿数: 2015
お住まい・勤務地: 札幌
投稿日時: 2007-11-20 00:27
引用:

以前に、外部のソフト会社にJava のシステムを依頼したとき、納品されてきた
ソースに、System.out.println() が無数に入っていて、「これは?」と
訊いたら「この方がわかりやすいでしょう」と得意げに言われたことがあり、
「いろんな文化があるもんだ」と感心してしまいました。
案の定、そのシステムの品質は、ボロボロでしたが。


あー、それ絶対突き返しますね・・・。


というか、Javaでコメントアウトで変更履歴管理を行っているところってまだあるんですね。
テキストエディタで開発されているんでしょうか。
unibon
ぬし
会議室デビュー日: 2002/08/22
投稿数: 1532
お住まい・勤務地: 美人谷        良回答(20pt)
投稿日時: 2007-11-20 00:51
私もソースコード自体に修正履歴のコメントを残すのは好きではないのですが、しかし、修正履歴をこまめに CVS に残しても、開発が完了すると CVS をバッサリと消すやつがいます。なに考えているんだろうと思うのですが、当人に聞くと「もう要らなくなったから」とか「ハードディスクの空きがないから」とか「バックアップの容量が大きすぎるから」などと答えるのです。

結局、ソースコードとCVSをペアで管理してくれること(要は CVS だけを管理してくれればそれで良い)を期待していても、大人の事情か天変地異かなんにせよ、それがかなわないことがあるのです。私はそういう可能性が考えられるときは、せめて重要な修正履歴についてはしかたなしにソースコードにコメントとして残しておきます。

--
unibon {B73D0144-CD2A-11DA-8E06-0050DA15BC86}
trickster
会議室デビュー日: 2004/08/05
投稿数: 8
お住まい・勤務地: 東京の外れで気持ちは千葉っ子
投稿日時: 2007-11-20 01:04
/** 2007/11/19 trickster add comment追加 start **/

ほぼ同じ様な方がいて嬉しくなっちゃいました(笑)
自分もa-sanさんの様な形で書きますね!それこそVSSやCVSを使っている上で

癖というか…バージョン管理していたとしても、
コード見る際に多少なりとも即席の情報としては有用かなと思ったり
邪魔くさいと思ったりで一長一短でしたが…それこそJavaでしたし(苦笑)

flatlineさんの指摘している事は正に一短を指しているのかなぁと。
下手なコメントは可読性を悪くする一方で……。
後から見た人からすれば、なんぞこれ?となることもありますし。

ただ…コメントを読んでいると、コメントアウトでの履歴管理が
時代遅れ的なように見受けられたのが悲しくなってしまったり。
上から下まで言ったらキリないですけど、ツール管理をしたくても
出来ない現場・現状だってあるんです!

と、下っ端風情で噛み付いてみたりです。えへ
※今はコメントは余り残さずに別で変更管理をドキュメント化する
などとしているだけに、環境の違いを感じてしまう今日この頃です。

システム規模の際も理由の一つなのですかねぇ〜

/** 2007/11/19 trickster add comment追加 end **/
かつのり
ぬし
会議室デビュー日: 2004/03/18
投稿数: 2015
お住まい・勤務地: 札幌
投稿日時: 2007-11-20 01:30
今はTracとSubversionをメインで使っていますが、
バージョン管理ツールのメリットって、
変更履歴がわかるだけではないんですよ。

バージョン管理ツール自身の機能も豊富ですが、
ツール等と連動することで色々なことができるようになります。

・ソースをhttp経由で参照
・変更情報をRSSで配信
・コミットメールを送信
・コミットの一定時間後に自動テスト&ビルド
・リモート開発でのソース共有

等など・・・

バージョン管理ツールは履歴を保存できる便利なファイルシステム?
くらいに考えている人は、一度試してみるとよいかと思います。
特にTracのディストリビューションであるTrac Lightはお勧めです。
末記人
大ベテラン
会議室デビュー日: 2005/12/05
投稿数: 233
お住まい・勤務地: あわにこ
投稿日時: 2007-11-20 09:20
スレ違いですが

コメントで発注もとの愚痴を書いたり、同じプロジェクトのチームで
コメントで喧嘩をしていた形跡を見たことがあります。

しかもそれが、VSSにチェックインされていたりしてわろいました。

//OO: >XX ここのXXのコード全然ダメダメ、〜がなってない。
//XX: >OO うるせーハゲ氏ね
//OO: >XX おまいこそ市ね、コード直してから氏ね

見たいな感じw
小僧
ぬし
会議室デビュー日: 2002/08/14
投稿数: 526
投稿日時: 2007-11-20 10:29
長年使っているようなシステムのソースだと、お客さんが
こういった変更履歴を要求してくることもありますよ。
個人的には30秒ルールの方なんですけど、バージョン管理
システムが納品物に含まれていない場合が多いのでこうなって
いるんだろうなと思ってます。ソースコード + diffの結果
という場合もありますね。
余談ですけど、こういった方式で管理されるコードのヘッダ
コメントに最初の作成者として名前入れておくと、その後
別の会社がソース修正しても名前を変えたり追加してくれない
ので、お客さん側でソース管理システム持ってたりすると、後々
変なこと思われなくていいんだろうなーと思ったりしてます。


スキルアップ/キャリアアップ(JOB@IT)