Przegląd i Konfiguracje narzędzi
3 godz. 49 min · JavaScript · Full-stack i Programowanie
Adam GospodarczykAktualnie trudno wyobrazić sobie pracę w ekosystemie JavaScriptu bez terminala. W pierwszym rozdziale kursu nie tylko dowiesz się o dostępnych na rynku narzędziach oraz rozszerzeniach ale także o sposobach ich konfiguracji, uwzględniających przykłady z codziennej pracy, w tym wykorzystanie GPT-3 do łatwiejszej obsługi terminala.
Dla osób, które programują, IDE (Integrated Development Environment) niemal zawsze stanowi najważniejsze narzędzie pracy. Pomimo tego, że na rynku dostępny jest bardzo dobry Visual Studio Code, w tym kursie poznasz bliżej płatne narzędzia firmy JetBrains, które w wielu przypadkach sprawdzą się nieporównywalnie lepiej. Dobrze skonfigurowane IDE potrafi "zrozumieć" Twój kod na tyle, aby skutecznie Ci pomagać w pisaniu kodu, pracy zespołowej czy debugowaniu aplikacji.
Poza narzędziami bezpośrednio związanymi z programowaniem, istnieje szereg aplikacji które pomagają w codziennej pracy. Mowa o pracy koncepcyjnej, sandboxach, organizacji wiedzy, zadań, kalendarza, poczty czy nawet sięganie po narzędzia no-code / low-code. W tym kursie znajdziesz przegląd tych, które mają duży sens z punktu widzenia full-stack'a, aczkolwiek pamiętaj że każde z nich posiada też różne alternatywy, które mogą bardziej przypaść Ci do gustu.
Kolejnym niezbędnym elementem w programowaniu, są różnego rodzaju zależności projektu oraz narzędzia instalowane na komputerze czy serwerach, w celu ułatwienia pracy lub wręcz jej umożliwienia. Poza tym poruszymy też temat własnych skryptów a nawet tworzenia CLI w Node.js na własne potrzeby.
Tworzenie aplikacji w JS charakteryzuje konieczność wykorzystywania różnego rodzaju narzędzi, umożliwiających m.in. transpilowanie oraz optymalizację kodu. Obecnie jednym z najlepszych wyborów jest Vite i to na nim skupimy się najbardziej, łącząc go nie tylko z samym JavaScriptem ale także frameworkami CSS (konkretnie Tailwind CSS).
Ten kurs powstał z myślą o osobach pracujących w ekosystemie JavaScriptu. Jest to szybkie przegląd dostępnych na rynku narzędzi oraz przykładów ich praktycznego wykorzystania w codziennej pracy. Jeżeli szukasz inspiracji, nowych narzędzi lub sposobów usprawnienia codziennych zadań — w tym kursie je znajdziesz.
Jeżeli programujesz, to nie mam wątpliwości, że przynajmniej zdarza Ci się
sięgać do terminala w celu uruchomienia różnego rodzaju poleceń.
Mogłoby się zatem wydawać, że nie ma większego znaczenia to, z jakiego
terminala korzystamy i w jaki sposób jest konfigurowane.
W końcu dlaczego mielibyśmy poświęcać jakąkolwiek uwagę czemuś, co tak naprawdę
służy nam do wykonywania pojedynczych akcji?
Niestety jest to bardzo błędne myślenie ze
względu na to, że nawet jeżeli pracujemy jako frontend developerzy, to i tak warto
zadbać o to, z jakimi narzędziami pracujemy,
nawet jeżeli stanowią one pewnego rodzaju tło.
A akurat tak się składa, że w przypadku terminala nie powinno tak być.
Tym bardziej jeżeli myślisz o rozwoju jako full stack developer, to nagle okaże się,
że terminal zaczyna odgrywać tutaj większą rolę, niż mogłoby się początkowo wydawać.
I tutaj chciałbym zaznaczyć, że zarówno w
przypadku systemu macOS, Windows czy Linux zawsze mamy do dyspozycji wbudowany w
system terminal, po który możemy sięgnąć w każdej chwili.
W praktyce okazuje się jednak, że te terminale są mocno ograniczone i
zdecydowanie lepiej sięgnąć po bardziej rozbudowane alternatywy, które pozwalają
nam skonfigurować różne ustawienia i bardziej dostosować je do naszych potrzeb.
Co więcej, już w tym miejscu chciałbym
zaznaczyć, że co prawda w kolejnych lekcjach pokażę Ci różnego rodzaju
narzędzia, które można wykorzystać na Windowsie, jednak dla mnie osobiście sam
terminal mógłby być wystarczającym powodem do tego, aby zrezygnować z pracy na
Windowsie na rzecz systemu macOS lub też Linuxa.
Doskonale pamiętam moment, w którym kupiłem swojego pierwszego MacBooka i
nagle okazało się, że problemy, które miałem w terminalu na Windowsie w
przypadku systemu macOS w ogóle nie istnieją.
Tym samym zacząłem oszczędzać po prostu
mnóstwo czasu i też nerwów przy konfiguracji i codziennej pracy z moimi projektami.
Jeżeli do tej pory Twoje główne
wykorzystanie terminala sprowadza się raczej do obsługi Package Managerów takich jak
chociażby NPM, to prawdopodobnie zastanawiasz się dlaczego w ogóle
zaczynamy naukę od obsługi właśnie takiego narzędzia.
Mianowicie chodzi o to, że wiele narzędzi,
z którymi przyjdzie Ci pracować umożliwiają obsługę wyłącznie przez tzw.
CLI, czyli Command Line Interface i tym
samym też w takiej sytuacji sięganie po terminal będzie po prostu konieczne.
Jednocześnie istnieje wiele narzędzi takich jak chociażby Git, w przypadku
którego nie ma problemu, aby obsługiwać go z poziomu graficznych interfejsów.
Ale tutaj znowu w praktyce okazuje się, że
zdarzają się sytuacje, w przypadku których trzeba sięgnąć po terminal.
No i ostatnim, chyba najbardziej klasycznym przykładem wykorzystania
terminala jest praca na zdalnym serwerze i w moim przypadku jest to VPS .
z DigitalOcean.
Otóż w momencie gdy Twoje kompetencje będą się teraz bardziej rozwijać w kierunku właśnie
Full-Stack Web Developmentu, to nagle okaże się, że konieczność logowania na
zdalne serwery i różnego rodzaju maszyny stanie się po prostu częścią Twojej pracy.
Mam tutaj na myśli chociażby konieczność
wykonywania różnego rodzaju skryptów i backupów oraz np.
bezpośredniej interakcji z produkcyjną bazą danych.
W moim przypadku jedną z najczęściej wykonywanych akcji bezpośrednio na
serwerze jest konfiguracja nginx i podłączanie różnego rodzaju domen,
przekierowań oraz zasadniczo procesu całego deploymentu aplikacji, czyli
udostępnianiu jej na serwerze produkcyjnym.
Poza tym sama umiejętność obsługi terminala przyda Ci się chociażby przy
konfiguracji Dockera czy narzędzi, które ułatwią Ci proces deploymentu aplikacji
i mam tutaj na myśli GitHub Actions, o którym przyjdzie nam jeszcze rozmawiać.
I już ostatnią rzeczą, która aktualnie przychodzi mi do głowy, a jednocześnie
jest niesamowicie pomocna i też wymaga od nas znajomości terminala oraz umiejętności
pisania nawet bardzo prostych skryptów, jest wykorzystanie różnego rodzaju makr
oraz automatyzacji do usprawnienia swojej codziennej pracy.
Przykładowo ja mam makra, które uruchamiają się przy uruchomieniu bądź
zamknięciu jakiegoś programu i wykonaniu w związku z tym różnego rodzaju akcji, które
normalnie musiałbym wykonywać ręcznie, a w tym przypadku dzieją się automatycznie.
W przypadku bezpłatnych lekcji, które udostępniałem na stronie jsnafrontach.pl
pokazywałem jak to dokładnie działa w moim przypadku i dlaczego takie usprawnienie
pracy odgrywa szczególną rolę w przypadku pracy jako Full Stack Developer.
Tymczasem mam nadzieję, że w tym momencie
udało mi się zwrócić Twoją uwagę na narzędzie jakim jest terminal oraz nawet
jeżeli już teraz terminal nie kryje przed Tobą jakiś większych tajemnic, to i tak
zajrzysz do kolejnych materiałów, ponieważ całkiem prawdopodobne, że znajdziesz tam
detale i szczegóły, które mogą okazać się dla Ciebie przydatne.