Menu

Trochę o technologii

27 lutego 2020 - Development
Trochę o technologii

Dlaczego Javascript?

Dla wielu doświadczonych programistów Javascript jawi się jako jakaś hydra, której opanowanie wydaje się bezcelowe. Jest on traktowany jako język pomocniczy do tworzonych interfejsów użytkownika (UI), i mimo iż na rynku pojawiły się tak dojrzałe Javascriptowe rozwiązania jak NodeJS czy React|Angular|Vue to nadal pojawiają się głosy, że to się nie nadaje do niczego więcej jak animacje oferowane przez jQuery.

Jednak przez ostatnie lata, na przekór wszystkim to właśnie Javascript przyjął na siebie ciężar innowacyjności. Zmiana podejścia do tworzonych UI, do obsługi i zarządzania ich stanem sprawił, że obecnie najłatwiej, najprościej i najbezpieczniej budować frontendowe aplikacje w jednym z frameworków (np. Angular) czy jednej z bibliotek (np. React). Dlatego też w Hexah postawiliśmy na dzieło Facebooka czyli ReactJS. Biblioteka ta pozwala tworzyć interfejsy użytkownika w przejrzysty sposób, dzięki czemu powstaje łatwa do opanowania i utrzymania struktura. Sam React nie jest frameworkiem i sam z siebie nie dostarcza ani nie narzuca jednego określonego podejścia w rozwiązywaniu określonych problemów (np. w kwestii zarządzania stanem aplikacji czy routingu), nie dodaje też poza samym cyklem życia komponentu żadnego dodatkowego systemu znaczników, którego trzeba się nauczyć poza samym Javascriptem. Jest to więc rozwiązanie, które zadowoli głównie programistów, którzy znają już Javascript, takich jak my 🙂

Oprócz samego Reacta, używamy także zestawu komponentów stworzonych w duchu Material Designu czyli Material UI. Dzięki temu nie musimy wymyślać koła na nowo i możemy skupić się na implementacji naszych autorskich mechanik zaś kwestię zachowania i wyglądu podstawowych elementów interfejsu użytkownika pozostawić w rękach sprawdzonych wzorców.

Ok, ale skoro już na froncie mamy JS to dlaczego nie pójść o krok dalej i nie zafundować go sobie na backendzie? W naszym projekcie stawiamy na intensywne wykorzystanie websocketów, aby zapewnić dwukierunkową komunikację aplikacji z backendem. Do tego celu wybraliśmy bibliotekę socket.io, która na tę chwilę wydaje się stabilnym wyborem. Wykorzystuje ona NodeJS, dlatego stał się on naszą backendową podstawą.

Dzięki takiemu podejściu tak na froncie jak i backendzie wykorzystujemy Javascript co zmniejsza nasze zapotrzebowanie na programistów posługujących się innymi technologiami. Dość sprawnie możemy także przeskakiwać między frontem a backendem bez konieczności poznawania innych języków programowania. Daje to dużą swobodę.

Najbardziej klasycznie w tym zestawieniu wypada nasza baza danych, którą jest MySQL. Do jej obsługi po stronie Node wykorzystujemy bibliotekę Knex. Dlaczego nie MongoDB? W naszym projekcie relacyjność ma duże znaczenie, ze względu na sporą liczbę powiązanych ze sobą obiektów. Mongo w tym przypadku stanowiłby bardziej przeszkodę niż pomoc.
Aktualizacja: Po przemyśleniu naszych założeń zmieniliśmy silnik bazy danych na PostgreSQL. Posiada ona kilka wbudowanych mechanizmów, które w MySQL trzeba by było sztukować.

Plany na przyszłość

Obecnie staramy się opracowywać i rozwijać kolejne funkcjonalności platformy. Jednocześnie poszukujemy też osób, które chciałyby nas wesprzeć pod tym względem. Poszukujemy nie tylko osób, które potrafią programować w Javascripcie ale też osób związanych z tworzeniem UI/UX oraz mechanik różnego typu. Hexah to duży projekt i chętnie podzielimy się naszą wiedzą, doświadczeniem w kwestii projektowania jak i programowania z każdym kto chciałby nam pomóc.

Kontakt do nas znajdziecie na stronie kontaktowej, zapraszamy tez na nasz serwer Discorda. Poszukujemy wszelkich możliwości tak współpracy jak i rozwoju dlatego każdy jest mile widziany w naszych skromnych progach.