O usłudze
PrzetłumaczoneJestem inżynierem programowania funkcyjnego i codziennie pracuję w Koka — języku badawczym opartym na efektach algebraicznych i typach efektów opartych na wierszach. Jeśli potrzebujesz prototypu, biblioteki lub narzędzia blisko kompilatora, gdzie każdy efekt uboczny jest śledzony w sygnaturze typu, a nie ukryty w czasie wykonywania, pomogę. Moja typowa praca wygląda tak: opisuję twoją dziedzinę za pomocą małego zestawu operacji efektowych, piszę obsługiwacze, które nadają tym operacjom konkretne znaczenie, i pozwalam, aby kontroler typów Koka udowodnił, że żaden nieobsłużony efekt nie ucieka. Dzięki temu ta sama logika działa na prawdziwej bazie danych, stubie lub deterministycznym odtwarzaniu do testów — wystarczy zamienić obsługiwacz. Użyłem tej techniki do budowy parserów, automatów skończonych, asynchronicznych potoków i interpreterów dla małych języków dziedzinowych. Po stronie kompilatora pewnie czytam, jak Koka rozwija efekty w stylu przekazywania dowodów, rozważam, jak typowa kompilacja obniża obsługiwacze, i diagnozuję, dlaczego wiersz efektów nie unifikuje się tak, jak się spodziewałeś. W rezultacie otrzymujesz czysty skomentowany kod źródłowy Koka, krótką notatkę projektową uzasadniającą wybrane sygnatury efektów oraz zestaw testów sprawdzających każdy obsługiwacz w izolacji. Złożone miejsca opisuję osobno, aby twój zespół mógł utrzymać kod po mnie. Jeśli widzisz obsługiwacze efektów jako zamiennik dla transformatorów monad lub spaghetti callbacków — wyślij mi zadanie, a zaproponuję konkretny projekt efektu, zanim zaczniemy.