O usłudze
PrzetłumaczoneJestem programistą F# i piszę usługi serwerowe w stylu funkcyjnym na platformie dotnet. F# dla mnie nie jest językiem pobocznym, który przypadkowo wybrałem, ale sposobem myślenia o programach. Zamiast stanu mutowalnego i defensywnych sprawdzeń rozproszonych w kodzie, modeluję domenę za pomocą niemutowalnych rekordów, unii dyskryminowanych i dopasowywania wzorców — więc całe klasy błędów po prostu nie mogą być wyrażone. Efektem jest kod, który jest krótki, czytelny i znacznie łatwiejszy do zrozumienia niż ekwiwalentne rozwiązanie obiektowe.
Moim celem jest dokładnie backend: web API, obsługa wiadomości i zdarzeń, pracownicy w tle oraz potoki danych, które je zasilają. Dla mnie ważne jest modelowanie domeny bezpiecznego typowo, zasada „niemożliwy stan jest niereprezentowalny” oraz współpraca z kompilatorem jako sojusznikiem, a nie przeszkodą. Staram się pisać czyste funkcje, przenosić efekty uboczne na granice systemu i pokrywać złożoną logikę testami modularnymi i opartymi na właściwościach, aby zachowanie pozostało przewidywalne w miarę rozwoju projektu. Gdy wydajność ma znaczenie, najpierw profiluję, a potem optymalizuję.
Ta prezentacja dotyczy szczególnie programowania funkcyjnego: jeśli potrzebujesz kogoś, kto najpierw sięga po F# i projektowanie funkcyjne, a nie ogólnego specjalisty w C#, Haskellu lub Scali, będziemy dobrze współpracować. Czuję się równie komfortowo dołączając do istniejącego rozwiązania dotnet, jak i rozpoczynając usługę z pustego folderu, pozostawiając twojemu zespołowi kod do utrzymania.
— Funkcjonalny backend i web API w F#
— Modelowanie domeny bezpiecznego typowo: rekordy, unie, dopasowywanie wzorców
— Potoki danych, ETL oraz przetwarzanie strumieni i zdarzeń
— Modularne i oparte na właściwościach testowanie poprawności
— Refaktoryzacja kodu imperatywnego w kierunku rdzenia funkcyjnego
Moim celem jest dokładnie backend: web API, obsługa wiadomości i zdarzeń, pracownicy w tle oraz potoki danych, które je zasilają. Dla mnie ważne jest modelowanie domeny bezpiecznego typowo, zasada „niemożliwy stan jest niereprezentowalny” oraz współpraca z kompilatorem jako sojusznikiem, a nie przeszkodą. Staram się pisać czyste funkcje, przenosić efekty uboczne na granice systemu i pokrywać złożoną logikę testami modularnymi i opartymi na właściwościach, aby zachowanie pozostało przewidywalne w miarę rozwoju projektu. Gdy wydajność ma znaczenie, najpierw profiluję, a potem optymalizuję.
Ta prezentacja dotyczy szczególnie programowania funkcyjnego: jeśli potrzebujesz kogoś, kto najpierw sięga po F# i projektowanie funkcyjne, a nie ogólnego specjalisty w C#, Haskellu lub Scali, będziemy dobrze współpracować. Czuję się równie komfortowo dołączając do istniejącego rozwiązania dotnet, jak i rozpoczynając usługę z pustego folderu, pozostawiając twojemu zespołowi kod do utrzymania.
— Funkcjonalny backend i web API w F#
— Modelowanie domeny bezpiecznego typowo: rekordy, unie, dopasowywanie wzorców
— Potoki danych, ETL oraz przetwarzanie strumieni i zdarzeń
— Modularne i oparte na właściwościach testowanie poprawności
— Refaktoryzacja kodu imperatywnego w kierunku rdzenia funkcyjnego