LOC ist wahrscheinlich eine der am häufigsten missbrauchten Metriken und daher wahrscheinlich eine der nutzloseren Messungen der Codequalität und eine noch nutzlosere Messung des Programmieraufwands.
Ja, das ist eine kühne Aussage für mich, und nein, ich kann Sie nicht auf Studien verweisen, die meinen Standpunkt belegen. Ich kann jedoch mit hart erarbeiteter Erfahrung feststellen, dass Sie sich wahrscheinlich Sorgen über die falschen Probleme machen, wenn Sie sich Gedanken darüber machen, wie viel Code Sie geschrieben haben.
Sie müssen sich zunächst fragen, was Sie messen oder beweisen möchten und ob dieser Beweis nur aus Interesse ist oder um eine umfassendere Qualitätsverbesserung zu unterstützen, und wo Sie diese Informationen verwenden müssen, um ein Buy-In von Ihrem Team zu erhalten / Management, etwas dagegen zu tun.
Eines der Dinge, für die ich LOC benutze, ist eine Art Überprüfung der geistigen Gesundheit. Wenn ich viel Code schreibe, interessiere ich mich mehr für LOC pro Methode oder LOC pro Klasse als für LOC insgesamt. Diese Messungen könnten Indikatoren sein , dass Sie weiter haben Refactoring zu tun , wenn Sie ein wenig OCD über sich fühlen , wie gut einkalkuliert Code sein sollte. Sehr große Klassen müssen möglicherweise in einige kleinere Klassen umgestaltet werden, und lange mehrzeilige Methoden müssen möglicherweise in mehrere Methoden oder andere Klassen unterteilt werden oder weisen sogar auf eine Wiederholung hin, die entfernt werden könnte. Beachten Sie, dass ich dort mehrmals das Wort "könnte" verwendet habe.
Die Realität ist, dass LOC nur einen möglichen Indikator bietet und keine wirkliche Garantie dafür, dass sich Ihr Code möglicherweise ändern muss. Die eigentliche Frage ist, ob sich der Code wie erforderlich und wie erwartet verhält. Wenn ja, ist Ihre nächste Frage, ob Sie den Code problemlos warten können oder nicht und ob Sie jetzt oder in Zukunft Zeit haben, Änderungen am Arbeitscode vorzunehmen, um Ihren Wartungsaufwand in Zukunft zu verringern.
Oft bedeutet viel Code, dass Sie später mehr warten müssen, aber manchmal kann sich sogar gut faktorisierter Code auf Hunderte von Codezeilen erstrecken, und ja, manchmal schreiben Sie Hunderte von Codezeilen pro Tag. Die Erfahrung zeigt mir jedoch, dass bei einer täglichen Ausgabe von Hunderten von Zeilen neuen Codes häufig das Risiko besteht, dass ein Großteil des Codes unangemessen von einer anderen Stelle ausgeschnitten und eingefügt wurde, und dass dies an sich auf Probleme mit hinweisen kann Vervielfältigung und Wartung, aber auch dies ist keine Garantie. Daher verlasse ich mich in der Regel auf meine Erfahrungen und Instinkte, die darauf beruhen, wie die anstehenden Aufgaben erledigt wurden.
Der beste Weg, um das Dilemma zu vermeiden, das IMHO in Ihrer Frage auftaucht, besteht darin, LOC zu vergessen und die ganze Zeit umzugestalten. Schreiben Sie zuerst Ihren Codetest, implementieren Sie, um fehlzuschlagen, refactor, um zu bestehen, und sehen Sie dann, was dort möglicherweise refactoriert wird, und verbessern Sie dann den Code. Sie verlassen die Aufgabe mit dem Wissen, dass Sie Ihre Arbeit bereits überprüft haben, und Sie werden nicht so besorgt sein, sich in Zukunft selbst zu erraten. Wenn Sie einen Test-First-Ansatz verwenden, wie ich ihn beschrieben habe, bedeutet jede LOC / Tag-Messung an Ihrem fertigen Code realistisch gesehen, dass Sie das 3-5-fache der gemessenen Menge geschrieben haben, wobei dieser Aufwand durch Ihr laufendes Refactoring erfolgreich verborgen wird Bemühungen.