Automatyczne generowanie kodu

programistamag.pl 4 miesięcy temu

Jednym z największych przyjaciół każdego programisty jest automatyzacja. Komputery z natury rzeczy nie robią pomyłek i o ile tylko zostaną prawidłowo skonfigurowane, mogą wykonywać za nas powtarzalne zadania, oszczędzając nam pracy, ale też równolegle ograniczając prawdopodobieństwo powstania w czasie tego procesu niepożądanych błędów. Generowanie kodu źródłowego to jedno z takich zadań; warto przyjrzeć się bliżej temu rozwiązaniu, bo ma ono wszystkie zalety kopiowania kodu, ale jest pozbawione jego wad...

Zagadnienia poruszane w tym artykule:

  • Kopiowanie kodu
    • Dlaczego kopiuj-wklej zwykle kończy się problemami
    • Kiedy kopiowanie kodu bywa przydatne
    • Jak generowanie kodu rozwiązuje problemy duplikacji
    • Kiedy warto rozważyć generator kodu
  • Opcje
    • Generowanie kodu z szablonów
    • Generowanie kodu podczas kompilacji
  • T4
    • Szablony design-time i run-time
    • Pierwszy prosty szablon T4
    • Parametryzowanie szablonu
    • Jak T4 zamienia szablon na kod C#
    • Mono.TextTemplating jako alternatywa poza Visual Studio
  • Struktura szablonu
    • Dyrektywy T4
    • Bloki kontrolne
    • Składniki klasy szablonu
    • Zwykły tekst w szablonie
  • Generowanie kodu szablonami T4
    • Bezpieczeństwo uruchamiania zewnętrznych szablonów
    • Jeden plik XML jako źródło prawdy
    • Generowanie enumów w C# i TypeScript
    • Generowanie plików tłumaczeń
    • Automatyzacja generowania podczas builda
  • IIncrementalGenerator
    • Kiedy T4 przestaje być wygodne
    • Generowanie kodu na podstawie istniejącego kodu
    • Podpięcie generatora pod kompilator Roslyn
    • Wyszukiwanie klas modeli
    • Generowanie viewmodeli
    • Generowanie konwersji model ↔ viewmodel
    • Dobre praktyki przy generatorach kodu
  • Na koniec
    • Zalety automatycznego generowania kodu w praktyce
    • Koszt przygotowania generatora
    • Trudności z debugowaniem
    • Przykłady narzędzi korzystających z generowania kodu

Artykuł pochodzi z magazynu Programista nr 123 (2/2026). Szczegółowy spis treści wydania numer 123: https://programistamag.pl/programista-2-2026-123/

Autorem artykułu jest Wojciech Sura. Programuje 30 lat, z czego 15 komercyjnie; ma na koncie aplikacje desktopowe, webowe, mobilne i wbudowane – pisane w C#, C++, Javie, Delphi, PHP, JavaScript i w jeszcze kilku innych językach. w tej chwili pracuje w SII – największym w Polsce dostawcy usług doradztwa technologicznego, transformacji cyfrowej, Business Process Outsourcing i inżynierii.

Idź do oryginalnego materiału