O usłudze
PrzetłumaczoneJestem programistą backendowym i piszę w Scala, a programowanie funkcyjne to dla mnie sposób myślenia o problemie, a nie technika, po którą sięgam od czasu do czasu. Projektuję usługi wokół niemutowalnych danych, czystych funkcji i typowanych efektów, dzięki czemu zachowanie pozostaje przewidywalne, a kompilator wychwytuje całe klasy błędów, zanim dotrą do produkcji. Jeśli już masz stos JVM i potrzebujesz gwarancji poprawności i współbieżności, które zapewnia Scala, lub zaczynasz od zera i chcesz fundamentu, który skaluje się, a nie zamienia w bałagan, zajmę się pracą od architektury do usługi działającej niezawodnie w boju.
Większość czasu buduję API REST i gRPC, systemy zdarzeń oraz potoki przetwarzania danych. Buduję współbieżne i rozproszone backendy na aktorach Akka i Akka Streams, modeluję długoterminowe procesy, które przetrwają restarty, i łączę wszystko z Kafka, PostgreSQL, Cassandra lub Spark w zależności od charakteru danych. Myślę o przeciążeniu i co się dzieje, gdy zależność staje się wolna lub znika, więc moje systemy degradują się w sposób elegancki, zamiast się zawieszać. Zadania wsadowe i strumieniowe na dużych danych są rutyną: migracja, czyszczenie i agregacja dużych wolumenów bez utraty rekordów i bez wyczerpywania pamięci.
Pozwól, że wyjaśnię zakres: to jest Scala i podejście funkcyjne, a nie zwykły Java, Kotlin lub Go przepisane w składni Scala. Piszę idiomatyczny kod z Cats, ZIO lub Akka, testuję za pomocą ScalaCheck i podejścia opartego na właściwościach i dostarczam kod, który twój zespół może czytać i rozwijać. Powiedz mi o potrzebnym przepustowości i ograniczeniach — zasugeruję podejście i realistyczny harmonogram.
— Funkcjonalne usługi backendowe w Scala (Cats, ZIO)
— Aktorzy Akka i Akka Streams dla współbieżnych systemów rozproszonych
— API REST i gRPC z typowanymi testowalnymi domenami
— Potoki big-data i ETL na Spark i Kafka
— PostgreSQL, Cassandra i przechowywanie oparte na zdarzeniach
— Testowanie oparte na właściwościach i konfiguracja CI JVM
Większość czasu buduję API REST i gRPC, systemy zdarzeń oraz potoki przetwarzania danych. Buduję współbieżne i rozproszone backendy na aktorach Akka i Akka Streams, modeluję długoterminowe procesy, które przetrwają restarty, i łączę wszystko z Kafka, PostgreSQL, Cassandra lub Spark w zależności od charakteru danych. Myślę o przeciążeniu i co się dzieje, gdy zależność staje się wolna lub znika, więc moje systemy degradują się w sposób elegancki, zamiast się zawieszać. Zadania wsadowe i strumieniowe na dużych danych są rutyną: migracja, czyszczenie i agregacja dużych wolumenów bez utraty rekordów i bez wyczerpywania pamięci.
Pozwól, że wyjaśnię zakres: to jest Scala i podejście funkcyjne, a nie zwykły Java, Kotlin lub Go przepisane w składni Scala. Piszę idiomatyczny kod z Cats, ZIO lub Akka, testuję za pomocą ScalaCheck i podejścia opartego na właściwościach i dostarczam kod, który twój zespół może czytać i rozwijać. Powiedz mi o potrzebnym przepustowości i ograniczeniach — zasugeruję podejście i realistyczny harmonogram.
— Funkcjonalne usługi backendowe w Scala (Cats, ZIO)
— Aktorzy Akka i Akka Streams dla współbieżnych systemów rozproszonych
— API REST i gRPC z typowanymi testowalnymi domenami
— Potoki big-data i ETL na Spark i Kafka
— PostgreSQL, Cassandra i przechowywanie oparte na zdarzeniach
— Testowanie oparte na właściwościach i konfiguracja CI JVM