LOCはおそらく最も悪用されるメトリックの1つであり、その結果、おそらくコードの品質のより無意味な測定の1つであり、プログラミングの労力のさらに無用の測定です。
はい、それは私がする大胆な声明です、そしていいえ、私はあなたに私の主張を証明する研究をあなたに指摘することはできません。しかし、私が苦労して得た経験から、あなたが書いたコードの量について心配し始めると、おそらく間違った問題について心配していると述べることができます。
最初に、何を測定または証明しようとしているのか、この証明が単に関心の対象ではないのか、または幅広い品質向上をサポートするのか、そしてチームから賛同を得るためにこの情報を使用する必要があるのかを自問する必要があります。 /それについて何かをするための管理。
LOCを使用する傾向があるものの1つは、少しの妥当性チェックです。大量のコードを記述していることに気付いた場合は、全体のLOCではなく、メソッドごとのLOC、またはクラスごとのLOCに興味を持ちます。これらの測定値は、コードがどの程度適切に因数分解されているかについて少しOCDを感じている場合に、さらにリファクタリングする必要があることを示す指標になる場合があります。非常に大きなクラスは、いくつかの小さなクラスにリファクタリングする必要がある場合があり、長い複数行のメソッドは、いくつかのメソッドや他のクラスに分割する必要がある場合や、削除できる可能性がある繰り返しを示す場合もあります。「マイト」という言葉を数回使用したことに注意してください。
実際には、LOCは可能な指標のみを提供し、コードの変更が必要になる可能性があるという実際の保証はありません。実際に尋ねる質問は、コードが必要に応じて期待どおりに動作するかどうかです。もしそうなら、次の質問は、コードを簡単に保守できるかどうか、そして現在または将来、作業コードに変更を加えて将来の保守のオーバーヘッドを減らす時間があるかどうかです。
多くの場合、多くのコードは後でメンテナンスする必要があることを意味しますが、適切に因数分解されたコードでさえも数百行のコードにまで及ぶ可能性があり、はい、1日で数百行のコードを記述していることがあります。しかし、経験から、毎日数百行の新しいコードの出力を維持している場合、多くのコードが他の場所から不適切にカットアンドペーストされているというリスクがあり、それ自体が複製とメンテナンスですが、これも保証ではありません。そのため、私は自分の経験と直感が、手元のタスクがどのように完了したかに基づいて教えてくれることに依存する傾向があります。
私の質問で提示されたジレンマを回避する最善の方法は、LOCを忘れて、常にリファクタリングすることです。最初にコードテストを記述し、実装して失敗し、リファクタリングして合格し、次にそこにリファクタリングできるものを確認してから、コードを改善します。あなたはすでにあなたの仕事を再確認したことを知っていて、将来自分自身の二次推測についてそれほど心配することはないということを知っているタスクを去ります。現実的に言えば、私が説明したようにテストファーストのアプローチを使用する場合、完成したコードのLOC /日測定は、実際に測定量の3〜5倍を書き込んだことを意味し、その努力は継続的なリファクタリングによって正常に隠されます尽力。