Antworten:
Lassen Sie uns das umformulieren:
Lohnen sich die Kosten eines guten automatischen Codegenerators?
Ja.
Sind die Kosten für einen schlechten automatischen Codegenerator, der mehr Arbeit für alle anderen schafft, sich aber für den Autor lohnt?
Absolut nicht. Es gibt keine Entschuldigung für schlechten Code. Wenn jemand clever sein und die automatische Codegenerierung verwenden möchte, sollte er sich die Zeit nehmen, um sicherzustellen, dass der generierte Code ein guter Code ist. Ansonsten, worum geht es? Es geht nur darum, das Geld in die Knie zu zwingen, und wenn es um die Code-Produktion geht, sollte das Geld beim Entwickler anhalten, der es geschrieben hat.
Von einem Generator generierter Code sollte niemals von Hand gepflegt werden. Wenn es geändert werden muss, müssen der Generator und / oder seine Einstellungen angepasst und erneut ausgeführt werden. In Anbetracht dessen spielt es keine Rolle, ob der resultierende Code unverständlich und undokumentiert ist, solange der Generierungsmechanismus selbst kristallklar ist. (Stellen Sie sicher, dass Sie dokumentieren, dass der Code generiert wurde, wo sich der Generator befindet und wie er funktioniert.)
Analogie: Während der Prozessor meines Computers immer Maschinencode ausführt, muss ich nichts darüber wissen, solange ich weiß, wie ich diesen Maschinencode mit Hochsprache und Compiler erstellen kann. Ich habe gehört, dass GCC manchmal unterdurchschnittlichen Maschinencode erzeugt, aber wen interessiert das, solange es perfekt funktioniert. Datenbankabstraktionsschichten erzeugen SQL für die Arbeit mit der DB-Engine. Aber wen interessiert es, wie SQL aussieht, solange die Abstraktionsschicht klar ist und funktioniert?
Bei richtiger Verwendung können Codegeneratoren definitiv nicht nur Erstellungs-, sondern auch Wartungskosten einsparen.
Ein Codegenerator ist eine Art Compiler. Sie machen sich keine Sorgen darüber, wie hübsch die Compiler-Ausgabe ist, Sie arbeiten nur mit dem Quellcode. Es ist oft schwieriger, die Ausgabe von Hand zu ändern, als sie von Grund auf in einer für den Menschen verständlichen Form zu schreiben. Sie können den Codegenerator also nicht ohne viel Arbeit wieder verwenden, da Sie den Code anwenden müssen Gleiche Änderungen an demselben unverständlichen Code genau.
Daher können sie in Ordnung sein, wenn sie Teil des Erstellungsprozesses sind und als solche dokumentiert sind. Die Eingabe in den Generator ist dann der Quellcode, und alles, was er erzeugt, ist ein Zwischenergebnis, das nicht zu verfälschen ist.
Wenn jedoch jemand einen verwendet, um unverständlichen Code zu erstellen, der als Quelle verwendet werden soll, dann erstellt diese Person fehlerhaften Code. Es spielt keine Rolle, ob die Person schlechten Code mechanisch oder von Hand produziert, es ist immer noch schlechter Code, und Sie haben immer noch ein Qualitätsproblem damit.
Aus diesem Grund müssen Sie dies wie alle anderen Entwickler behandeln, die sich abkürzen und fehlerhaften Code schreiben. Ich weiß nicht, wie du das in deinem Laden machst.
Aus den Kommentaren zu anderen Antworten geht hervor, dass Sie eher nach Teamstandards als nach Code-Generatoren selbst fragen.
Ein Tool zur Codegenerierung sollte in das Projekt einbezogen werden und (falls zutreffend) Teil des Erstellungsprozesses sein. Ein Beispiel wäre, dass wir in unserem Team Subsonic 2.2 verwenden, das wir beim Erstellen von Klassen aus den Datenbankobjekten generieren.
Die exe, die dies ausführt, wird im Rahmen des Projekts in SVN eingecheckt, damit ein neues Mitglied des Teams das neue Projekt von svn erhalten und sofort erstellen kann, ohne herausfinden zu müssen, woher all diese Datenbankklassen stammen (in diesem Beispiel wir) Fügen Sie nicht einmal den generierten Code in svn) ein.