A miała być Scala...

Tak, przystępując do udziału w Daj się poznać zamierzałem tworzyć coś zupełnie innego – platformę do zarządzania wydarzeniami, bazującą (koncepcyjnie) na Meetupie oraz (technologicznie) na Scali i frameworku Play. Jednak już pierwszego dnia trwania właściwego konkursu, po napisaniu trzeciego posta na blogu, uznałem, że muszę wszystko zmienić. Skąd taka niestabilność i nagła zmiana?

Jeśli jesteś pracującym na pełny etacie programistą to zapewne wiesz jak trudno czasem jest po ośmiu godzinach pisania kodu w pracy wrócić do domu i z entuzjazmem rzucić się do np. czterech kolejnych godzin pisania kodu. Oczywiście, są tu pewne fundamentalne różnice: twój kod jest twój i nikt ci nie każe używać narzędzi, których nie lubisz, itd. Jednak sama czynność jest z grubsza ta sama. I prędzej czy później będzie to problemem.

Oczywiście są pewne tricki, które przez lata wypracowałem, by oszukać nieco psychiczne blokady i mimo wszystko móc się zajmować w domu rzeczami bardziej kreatywnymi, niż granie w gry i oglądanie seriali. Przedstawiam kilka z nich poniżej, może akurat ci się przydadzą:

  • Znajdź sobie nową technologię. Nie musi to być koniecznie zupełnie inny język, ale coś co różni się znacząco od tego, co robisz w pracy. Przykładowo, całymi dniami pisałem aplikacje w Railsach. Część moich sideprojectów również jest w nich napisana i częstokroć nie byłem w stanie się do nich zmusić, ale już całkiem chętnie eksplorowałem możliwości innych frameworków, np. Hanami.
  • Wybierz zagadnienie, wymagające innego podejścia architektonicznego. Robisz zwykle statyczne aplikacje? Zamiast tego zbuduj coś na mikroserwisach. Albo użyj NoSQL-owej bazy danych, zamiast MySQL-a1. Możesz też użyć EvenSourcingu, zamiast standardowego podejścia, przechowującego wyłącznie bieżący stan.
  • Zrób coś w tematyce, która cię interesuje. Nawet najbardziej nudna aplikacja typu CRUD może stać się znacznie ciekawsza, jeśli tworzysz ją wokół tematyki, która jest twoją pasją? Zbierasz kapsle po piwie? To zrób stronę o piwie lub galerię tych kapsli. Udzielasz się w wolontariacie? Stwórz im stronę z CMS-em. Za każdym razem łatwiej będzie znaleźć ci pokłady silnej woli, żeby choćby kawałek ruszyć w wybranym temacie.

Dlaczego upadł mój projekt w Scali? Wprawdzie miałem używać nowej technologii (Scala) i nowego podejścia architektonicznego (EventSourcing/DDD), ale... Scala zaczęła być wprowadzana jako drugi obowiązkowy język w mojej pracy (miałem już dwa odcinki szkolenia z niej), DDD było bardzo eksperymentalną opcją, a przede wszystkim samo organizowanie spotkań nie należy do moich zainteresowań. Krótko mówiąc, była zbyt duża szansa, że znudzę się projektem jeszcze zanim go na dobre rozpocznę. Stąd zmiana.

Nie napisałem w sumie jeszcze na co zmieniam. Otóż zamierzam napisać system do live bloggingu w Elixirze/Phoeniksie. Nie jest to może super innowacyjne zagadnienie, ale już od jakiegoś czasu chodzi mi po głowie, a co najważniejsze - widzę realną możliwość wykorzystania go później. O szczegółach technicznych i dokonanych wyborach napiszę nieco później.

Sláinte! (w końcu weekend u progu)


  1. Bazy NoSQL są bardzo często złym wyborem, ale prawdę mówiąc ciężko kogoś do tego przekonać słowami, znacznie lepiej kiedy sam sobie to na jakimś niekrytycznym sprawdzi.