In risposta a sulla mia domanda riguardante la generazione del codice sorgente Java , ho ricevuto questa risposta mi avverte di potenziali problemi di manutenzione:
- mixing auto-generated code always pose a risk of someone modifying it in future to just to tweak a small behavior. It's just the matter of next build, when this changes will be lost.
- you will have to solely rely on the comments on top of auto-generated source to prevent developers from doing so.
- version-controlling - Lets say you update the template of someMethod(), now all of your source file's version will be updated, even if the source updates is auto-generated. you will see redundant history.
La sua alternativa proposta è migliorare le classi in fase di runtime utilizzando la generazione bytecode.
Il mio pensiero era che l'iniezione di codice generato in file di codice sorgente esistenti avrebbe migliorato la manutenibilità, perché rende evidente ciò che sta accadendo invece di eseguire alcune operazioni dietro le quinte.
Dovrei:
-
crea uno strumento per aggiungere codice generato al codice sorgente esistente; o
-
estendere le classi utilizzando la generazione bytecode in fase di runtime?
Qual è stata la tua esperienza con entrambi questi approcci?