真 もわ爛漫

しゃーら、しゃーらしゃーら

最近のコードサーチ

バグを受け取って、哀しいかな1行たりとも私が関係してない半年とか1年とか経って運悪くもメンテナーがざっくり入れ替わってしまった状況でまずなにやるかってgit blameです。で、そのバグくさい挙動を示す行に関連する最古のchangeとバグレポートを見る。この時点のソースコードのスナップショットがあるのは当然。で、すでに死んだコードでも当時水準では生きていたと信じられる根拠があれば、いつ死んだのかを知るためにやはりgit blameです。git logもすっげー使いますね。で、authorとcommitの日付も重要です。その当時誰がチームにいて、当時どういうタイプのスタイルが主流だったかを周囲のコードから見るわけです。たまにメンテナーの関係や、あるいは元になる要素技術の変化でコードスタイルが微妙に変わることがあって、その臭いを感じ取るためにはそのauthorがチームのどういう立場の時にどのリリースのタイミングでそれを入れたのかを注意深く観察する必要があるかも。もしチームにそのときに関与していた人がいれば、聞くのが良いですが、あいにく最近扱ってるものがホント色々とたくさんの(妥当な)依存関係を持っていて、だから逆に言えばその依存関係を当時知っていた同じ人が覚えているわけでもないわけです。git blameは覚えていますけどね。そう、今プログラマが学ぶべき言語はgit blameなんです。しかしすっごく不満があるのはこの名前で、何で俺はいつもいつも相手に責任問題を問いかけなければいけないのかと思うわけです。git responsibilityだとタイプ数多いので別の名前にするとして、しかしgit blameってのは叩くたびに何かムチを振り回している感じがして、好きなんだか嫌なんだか。

いや違うんだ。本当に欲しいのはEclipseがgit blameを勝手に解釈してタイムトラベルのようにぽややんって昔のソースコードを見せてくれて、「何かこの部分もう古くなってますね」ってワーニングを出してくれることなんだ。