Programowanie

Elixir – pierwszy gryz, oraz plany, plany, plany…

Od 2 miesięcy pracuję w nowej firmie i już widzę pozytywne rezultaty – och jak mi się chce! No i te nie pozytywne – och jak nie mam czasu!

Ponieważ dziś całkiem zalało piękne miasto – Łódź, a ja walczyłem z kałużami po kolana by dostać się do mojego pojazdu. A samochodzik – sportowy bardzo (przynajmniej z wyglądu) – stał zanurzony po połowę zderzaka w kałuży. Całkiem przemokłem, od stóp do głów, mimo parasola. Trochę zmarznięty wylądowałem w łóżku. O! okazało się, ż mam godzinkę może 2 dla siebie 🙂

Odpaliłem kompa i wpisałem:

Czym elixir jest? Elixir jest językiem funkcyjnym postawionym na maszynie wirtualnej Erlanga. Tak – tego Erlanga. Dodatkowo jest to język wyglądający składniowo jak Ruby, co jest moim zdaniem jego zaletą! Ostatnio w pracy walczę z Ruby i Railsami, podoba mi się to, więc cieszę się, że podobną zabawę będę mógł mieć totalnie funkcyjnie.

Czym Elixir nie jest? Na pewno nie jest znanym, lubianym i szeroko wykorzystywanym językiem wszędzie gdzie się obrócisz. Dla mnie to trochę jak pole minowe, ale po 10 latach uczenia się przydatnych rzeczy – czas się trochę zabawić 🙂

Podobnie jak Ruby środowisko ma w sobie od razu zawarte narzedzia do pisania i uruchamiania testów jednostkowych. Nie obyło się przy tym bez narzędzia wykonującego zadania – w elixirze zamiast rake mamy krótszy -> mix 🙂 Oczywiście wisienką na torcie jest interaktywna konsola w której można programować, czyli odpowiednik irb -> tu iex.

Ale po co mnie to?

Po połowie roku, który podsumowałem nadarzyły mi się nowe możliwości i okazje. Mam nadzieję, że czas na to pozwoli i w grudniu, tuż przed świętami podsumuję się drugi raz 🙂 I będzie to lepsze podsumowanie, bo bez żadnych wpadek 🙂 W elixirze natomiast planuję stworzyć na razie micro tajny projekt nr 2. Dla tych, którzy czekali na moje DDD, przepraszam za zwłokę, ale niestety w życiu się podziało. Ale do projektu też zamierzam wrócić (wierzyciele by mi nie darowali!). Więc to czego można się na moim blogu spodziewać: elixir, F#, porównania, działania, a wszystko jak Bóg pozwoli w DDD, BDD i TDD. Oczywiście będzie się to działo odpowiednio wolno, ponieważ sporo mam pracy w pracy.

A skoro programowanie webowe w elixirze, to i framework takowy być powinien. No i oczywiście jest! Więc bez zbędnych ceregieli:

W powyższych komendach mix ściąga pliki zip i instaluje w sobie tylko znanych miejscach. Powyższe dwie komendy instalują Hexa – manager pakietów dla Phoenix, oraz nic innego jak framework Phoenix właśnie.

Aby dokończyć dzieła i zobaczyć na ekranie przykładową aplikację webową wystarczy:

W pierwszej linijce tworzymy przykładową aplikację. W drugiej przeskakujemy do katalogu, w którym ta aplikacja się utworzyła. A w trzeciej tworzymy odpowiednią bazę danych do tej aplikacji.

Teraz tylko uruchomienie serwera:

I na localhost:4000 możemy zobaczyć:

Phoenix - przykładowa aplikacja

