Plan na mój stos technologiczny

Chyba każdy, kto ma jakikolwiek kontakt z javascript wie jak dynamiczny jest ekosystem zgromadzony wokół tego języka. Codziennie wychodzi nowy frameworka, mnóstwo bibliotek, dobre praktyki też cały czas ewoluują i bardzo ciężko być z tym wszystkim na bieżąco. Zawsze chcę nauczyć się czegoś nowego, przyjrzeć się innemu frameworkowi i napisać probjekt z użyciem czegoś nowego. Problemem jest ilość nowości, którymi jesteśmy bomboradowani. Jakiś czas temu postanowiłem się zdecydować, w którym kierunku zamierzam iść i ustaliłem sobie swój stos technologiczny, którego chcę dogłebnie poznać.

Ustalenie swojego stosu wcale nie ogranicza mnie od nowych rzeczy. Nastał taki moment, w którym chcę znać parę podstawowych narzędzi bardzo dobrze i mieć dobrą bazę do pisania nowoczesnych aplikacji webowych. Oczywiście staram się na bieżąco obserwować co nowego wychodzi, czego inni zaczynają używać, ale już nie mam zamiaru zaraz skakać na coś nowego, tylko z powodu tego, że to jest nowe. Jeśli coś przynosi sporą wartość, jest stabilne i sprawdzone, wtedy można zagłebić się bardziej w temat i szukać zastosowania w swojej pracy.

Pierwszą dużą rzeczą na którą się zdecydowałem jest React, o którym już trochę pisałem. Wprowadził on trochę zamieszania w środowisku i upowszechnił nowy sposób tworzenia aplikacji, bardzo modularnych napisanych w prosty sposób z użyciem najnowszych możliwości języka Javascript. Kolejnymi plusami jest upowszechnienie Reacta na innych platformach np. React Native, co może w przyszłości mi bardzo pomóc, jeśli będę musiał stworzyć aplikację mobilną. Widząc aktualny stan tej biblioteki i jaki ekosystem narzędzi został zbudowany wokół niej przyszłość Reacta widzę, bardzo stabilną i nie sądzę, żeby w ciągu 5 latach znikł on z rynku.

Kolejny element układanki to narzędzia budujące. Tu wybrałem i od jakiegoś czasu uczę się Webpacka, wspartego skryptami npm i Gulpem. Webpack ostanio bardzo dojrzał, wydana została wersja druga. Jest aktualnie chyba najpopularniejszym narzędziem do bundlowania JS i podobnie jak w przypadku Reacta ekosystem jest mocno rozwijany wokół tego. Dodatkowo do prostych zadań, czy procesowania plików zostają skrypty i Gulp, którego całkiem dobrze już poznałem do tej pory i jeśli jest z czymś problem w Webpacku, to zawsze mogę wspomóc się sprawdzonym Gulpem.

Kolejnym elementem do układanki jest SASS i preprocessor PostCSS. Te narzędzia już weszły jakiś czas temu do mojego arsenału i udowodniły swoją wartość. Pisanie styli z ich pomocą, zgodnie z dobrą architekturą jest bardzo proste i szybkie. Chodź na horyzoncie jest sporo rozwiązań do styli w komponencie React np. styled-jsx, narazie stare, dobre rozwiązanie prowadzi. Jednak w niektórych projektach może wykorzystm nowe podejście do styli.

Do tych elementów dorzucam parę elementów backendowych z Node.js na czele. Mam zamiar skupić się trochę bardziej na stronie serwerowej i wyrobić trochę praktyki w tworzeniu API, innych zadań do przetwarzania danych i obsługi baz danych. Do tego dochodzi świetny framework do tworzenia API - Express.js. Na takim stosie chcę oprzeć swoje umiejętności w zakresie serwerowym.

Z serwerami od jakiegoś czasu pomaga mi juz Docker i docker-compose, które bardzo ułatwiają mi przenoszenie aplikacji między urządzeniami, serwerami. Mam dalej zamiar szukać najlepszego podejścia do kontenerów i być może wspomoże mnie w tym jeszcze Rancher. Ale z Rancherem nie miałem jeszcze tak dużego kontaktu i wymaga jeszcze sprawdzenia, ale wygląda obiecująco.

W części serwerowej nie można zapomnieć o jeszcze jednym ważnym aspekcie - bazy danych. Tutaj chciałbym wgłebić się w MongoDB, Redis i 2 bazy relacyjne MySQL i PostgreSQL. Taka urozmaicona wiedza może się bardzo przydać dla różnych rodzajów projektów. Dla niektórych lepiej nadaje się baza NoSQL, dla drugich baza relacyjna i tutaj chcę wybierać odpowiednie narzędzia do pracy, a nie tylko to co znam. Z czasem może dojdzie jeszcze ElasticSearch do wyszukiwarek, ale to już bardzo dalekie plany.

Na koniec zostawiam sobie narzędzia do testów. Tutaj jeszcze muszę wybrać, czy lepiej korzystać z popularnego zestawu Mocha+Karma, czy już zająć się nowym dzieckiem na podwórku - Jest. Jako, że zaczynam jeszcze zabawę z testami, muszę trochę popracować i z jednym, i z drugim i sprawdzić, co bardziej pomaga mi w pracy i jest prostsze w użyciu.

A wszystko chcę dalej pisać w Visual Studio Code, którego używam już od ponad roku i spełnia wszystkie moje oczekiwania. Co jakiś czas odkrywam kolejny smaczek, nowy skrót klawiszowy i praca z nim staje się jeszcze szybsza i przyjemniejsza.

Taki oto stos technologiczny wybrałem na swój początek kariery i zobaczę, jak wypadnie mój plan po 3 latach, bo w takim czasie chciałbym poznać te wszystkie narzędzia dogłębnie i zrobić kilka aplikacji z ich wykorzystaniem. 3 lata wydają się bardzo odległe, ale i narzędzi jest trochę do poznania, więc każdego dnia będę miał okazję nauczyć się czegoś nowego i dużo pracy przede mną. Pewnie w czasie tej drogi niektóre narzędzia stracą na znaczeniu, a inne wejdą na ich miejsce, ale liczę, że taki stos nie wyjdzie szybciej z użytku, niż go poznam dogłębnie.

Opublikowano: 11.04.2017