Elixir na BEAM: współbieżność bez nerwów
Wokół Elixira kręci się jedno ważne założenie: aplikacja ma działać stabilnie, nawet gdy coś pójdzie nie tak. To podejście widać w tematach takich jak lekkie procesy, komunikacja między nimi i mechanizmy OTP, które bardziej przypominają dobrze zorganizowaną ,,opiekę" nad systemem niż pojedynczy skrypt odpalany raz na jakiś czas. W praktyce przydaje się to choćby w systemach obsługi kolejek, przetwarzaniu zdarzeń czy backendach pod aplikacje webowe, gdzie równoległość jest codziennością, a nie dodatkiem.
Dobrym wejściem w ten świat bywa książka Elixir and Phoenix for Beginners Karthikeyana Paramasivana, bo łączy fundamenty programowania funkcyjnego z konkretem: procesami BEAM, testami i przygotowaniem aplikacji do uruchomienia w bardziej ,,produkcyjnych" warunkach. Wydaje się, że to jest właśnie moment, w którym Elixir przestaje być ciekawostką, a zaczyna być narzędziem do normalnej pracy.
Phoenix, Ecto i warstwa webowa w praktyce
Jeśli interesuje Cię web, to w Elixirze naturalnie pojawia się Phoenix, a za nim tematy routerów, kontrolerów, komponentów UI czy komunikacji z bazą przez Ecto. To nie są zagadnienia ,,obok języka" - one szybko stają się jego codziennym zastosowaniem, gdy budujesz API, panel administracyjny albo serwis z intensywnym ruchem. Przy okazji można się zastanawiać, jak to wszystko działa pod spodem... i wtedy zaczyna wciągać metaprogramowanie.
Właśnie tę warstwę ,,od kuchni" dobrze pokazuje Build Your Own Web Framework in Elixir. Develop lightning-fast web applications using Phoenix and metaprogramming Adityi Iyengara: od budowy serwera i routingu po DSL-e oraz testowanie elementów aplikacji. To przydatne, gdy chcesz świadomie dobierać rozwiązania w Phoenixie, a nie tylko ,,sklejać" kolejne endpointy.
Ścieżki rozwoju: od zmiany języka po systemy odporne na awarie
Kategoria Elixir często trafia do osób, które przychodzą z Node.js, PHP albo Pythona i szukają innego modelu pracy z równoległością oraz stabilnością usług. Są też tacy, którzy po prostu chcą poukładać styl funkcyjny i zobaczyć, jak wygląda refaktoryzacja w stronę FP, zanim wejdą głębiej w OTP czy architekturę usług. W takim ,,miękkim" starcie pomaga Elixir. Aby programowanie znów było przyjemnością (ebook) Dave'a Thomasa, gdzie nacisk jest na wzorce, funkcje i przejście na myślenie funkcyjne bez zbędnego zadęcia.
Jeśli chcesz poszerzyć perspektywę o bardziej matematyczne podejście do FP, w księgarni czeka też podkategoria poświęcona Haskellowi .