8 thoughts on “Elixir – pierwszy gryz, oraz plany, plany, plany…”

  1. Pingback: dotnetomaniak.pl
  2. Programy funkcyjne mają masę ciekawych rozwiązań, chociaż ich poznanie jest często żmudną pracą (przynajmniej ja odnoszę takie wrażenie), także powodzenia 😉 Fajnie jakby było trochę o jakiś wzorcach czy wzorcowych rozwiązaniach ciekawych przypadków w kolejnych częściach, zapowiada się ciekawie 😉

    1. Ha! Mam nadzieję, że i to się pojawi. Pewnie na początku będzie to słabe i obdarzone błędami świeżości (czyli pisanie w języku funkcyjnym nie funkcyjnie). Żmudność jest zawsze, ważne by przy tym była frajda.
      Obecnie w pracy musiałem wrócić do C#, więc pewnie powstanie coś o BDD (mspec jest super), bo maksymalnie w to się wdrożyłem. Zapewne też napiszę o kilku rozwiązaniach do sprawdzania pokrycia kodu testami. Zobaczymy co z tego wyjdzie 🙂
      Ponieważ w pracy mam RoR + C#, a w domu F# + Elixir… Mam nadzieję, że będzie fajnie i jakieś wartościowe treści z tego wyjadą 🙂 Tylko teraz czas… Biegnę szybko kosić by wieczorem móc coś zrobić 🙂 Dzięki za komentarz.

  3. Od kilku tygodni śledzę Twojego bloga, i fajnie, iż zainteresowałeś się Elixir-em. Ja rok temu zrobiłem do niego podejście, i w porównaniu z F# (które używam jako swój drugi język po C#), to ma wiele wspólnego odnośnie samej koncepcji architektury. Oczywiście składnia jest różna. Czy podobna do Rails ? Powiem tak, zapożyczona. Jednak na uwadze trzeba mieć, iż Elixir opiera się na maszynie wirtualnej BEAM, tej samej co Erlang. Jest ona super skalowana, ale tutaj może dziwić, iż wolniejsza od .NET/ Mono, zwłaszcza w operacjach wykonywanych w ramach jednego wątku.. Sam serwer Phoenix, super sprawa, do tego Ecto, Mix, etc. Polecam książkę “Elixir in Action”, blog http://blog.plataformatec.com.br/tag/elixir/ oraz kurs Rob–a Connery. Imho, będę śledzić kolejne wpisy 🙂

    1. Dzięki za komentarz. No jak tylko znajdę chwilkę (daj Boże dzisiaj) to pokombinuję. Jakoś niedługo powinienem mieć dostęp do Safari Books to chętnie przeczytam. W ogóle cykl “in Action” sobie cenię na równi z “Head First…”.

  4. Od niedawna dzięki akcji “Daj się poznać” wpadłem na Twojego bloga. Nadrabiam stare posty, i muszę powiedzieć, iż pracując w aktualnie firmie mam jak Ty. Zamiast tworzyć stub aplikacji to głównie spędzam czas na łataniu dziur w organizacji. Tak to jest. No i co roku próbuję zmienić pracę… ale jak ma się rodzinę, to nie chce ryzykować się.. Ogólnie, to może kwestia imienia, ale chyba czasami robi się zbyt wiele. Odnośnie samego Elixira, to piszę w nim od pewnego czasu, ogólnie próbując przejść na język funkcjonalny.

    1. Cześć, dzięki za komentarz.
      Co do zmiany pracy, strachu o rodzinę etc. Jak do tej pory każda zmiana pracy, którą ja wykonałem (raz zamknięto projekt w którym pracowałem i wyleciałem na bruk) wiązała się ze wzrostem wynagrodzenia. Czasami o 100%. Za każdym razem nie miałem problemu, po zmianie jakoś to szło i nigdy nie widziałem też narzekającego programisty. Z drugiej strony – warto bardzo dokładnie przyjrzeć się firmie, do której startujesz. Można wpaść z deszczu pod rynnę… Nawet jeśli poz mianie będzie źle, to jeśli nie spaliłeś mostu, możesz wrócić. Zawsze też inni Cię przyjmą. Większość firm ma nabór non stop.
      Ja teraz jestem devops -> robię różne rzeczy. Na pewno niedługo napiszę co i jak, ale w tej chwili jestem bardzo zadowolony. Polecam zmianę jeśli Ci niewygodnie tam gdzie jesteś. Co prawda praca w Elixir wygląda na ciężką do znalezienia, ale Ruby bez problemu. A i pewnie tam trafią się projekty w Elixirze.
      Jeśli będziesz zaglądał na mojego bloga, to komentuj proszę moje niewprawności w Elixirze – dzięki!

  5. Cześć,

    Dzięki za odpowiedź. Świetnie, iż tak dobrze ułożyło się Tobie. Wiem, że Elixir jest bliski ludziom z Ruby. Mnie zainteresował w zeszłym roku jak byłem na Programistoku w Białymstoku. Fakt, nic wielkiego nie zrobiłem, kilka małych portali. Zaś o pracę w Elixir czy Golang to w moim mieście mega trudno. A jak jest w Łodzi ? Co do bloga – zaskrybowany ?

Leave a Reply

Your email address will not be published. Required fields are marked *