O usłudze
PrzetłumaczoneJestem inżynierem, który spędził lata na stosowaniu Nemerle — hybrydowego języka funkcyjno-obiektowego na platformie dotnet CLR — do zadań, w których zwykły C# generuje góry kodu szablonowego. Jeśli masz złożony problem, który trudno wyrazić zwięźle, system makr Nemerle prawie zawsze dostarcza odpowiedź, a ja wiem, jak go używać. Oto, co dokładnie robię. Po pierwsze, generowanie kodu w czasie kompilacji: moje makra rozwijają się w ściśle typowany kod przed uruchomieniem programu, więc nie płacisz za refleksję w czasie wykonywania i otrzymujesz pełne sprawdzanie typów. Po drugie, wbudowane DSL: projektuję małe języki, które są zgodne z Twoim obszarem problemowym, więc Twój zespół opisuje zasady w zrozumiałej składni, która kompiluje się bezpośrednio do bajtowego kodu CLR. Po trzecie, integracja z legacy dotnet: ponieważ Nemerle działa natywnie na CLR, łączę go z Twoimi zestawami C# lub F# bez bólu interop, owijając stare biblioteki w czyste funkcjonalne interfejsy. Łączę dopasowywanie wzorców, typy algebraiczne i struktury niemutowalne z zwykłymi klasami OOP tam, gdzie jest to bardziej odpowiednie, wybierając paradygmat dla każdego konkretnego modułu, zamiast narzucać jeden styl wszędzie. Typowe projekty: zastępowanie setek jednolitych mapperów DTO jednym generującym makrem, budowanie DSL walidacyjnego, który wychwytuje błędy w czasie kompilacji, lub stopniowa modernizacja splątanej monolitycznej aplikacji dotnet. Otrzymujesz udokumentowany kod źródłowy, zestaw testów jednostkowych, skrypty budujące i krótki przewodnik, aby Twoi deweloperzy mogli utrzymywać makra po przekazaniu. Piszę czytelny kod, wyjaśniam każdą technikę metaprogramowania i nigdy nie zostawiam czarnej skrzynki. Opowiedz mi o swojej bazie kodu i jej problemach — zaproponuję minimalną interwencję Nemerle, aby je wyeliminować.