Hier gibt es viele Antworten, die sich mit den technischen Vor- und Nachteilen befassen, LOC niedrig zu halten und ob es sich um eine aussagekräftige Qualitätssoftwaremetrik handelt oder nicht. Darum geht es in dieser Frage nicht. Es geht darum, wie man mit Management umgeht, das auf einer naiven dogmatischen Einhaltung einer bestimmten Kodierungsregel besteht.
Leider ist es ziemlich üblich, dass sich Menschen an Dinge klammern, die gute Ratschläge sind, wenn sie im richtigen Kontext verwendet und pragmatisch angewendet werden, sie aus diesem Kontext herausnehmen und dogmatisch anwenden, ohne die Probleme zu würdigen, die der Ratschlag überhaupt zu mildern gibt .
Die Absicht von Ratschlägen zur LOC-Unterdrückung besteht darin, die Schaffung von Methoden zu vermeiden, die versuchen, zu viel auf einmal zu tun, und die Schaffung von "Gottklassen" zu unterbinden, die zu viel über Aspekte eines Entwurfs wissen, die nicht von ihnen stammen direkte Verantwortung und wovon alle anderen Klassen im System abhängig sind. Ein weiterer Vorteil von kürzerem Code ist, dass er besser lesbar ist. Sie haben jedoch darauf hingewiesen, dass Sie ihn übertreiben können, bis die Lesbarkeit tatsächlich leidet.
Niedrige LOC-Werte haben offensichtliche Vorteile (kleine Methoden passen leichter in Ihren Kopf als große, weniger Code-Elemente bedeuten weniger Fehlfunktionen usw.), unterliegen jedoch auch dem Gesetz der sinkenden Renditen. Das Umgestalten einer 150-Zeilen-Methode in eine Anzahl von 20-Zeilen-Methoden ist ein viel größerer Gewinn als das Umgestalten einer 10-Zeilen-Methode in eine 7-Zeilen-Methode.
Wenn ein solches Refactoring auf Kosten eines anderen Aspekts guten Software-Designs (z. B. der Lesbarkeit) geht, haben Sie einen Punkt erreicht, an dem Sie es rechtfertigen können, dies nicht zu tun. Das Entfernen von Variablen, die den Bedeutungen des Codes einen Kontext geben, und das Ersetzen durch Literale, die dies nicht tun, ist eine sehr, sehr schlechte Sache. Guter Code enthält fast keine Literale. Bei diesen Variablen (und benannten Konstanten) handelt es sich jedoch um Codezeilen, die keinen direkten Beitrag zum Programm leisten. Wenn also LOC als eine Art Gott verehrt wird, besteht die große Gefahr, dass solche Klärungszeilen für einen schnellen Gewinn beschnitten werden einige irreführende Lob von der Geschäftsführung.
Ich glaube, Sie sind schlau genug, dies zu erkennen, und das ist so ziemlich der Kern Ihrer ursprünglichen Frage. Das Problem ist nicht Ihr Verständnis, wann Code-Reduktion gut ist, und wenn es nicht gut ist, ist das Problem Dogmatismus bei der wahllosen Anwendung einer normalerweise vernünftigen Praxis.
Ich würde empfehlen, sich die Zeit zu nehmen, um mit Ihrem Management zu plaudern, Ihre Position zu erläutern und zu erklären, warum Sie das Gefühl haben, dass das, was Sie tun sollen, den Code eher schädigt als hilft. Versuchen Sie, Konfrontation zu vermeiden, aber versuchen Sie, während einer solchen Diskussion rational und ruhig zu bleiben. Es ist wichtig, dass Ihr Management versteht, dass das Programmieren eine pragmatische Aktivität ist. Ratschläge zu bewährten Verfahren sind nur dann nützlich, wenn sie pragmatisch angewendet werden. Best Practice wird in einem Buch geschrieben, das nicht in Stein gemeißelt ist. Wenn es zu Konflikten kommt (kurzer Code im Vergleich zu lesbarem Code), muss der Programmierer entscheiden, welche Best Practice zu befolgen ist. Hoffentlich sind es vernünftige Leute, die solche Beiträge zu schätzen wissen.
Sie müssen auch ein bisschen mutig sein, denn wenn Sie unter Druck gesetzt werden, den LOC dort zu reduzieren, wo Sie dies für unnötig oder unangemessen halten, ist es nur natürlich, dass Sie die Änderung trotzdem vornehmen, um ein ruhiges Leben zu führen. Sie müssen sich dagegen wehren und diese Entscheidung "besitzen". In einer Situation, in der das Management vernünftig ist, sollten Sie sich nicht genau an die Richtlinien halten müssen, aber Sie sollten in der Lage sein, alle Umstände zu rechtfertigen, in denen Sie dies nicht tun.
Leider können Menschen irrational sein, besonders wenn es um Menschen geht, die weniger in der Hackordnung sind und ihre Entscheidungen und die Regeln hinterfragen, die sie Ihnen auferlegt haben. Sie können sich dafür entscheiden, nicht vernünftig zu sein. Darauf müssen Sie auch vorbereitet sein. Wenn Sie Fälle demonstrieren können, in denen die Best Practice des LOC in direkten Konflikt mit anderen Best Practices gerät und warum dies dem Produkt schadet, und wenn Sie dies in Teilen der Codebasis tun können, für die sie keine oder nur eine geringe persönliche Beteiligung hatten (dies ist auch nicht der Fall) Dies scheint kein persönlicher Angriff auf ihre Arbeit oder die von ihnen beaufsichtigte Arbeit zu sein. Auch hier müssen Sie bereit sein, sich auf ruhige, rationale Weise zu rechtfertigen und die Argumente, die Sie vorbringen, "zu besitzen".
Vorausgesetzt, Ihr Management besteht aus vernünftigen Leuten, dann müssen sie zu schätzen wissen, dass das, was Sie sagen, einen Wert hat, wenn Sie Beweise für Ihre Behauptungen vorlegen können.
s/\n/ /g
), was nicht heißt, dass sie auch nur aus der Ferne lesbar ist