- - PR -
ソース修正の際に古いソースをコメントアウトするのはダメ?
投稿者 | 投稿内容 | ||||||||
---|---|---|---|---|---|---|---|---|---|
|
投稿日時: 2009-04-01 17:24
現在の仕事は、PHPで開発しており、Subversionで構成管理しています。
私はこれまでソースを修正する場合には、古いソースをコメントアウトし、さらに修正日付、修正者名、修正内容をコメントで入れるようにしてきました。 (例) ----------------------------------- //090401 update [氏名] #1234のバグ改修 start /* [古いソース] */ [修正後のソース] //090401 update [氏名] #1234のバグ改修 end ----------------------------------- しかし、今一緒に開発している同僚のSEは、「古いソースをコメントアウトしたり、コメントに日付を入れたりするのは、構成管理ツールが無かった頃の古いやり方だ。今はむしろやってはいけない風潮になっているから、すべきではない。」といい、そのやり方に反対しています。 確かに私も商用リリース前のソースの修正に関してはこんなことはしないのですが、商用リリース済みのものに関しては慎重にやりたいので、情報をたくさん残すようにしています。 この同僚のSEの言う通り、このやり方は古くやらない方が良いのでしょうか? 皆様の開発現場はどうされてますか? | ||||||||
|
投稿日時: 2009-04-01 17:37
それは、プロジェクト毎に決めればいいことではないでしょうか?
確かにSubversionやCVS等では差分管理をしており、過去のバージョンとの比較が簡単にできるのですけど。 比較しないと発見できないのですね。 コメントアウトするか、修正履歴だけでも保持するか、全く記述しないか。 ケースバイケースでは。 | ||||||||
|
投稿日時: 2009-04-01 18:25
私も、基本的には「古いやり方だ」という考えを持っています。
ただ、この考えも納得できます。「慎重」さを重視すると、やはりソースコードに残すことが、良い方法だと思います。 ちなみに、1年ほど前に別のカテゴリーの会議室で、類似の話題がありましたので紹介します。 Java Solution 会議室 件名:ソース修正時にコメントでどう挟むか? http://www.atmarkit.co.jp/bbs/phpBB/viewtopic.php?topic=42316&forum=12 (この紹介は、情報の紹介のみを意図しています。検索しろ、などというような意図ではありません。) | ||||||||
|
投稿日時: 2009-04-01 19:10
確かに迷うところですね。
でも、 コメントを残すことで、見やすく(仕様変更したことががわかりやすく)なるのは最初のうちだけで、 長期的に見ると、修正に修正が覆いかぶさったりして、 どんどんぐちゃぐちゃになって訳がわからなくなっていくことが多いと思います。 ですので、私は、 ソース上のコメントは、常に最新の仕様を反映した状態を維持するようにし、 誰が、いつ、なぜその変更をしたかという履歴は、バージョン管理ツールの機能を使ったり、別にドキュメントを作ったりして管理しています。 | ||||||||
|
投稿日時: 2009-04-01 20:21
こんな修正されたら、たまったもんじゃない。
判定文が誤っていた場合に、ブロックを越えてブロック コメントや ifdef でコメント アウトされると、エディタが混乱して、修正効率が下がります(色分けや折りたたみ、対応するカッコにジャンプが使えなくなる)。 複数のバグを一回でコミットするのではなく、バグひとつにつきコミット一回(以上)にすると、管理も容易になります。 あと、修正前に自分用のデータベースにコピーする、ブランチするなど。 但し、何故(修正して)今のコードになったのかというコメントは、おおいに入れるべきだと考えています。 | ||||||||
|
投稿日時: 2009-04-02 08:48
私もなぜ修正したのかは最低限入れるべきだと思います。
ただし、sasagakiさんがおっしゃるようにコメントの書き方によっては、後からの見直しが逆に困難になると思いますので、全くコメントを付けないのはどうかと思いますが、必要最低限は要るのではと考えます。 | ||||||||
|
投稿日時: 2009-04-02 10:08
基本的にコメントアウトはナシですね。
変更履歴はソース管理で残してます。 都度内部コンパイルするスクリプト系の言語だと、 コメントアウト部分は全て無駄ですね。 | ||||||||
|
投稿日時: 2009-04-02 11:06
皆様、回答と情報ありがとうございます。
いろいろ情報をいただいて、それでもまだ個人的には「可読性が損なわれない範囲である程度は残した方が良いのでは?」と思っています。 ただ、あるところで見かけましたが「Subverisonでのコンペアが見づらくなる」というのは納得です。 また、「コメントアウトを復活して難を逃れたことは一度も無い」とあるところで見かけましたが、確かに納得です。 結局、自分に安心感を与えたいだけの自己満足なのかもしれませんね。 私もここらへんで心機一転考え方を変えて、その"今風"のやり方で試しにやってみようかと思います。 修正日付、修正者、修正内容に関してはすべてSubversionに頼り、古いソースは残さず、コメントは機能説明だけを最低限つける、という方向でやってみようと思います。 きっとそれはそれで不便なことが出てくるのでしょうが、またその時方針を見直そうかと思います。 |