O usłudze
PrzetłumaczoneJestem programistą Haskell i piszę usługi serwerowe, które są poprawne z konstrukcji, a nie przez przypadek. Moje podejście opiera się na największych mocnych stronach języka: potężnym systemie typów statycznych, czystości funkcji i wyraźnych efektach. Kiedy modeluję twoją domenę za pomocą algebraicznych typów danych i pozwalam kompilatorowi odrzucać nieprawidłowe stany, całe kategorie błędów w czasie wykonywania po prostu przestają istnieć. To nie jest akademicki idealizm, ale praktyczny sposób na dostarczanie oprogramowania, które w piątek wieczorem zachowuje się tak samo, jak w testach, i które nowy członek zespołu może pewnie refaktoryzować, ponieważ typy trzymają ich w granicach.
Na przestrzeni lat zbudowałem API HTTP, pracowników w tle, potoki przetwarzania danych i narzędzia wiersza poleceń w Haskellu. Czuję się pewnie z rdzeniem ekosystemu: Servant i Yesod do webu, STM i async do współbieżności, persistent i hasql do baz danych oraz znane narzędzia GHC, Cabal i Stack. Dbam również o wydajność: profiluję za pomocą narzędzi GHC, świadomie myślę o leniwym i ścisłym typowaniu, wiem, kiedy sięgnąć po ścisłe typy danych, rozpakowane wektory lub biblioteki strumieniowe, aby utrzymać pamięć płaską i wysoką przepustowość. Testowanie właściwości za pomocą QuickCheck jest dla mnie narzędziem projektowym, a nie formalnością.
Otrzymujesz ode mnie bazę kodu, która jest rzeczywiście aktywem: małe funkcje kompozycyjne, wyraźne granice modułów i dokumentację, którą zespół może utrzymywać. Czuję się równie komfortowo, tworząc nową usługę z pustego repozytorium do produkcji, jak i dołączając do istniejącego projektu Haskell, aby naprawić błędy, okiełznać dług technologiczny, przyspieszyć kod i przybliżyć zespół do idiomatycznych wzorców funkcjonalnych. Jeśli poprawne oprogramowanie, które jest bezpieczne do zmiany, ma dla Ciebie znaczenie, pomogę.
— Backend HTTP API z Servant i Yesod
— Modelowanie domeny za pomocą typów algebraicznych i klas typów
— Współbieżność za pomocą STM, async i wątków
— Dostęp do bazy danych za pomocą persistent, hasql i PostgreSQL
— Testowanie właściwości z QuickCheck i Hspec
— Profilowanie, analiza ścisłości i optymalizacja
— Budowanie z GHC, Cabal, Stack i Nix
Na przestrzeni lat zbudowałem API HTTP, pracowników w tle, potoki przetwarzania danych i narzędzia wiersza poleceń w Haskellu. Czuję się pewnie z rdzeniem ekosystemu: Servant i Yesod do webu, STM i async do współbieżności, persistent i hasql do baz danych oraz znane narzędzia GHC, Cabal i Stack. Dbam również o wydajność: profiluję za pomocą narzędzi GHC, świadomie myślę o leniwym i ścisłym typowaniu, wiem, kiedy sięgnąć po ścisłe typy danych, rozpakowane wektory lub biblioteki strumieniowe, aby utrzymać pamięć płaską i wysoką przepustowość. Testowanie właściwości za pomocą QuickCheck jest dla mnie narzędziem projektowym, a nie formalnością.
Otrzymujesz ode mnie bazę kodu, która jest rzeczywiście aktywem: małe funkcje kompozycyjne, wyraźne granice modułów i dokumentację, którą zespół może utrzymywać. Czuję się równie komfortowo, tworząc nową usługę z pustego repozytorium do produkcji, jak i dołączając do istniejącego projektu Haskell, aby naprawić błędy, okiełznać dług technologiczny, przyspieszyć kod i przybliżyć zespół do idiomatycznych wzorców funkcjonalnych. Jeśli poprawne oprogramowanie, które jest bezpieczne do zmiany, ma dla Ciebie znaczenie, pomogę.
— Backend HTTP API z Servant i Yesod
— Modelowanie domeny za pomocą typów algebraicznych i klas typów
— Współbieżność za pomocą STM, async i wątków
— Dostęp do bazy danych za pomocą persistent, hasql i PostgreSQL
— Testowanie właściwości z QuickCheck i Hspec
— Profilowanie, analiza ścisłości i optymalizacja
— Budowanie z GHC, Cabal, Stack i Nix