SSブログ

コードを理解せずにコピーしない [プログラマー現役続行]

コードレビューをしていると、ちょっとおかしな実装に対して、どうしてそのような実装になっているのですかと聞くと、「参考にした既存コードがそうなっていました」と回答する人がいたりします。それで、よく調べてみると実装が間違っていたり、運良く動作しているだけだったりすることがあります。

このように、処理内容を理解することなく既存コードをコピーする人は、スキルレベルが低い人が多いです。「ソフトウェア・スキル・インデックス」で言えば、レベル2(見習い)でしょうか。

書籍に掲載するサンプルコードの場合には、誌面の都合もあり、エラー処理などを考慮すると必ずしも適切なコードになっていないことがあります。ライブラリーやSDKなどの参考使用例として、Javadocでクラスの使用例を書いたり、あるいは、サンプルコードを添付するような場合には、それらのコードがコピーされることを念頭に置いておく必要があります。「サンプル」だからということで手抜きの悪いコードを書くのではなく、むしろ「模範コード例」というぐらいの意識を持って書く必要があります。

残念ながらスキルレベルが低い人が多いソフトウェア開発組織では、良いコードも悪いコードもコピーされてしまいます。良いコードならまだしも、悪いコードが蔓延してしまうと技術的負債が蓄積されていくことになります。

(「ソースコードに技術者のレベルが現れる」)