Odpowiedzi:
Przeformułujmy, że:
Czy warto kupić dobry automatyczny generator kodu?
Tak.
Czy koszt słabego automatycznego generatora kodu, który tworzy więcej pracy dla wszystkich innych, ale autor jest tego wart?
Absolutnie nie. Nie ma usprawiedliwienia dla złego kodu. Jeśli ktoś chce być sprytny i korzystać z automatycznego generowania kodu, powinien poświęcić trochę czasu, aby upewnić się, że wygenerowany kod jest dobrym kodem. W przeciwnym razie jaki jest tego sens? To tylko spycha złotówki w dół, a jeśli chodzi o produkcję kodu, złotówka powinna zatrzymać się na deweloperze, który ją napisał.
Kod generowany przez generator nigdy nie powinien być obsługiwany ręcznie. Jeśli trzeba to zmienić, to generator i / lub jego ustawienia muszą zostać poprawione i uruchomione ponownie. Biorąc to pod uwagę, nie ma znaczenia, czy wynikowy kod jest niezrozumiały i nieudokumentowany, o ile sam mechanizm generowania jest krystalicznie czysty. (Pamiętaj, aby udokumentować fakt, że kod jest generowany oraz gdzie znajduje się generator i jak działa).
Analogia: chociaż procesor mojego komputera zawsze wykonuje kod maszynowy, nie muszę nic o nim wiedzieć, o ile wiem, jak utworzyć ten kod maszynowy przy użyciu języka wysokiego poziomu i kompilatora. Słyszałem, że GCC czasami produkuje słabszy kod maszynowy, ale kogo to obchodzi, o ile działa idealnie. Warstwy abstrakcji bazy danych produkują SQL do pracy z silnikiem DB, ale kogo to obchodzi, jak ten SQL wygląda, o ile warstwa abstrakcji jest czysta i działa?
Przy odpowiednim użyciu generatory kodu mogą zdecydowanie zaoszczędzić nie tylko tworzenie, ale także koszty konserwacji.
Generator kodu jest rodzajem kompilatora. Nie martw się o to, jak ładne jest wyjście kompilatora, po prostu pracujesz z kodem źródłowym. Używanie go, a następnie ręczne modyfikowanie danych wyjściowych jest często trudniejsze niż zwykłe pisanie ich od zera w formie zrozumiałej dla ludzi i oznacza, że nie możesz ponownie użyć generatora kodu bez dużego nakładu pracy, ponieważ będziesz musiał zastosować dokładnie te same zmiany w tym samym niezrozumiałym kodzie.
Dlatego mogą być w porządku, jeśli są częścią procesu kompilacji i jako takie są udokumentowane. Dane wejściowe do generatora są wówczas kodem źródłowym, a cokolwiek produkuje, to wyniki pośrednie, których nie można pomieszać.
Jeśli jednak ktoś używa takiego kodu do wytworzenia niezrozumiałego kodu, który powinien być użyty jako źródło, oznacza to, że ten kod produkuje zły kod. Nie ma znaczenia, czy dana osoba produkuje zły kod mechanicznie czy ręcznie, nadal jest to zły kod i nadal masz z nim problem z jakością.
Dlatego musisz traktować to jak każdego innego programistę, który robi rogi i pisze zły kod. Nie wiem, jak sobie z tym radzisz w swoim sklepie.
Z komentarzy do innych odpowiedzi wydaje się, że pytasz o standardy zespołu, a nie o same generatory kodu.
Narzędzie do generowania kodu powinno zostać uwzględnione w projekcie i (w stosownych przypadkach) powinno być częścią procesu kompilacji. Przykładem może być nasz zespół, w którym korzystamy z Subsonic 2.2, który generujemy klasy z obiektów bazy danych na kompilacji.
Exe, który to robi, jest sprawdzane w SVN jako część projektu, aby nowy członek zespołu mógł pobrać nowy projekt z svn i natychmiast go zbudować bez konieczności ustalania, skąd pochodzą wszystkie te klasy baz danych (w tym przykładzie nawet nie dołączaj wygenerowanego kodu do svn).