2012-08-15
変更前をコメントアウトして残す習慣は未だ根強い
バカバカしい話ですが、ソースコードをSubversionなどでバージョン管理しているにもかかわらず、未だ修正前をコメントアウトして残す習慣は残っているところも多々あります。こういうのです。
// 2012/08/15 irof 修正開始 // hoge = fuga(1); hoge = fuga(2); // 2012/08/15 irof 修正終了
見た事無い方は、そのまま見ないままで生きていかれることを切に願います。
コメントの修正がある場合
2012/07/21にあった、SCMBCでこんなツイートがありまして。
コメントアウトを削除する場合は、コメントアウトを削除したというコメントを残してください(フィクションです) #scmbc
2012-07-21 11:15:37 via web
@cointoss1973 「間違ってるコメントを消して」って言ったらコメントをコメントアウトされたことがあります。 #scmbc
@irof コメントをコメントアウトってどういうことww #scmbc
2012-07-21 11:18:32 via web to @irof
@cointoss1973 こんなの URL #scmbc
@irof オゥフまさかと思ったら、そのまさかだった... #scmbc URL
2012-07-21 11:28:20 via web to @irof
この時点でお見せしたのはこんな感じ。
// 2012/07/21 削除開始 // // 間違ったコメント // 2012/07/21 削除終了 someMethod(arg);
さて、指摘がありました。
日付と理由の間に変更者名忘れてるよw RT @cointoss1973: @irof オゥフまさかと思ったら、そのまさかだった... #scmbc URL
そう。冒頭で見せたように、修正者の名前を書く慣習もあります。どうやらここ*1ではそう言うお決まりのようです。
修正しました! RT @ktz_alias: 日付と理由の間に変更者名忘れてるよw RT @cointoss1973: @irof オゥフまさかと思ったら、そのまさかだった... #scmbc URL
と言うことで、この指摘に対応したものは以下になります。*2
// 2012/08/15 irof 修正開始 //// 2012/07/21 削除開始 //// // 間違ったコメント //// 2012/07/21 削除終了 // 2012/07/21 irof 削除開始 // // 間違ったコメント // 2012/07/21 irof 削除終了 // 2012/08/15 irof 修正終了 someMethod(arg);
……わかります?
「// 2012/07/21 削除xx」を「// 2012/07/21 irof 削除xx」に修正するために、「// 2012/08/15 irof 修正xx」で修正箇所をわかるように囲っています。これで修正が誰でも追えるようになるらしいです。そんなばかな。
コメントアウト履歴化なんてしてはいけない
コメントのコメントアウト履歴化、バカバカしさが際立って伝わると思います。さすがにあまり見た事は無いですが、実際に無くはないです。コメントを含んでのコメントアウト履歴化はザラにあります。
コメントアウトして履歴を残すことで変更を追うのなんて至難の業です。一つ前の一本のソースの一カ所を数行しか変更しないとかならまだなんとかなるでしょうが、それ以上となるともうアレです。特に複数のソースに跨がったりすると目も当てられません。*3
バージョン管理ツールを適切に使いましょう。凝った使い方が出来なくても、変更の都度突っ込んでおけば、差分を取得する事は容易いです。容易いんです。少なくともコメントアウトされたコードを紐解くよりは、よっぽど。
「バージョン管理ツールが使えない人にもわかるように」とか言われたこともありますが、そんなのに対して聞く耳を持ったら何も出来なくなるので放置でいいと思います。正直どうしたらいいかわかりませんでした……。
- Twitter / @HIROCASTER
- Twitter / @momontyo
- Twitter / @grimrose
- Twitter / @inushiba747a
- Twitter / @manabetn
- Twitter / @irof
- Twitter / @ryunosinfx
- Twitter / @sizuhiko
- Twitter / @zephiransas
- Twitter / @f97one
- Twitter / @wankomagic
- Twitter / @bloom_queen
- Twitter / @amameci
- Twitter / @literalice
- Twitter / @webdevjp
- Twitter / @webdevjp
- Twitter / @brainfs
- Twitter / @yumu_sci
- Twitter / @oritoy
- Twitter / @rydotyosh
- Twitter / @Atsushi4
- Twitter / @kazuhito_m
- Twitter / @HIDARI0415
- Twitter / @sk44_
- Twitter / @matobaa
- Twitter / @toshiyk
- Twitter / @mponto0405
- Twitter / @hajikami
- Twitter / @ramusara
- Twitter / @katzchang
- Twitter / @kariya_mitsuru
- Twitter / @colopa
- 548 http://b.hatena.ne.jp/hotentry
- 436 http://b.hatena.ne.jp/hotentry/it
- 324 http://t.co/gUJioo0n
- 249 http://homepage1.nifty.com/maname/
- 215 http://b.hatena.ne.jp/
- 168 http://reader.livedoor.com/reader/
- 167 http://www-ig-opensocial.googleusercontent.com/gadgets/ifr?exp_rpc_js=1&exp_track_js=1&url=http://www.hatena.ne.jp/tools/gadget/bookmark/bookmark_gadget.xml&container=ig&view=default&lang=ja&country=JP&sanitize=0&v=e9d53a9626bc6fd8&parent=ht
- 152 http://homepage1.nifty.com/maname/index.html
- 100 http://www.google.co.jp/reader/view/
- 88 http://www.sleipnirstart.com/
- 2012-08-14 似非プログラマの覚え書き 3/49 6%