Codegenerierung: Durchbrechen der Entwicklungsroutine
Ein Artikel von einem DevOps-Ingenieur beim IT-Holding T1 erklärt, wie Codegenerierung in verschiedenen Phasen des Entwicklungslebenszyklus implementiert wird, von einfachen Snippets bis zur Laufzeitgenerierung. Der Autor behandelt die Verwendung von Verkettung, Templating mit Jinja2 und Syntaxbäumen (AST und CST) zur Änderung vorhandenen Codes und diskutiert die Zukunft mit LLMs und dem Model Context Protocol (MCP). Praktische Ratschläge werden gegeben, beginnend mit Codeformatierern und der Verwendung von Tools wie OpenAPI-Generator und Cookiecutter.
Der Artikel, verfasst von Ivan, einem DevOps-Ingenieur bei der IT-Holding T1, betont, dass die Codegenerierung unerlässlich ist, um sicherzustellen, dass der Code einem bestimmten Schema wie OpenAPI entspricht und so Abweichungen zwischen Schema und Implementierung verhindert werden. Der Autor skizziert Automatisierungsstufen: IDE-Snippets, Generierung zur Entwicklungszeit, Generierung für gemeinsame Module (API-Clients, Nachrichtenschemas), Generierung zur Build-Zeit (Einbettung von Backend-URLs, Lizenzschlüsseln), Generierung zur Bereitstellungszeit und Generierung zur Laufzeit (verwendet in No-Code-/Low-Code-Umgebungen, z. B. PyTest). Methoden zur Erstellung von Generatoren werden detailliert beschrieben: einfache Verkettung von Zeichenketten, Templating mit Jinja2 für Mehrsprachigkeit und die Verwendung von abstrakten Syntaxbäumen (Abstract Syntax Trees, AST) in Python zum Refactoring vorhandenen Codes, wobei AST Kommentare und Formatierung verliert. Konkrete Syntaxbäume (Concrete Syntax Trees, CST) über libcst erhalten Kommentare und Stil und ermöglichen ein sicheres Refactoring. Der Artikel erörtert auch das Potenzial großer Sprachmodelle (Large Language Models, LLMs) und des Model Context Protocol (MCP) zur Reduzierung von Halluzinationen, indem Modelle Werkzeuge zur Interaktion mit der Codebasis erhalten, wobei Agenten wie "oh my pi" genannt werden. Praktische Ratschläge umfassen den Beginn mit einem Code-Formatter, die Verwendung von OpenAPI-Generator für Dienstverträge und Cookiecutter für Mikroservice-Vorlagen, und schlussfolgert, dass Codegenerierung skalierbar ist und Codebasen bereinigt, aber eine geeignete Werkzeugauswahl erfordert.
Quelle: Habr — хаб ИИ —
Original
