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.
Kolejnym wątkiem, który chciałbym poruszyć
w temacie terminala jest jego konfiguracja i dostosowanie w pełni do naszych potrzeb.
I tutaj nie wiem jak jest w Twoim
przypadku, natomiast u mnie sama kwestia wizualna odgrywa ogromną rolę.
Po prostu bardzo lubię pracować z narzędziami, które dobrze wyglądają,
tym bardziej, że w obszar kwestii wizualnych wchodzą nie tylko walory
estetyczne, ale również użyteczne, takie jak chociażby czytelność poszczególnych
elementów i wyróżnianie opcji, na które trzeba zwrócić uwagę.
W temacie samego terminala muszę tutaj przyznać, że też nie jest to jakiś szczególny obszar
mojego zainteresowania, który zgłębiam z wielką pasją.
Jest to bardziej narzędzie, które traktuję
bardzo poważnie i jednocześnie dbam o to, aby odpowiednio je skonfigurować i
korzystać z możliwie najlepszych dostępnych na rynku rozwiązań.
Jednym z nich jest ZSH.
Jeżeli interesuje Cię co to dokładnie
jest, to odsyłam Cię do artykułów na ten temat,
natomiast ja nie będę się na tym skupiał,
ponieważ uważam, że akurat ta teoria nie jest jakoś szczególnie istotna.
Znacznie bardziej istotne i praktyczne
jest to, że na stronie ohmyz.sh znajdziemy specjalny framework, który
umożliwi nam łatwiejsze zarządzanie ustawieniami naszego terminala.
Jest to miejsce, w którym polecam spędzić jakiś wolny wieczór i chociażby przejrzeć
tutaj jakieś najciekawsze ustawienia, pluginy, motywy i różnego rodzaju skróty,
której jesteśmy w stanie podłączyć do naszego terminala.
Nie będziemy sobie przechodzić przez każde z
nich ze względu na to, że w mojej opinii to, które wybierzemy będzie mocno zależało od
naszych preferencji oraz od naszego stylu pracy.
Z tego względu właśnie raczej zachęcam do tego,
aby zapoznać się z dokumentacją, którą mamy tutaj oraz dostępnymi opcjami.
Naturalnie też nie chodzi tutaj o to, aby od deski do deski czytać te wszystkie
dokumentacje, tylko bardziej przejrzeć nagłówki i jakieś poszczególne słowa
kluczowe w poszukiwaniu opcji, które mogą okazać się dla nas przydatne.
Jednocześnie niewykluczone, że na
przestrzeni Twojej pracy spotkasz różnego rodzaju problemy i wyzwania, które prędzej
czy później skierują Cię właśnie w to miejsce w celu doinstalowania jakiejś
funkcji lub też doczytania, w jaki sposób ona działa.
Swoją drogą, jak już jesteśmy przy wyglądzie, to muszę tutaj przyznać, że
odgrywa on w moim przypadku ogromną rolę i z tego powodu zachęcam również do
przejrzenia dostępnych motywów, które możemy oczywiście dodatkowo konfigurować.
W moim przypadku przez bardzo długi czas, jak nie lata pracy korzystałem z tego
pierwszego i chyba najpopularniejszego motywu.
Jednocześnie w ostatnich dniach trafiłem na artykuł, który świetnie opisuje różnego
rodzaju triki i możliwości konfiguracji samego terminala i szczerze mówiąc jest on
szczególnie dobry, ponieważ w większości ustawienia, które omawiam tak naprawdę
dotyczą ustawień, z których sam korzystam od wielu lat.
I tutaj za chwilę przejdziemy przez nie bardziej szczegółowo.
Natomiast chciałbym właśnie zwrócić uwagę na samo
zainstalowanie motywu Material, który zapewne kojarzysz z różnego rodzaju
edytorów, który w tym przypadku również może pozwolić Ci na dostosowanie swojego
terminala tak, aby był dopasowany wyglądem do edytora, w którym pracujesz.
I tutaj też znajdziesz bardzo prostą
instrukcję instalacji, która sprowadza się w zasadzie do tego, aby pobrać paczkę, a
następnie w ustawieniach samego terminala przejść do profili, a następnie do
zakładki Color, gdzie znajdziesz możliwość zaimportowania motywu
i tak jak widzisz u mnie jest to zrobione
i rzeczywiście wyświetla się tutaj Material Design Colors, w przypadku
którego zresztą jak najeżdżam widać, że zmieniłem tło na nieco ciemniejsze.
Jest to po prostu dla mnie zdecydowanie bardziej wygodne i swoją drogą jest to co
prawda mały, ale jednak przykład dostosowania terminala do moich potrzeb.
Podobnie też jak już jesteśmy w temacie
moich potrzeb, to mogę tutaj zwrócić uwagę na ustawienia tekstu, w przypadku których
bardzo zależało mi na wykorzystaniu fontu Operator Mono, z którym mam personalną
relację, ponieważ przez lata wykorzystywałem go w edytorze kodu,
natomiast pod napływem wielu komentarzy, które zawierały prośbę, abym zmienił ten
mocno nieczytelny font, postanowiłem przerzucić się tam na Fira Code.
Oczywiście mówię to trochę z przymrużeniem
oka, ale jednocześnie zwracam uwagę na ten ważny aspekt dotyczący samych ustawień.
Tutaj tylko przeklikam się przez te
najważniejsze ustawienia, które mamy w poszczególnych zakładkach i oczywiście
możesz wstrzymać ten materiał, aby sobie do nich zajrzeć lub też ewentualnie
skorzystać z konfiguracji, którą dołączam do materiału w tej lekcji.
Jednocześnie mamy tutaj jeszcze jeden bardzo istotny element, jakim są skróty
klawiszowe, na które to zwracam uwagę przy praktycznie każdej możliwej okazji.
Akurat tutaj w przypadku samego iTerma raczej
nie wykorzystuję większości wbudowanych tutaj skrótów ze względu na to, że na co
dzień raczej pracuję z Warpem, w przypadku którego wykorzystuję różnego rodzaju makra
oraz tą możliwość swobodnej edycji tekstu, gdzie z kolei mogę wykorzystywać makra np.
Keyboard Maestro, które jeszcze bardziej
usprawniają pisanie bardziej złożonych poleceń.
Tak czy inaczej zachęcam do tego, aby przejrzeć sobie listę dostępnych tutaj
skrótów i ewentualnie ponownie dostosować je do swoich potrzeb.
No i teraz proponuję, abyśmy wrócili do tego artykułu, który tak jak wspomniałem
jest niesamowity i przede wszystkim przeprowadza nas przez instalację
Homebrew, czyli Package Managera dla systemów macOS lub Linux (i ponownie Windows
jest tutaj w tyle), z pomocą którego jako Full-Stack
Web Developerzy będziemy w stanie instalować szereg różnych narzędzi i rozszerzeń
i z tego powodu zdecydowanie warto go mieć w swoim systemie.
Kolejnym elementem, o którym też już
wspominałem, jest iTerm2, czyli zastępca dla wbudowanego w system terminala
i w mojej opinii najlepsze dostępne na rynku aktualnie terminal.
Oczywiście to może się zmienić, ponieważ Warp mocno depcze mu po piętach.
W każdym razie już na tym etapie widać dlaczego zainstalowaliśmy Brew
ponieważ z pomocą dosłownie jednego polecenia jesteśmy w stanie zainstalować iTerm.
No i teraz kolejnym krokiem będzie
zainstalowanie ZSH oraz Oh My ZSH, które ułatwi nam jego konfigurację.
Zawsze pierwszą rzeczą, którą robię
jest dostosowanie wyglądu
aczkolwiek teraz zwracam uwagę na ten
Material Team, o którym ja osobiście dowiedziałam się niedawno.
No i tutaj jeżeli już chodzi o tę konkretnie konfigurację, to mamy plik zshrc,
do którego możemy się dostać w następujący sposób.
Tutaj na ten moment, jeżeli polecenie nano
nic się nie mówi, to nie jest to nic innego jak edytor tekstu, z pomocą którego
jesteśmy w stanie edytować zawartość pliku z poziomu właśnie terminala.
I tutaj zazwyczaj plik konfiguracyjny, na którym nam teraz zależy znajduje się w
katalogu domowym, do którego możemy odwołać się z pomocą tyldy.
Mam nadzieję, że to, że wspominam o tak
podstawowych elementach nie stanowi dla Ciebie większego problemu, aczkolwiek po
prostu spotykam Frontend Developerów, którzy na co dzień nadal nie wykorzystują
terminala lub robią to w absolutnie minimalnej formie i z tego powodu zależy
mi na tym, abyśmy wszyscy mieli podobne zrozumienie.
A tymczasem w tym pliku mamy kilka elementów, na które warto zwrócić uwagę,
przy czym ja to teraz nie będę przechodził przez niego z wykorzystaniem edytora nano,
tylko skorzystam ze skrótu klawiszowego Control X
do tego, aby wyjść z pliku.
A tak w ogóle to nie wiem czy to wyraźnie
widać, ale tutaj mamy skróty, którymi możemy się posługiwać i tak naprawdę aby w
miarę sprawnie posługiwać się edytorem nano wystarczy rzucić na nie okiem.
Teraz chciałbym zwrócić Twoją uwagę na
fakt, że edytory takie jak Sublime Text, Visual Studio Code czy np.
IntelliJ posiadają swój interface CLI, z
pomocą którego jesteśmy w stanie łatwiej otwierać pliki.
I tak jak w tym przypadku normalnie musiałbym zlokalizować ten plik, a
następnie otworzyć Sublime Text i otworzyć go wewnątrz niego
a w tym przypadku wystarczy mi wykonanie następującego polecenia.
I teraz mamy tutaj nasz plik konfiguracyjny, ale zanim do niego
przejdziemy, chciałbym tylko zaznaczyć, że w przypadku wszystkich edytorów, które
wymieniłem, musisz znaleźć sposób na to, aby zainstalować ich wersję CLI
w swoim systemie.
Sam proces różni się w zależności od systemu, natomiast w każdym przypadku jest
bardzo wyraźnie opisany, więc nie widzę potrzeby, aby przez niego przechodzić.
A jednocześnie mamy jeszcze tutaj kolejny wątek, który raz jeszcze podkreśla
wyższość systemów macOS oraz Linux w kontekście programowania.
Mianowicie tak jak widać w przypadku instalacji wersji CLI na Windowsie
mamy tutaj wiele różnych kroków, które musimy podjąć i dodatkowo różnią się one w
zależności od wersji systemu operacyjnego na którym pracujemy,
a w przypadku Maca czy Linuxa jest to po
prostu jedno polecenie, które trzeba uruchomić.
I teraz co ważniejsze, to wszystko może wyglądać jak po prostu jeden mały wyjątek,
natomiast w praktyce na każdym kroku gdy będziesz programować i rozwijać
szczególnie Full-Stackowe aplikacje będziesz
spotykać się właśnie z takimi problemami jak ten.
Wracając jednak do naszego pliku konfiguracyjnego.
Jak widać jest tutaj wiele różnych opcji, które są domyślnie zakomentowane.
Warto je sobie przejrzeć, aby zobaczyć w ogóle co tutaj mamy dostępne,
natomiast nasza uwaga w tym momencie powinna skupić się na pluginach.
Tych pluginów wśród społeczności oczywiście jest nieporównywalnie więcej,
natomiast w moim przypadku wystarcza w zupełności następująca lista.
Ułatwia ona pracę z Gitem, Dockerem Package Managerem npm, czy też bardziej ogólne
pluginy generalnie wspierające pisanie poleceń oraz obsługę samego terminala.
Zdecydowanie polecam zajrzeć w dokumentację tych narzędzi.
Tymczasem drugim plikiem, który będzie nas tutaj interesował będzie plik zshenv.
W jego przypadku jego treść będę musiał niestety zasłonić, ponieważ mamy tutaj
wiele szczegółów dotyczących realizowanych moich projektów
natomiast najważniejszym fragmentem, który
tutaj się znajduje jest słowo kluczowe alias.
Chodzi o to, że w pracy Full Stack Web Developera istnieje wiele różnych poleceń
i do różnego rodzaju skryptów, po które trzeba sięgać regularnie.
Z tego powodu zamiast zapisywać lub zapamiętywać te wszystkie polecenia,
znacznie lepiej jest zapisać je jako proste do zapamiętania aliasy.
W ten sposób np.
łączę się z wybranymi serwerami czy
podłączam tutaj różnego rodzaju skrypty uruchamiające np.
proces deploymentu w wybranym projekcie.
Sama konfiguracja takiego aliasu jest niezwykle prosta i sprowadza się do
zapisania frazy, której będziemy używać do wywołania polecenia oraz samego polecenia.
Z całą pewnością z samą konfiguracją raczej nie
będziesz mieć problemu, ale jednocześnie przykładowo tak jak mamy w pierwszej linii
mogą pojawić się elementy, na które warto zwrócić uwagę.
Przykładowo w tym przypadku wykorzystujemy
zmienną przekazaną do tego konkretnego polecenia.
Czyli konkretnie mamy tutaj odwołanie do aplikacji iA Writer, którą.
Do pisania tekstów i analogicznie jak to było w przypadku Sublime Text czy innych
edytorów kodu, wykorzystuję tutaj polecenie, do którego przekazuję właśnie
zmienną w postaci nazwy pliku, który chcę otworzyć.
I teraz jeszcze zostając na chwilę przy
temacie aliasów, to możesz je wykorzystywać nie tylko w celu
wykorzystywania bardzo skomplikowanych i złożonych poleceń, ale również w przypadku
tych niesamowicie prostych, które łatwo zapamiętać.
Po prostu istnieją polecenia, po które sięgamy praktycznie na każdym kroku i
robimy to wielokrotnie, więc warto zastosować taką mikro optymalizację w
postaci zapisania krótszego aliasu, które pozwoli nam sięgnąć po konkretne polecenie
i tym samym wyeliminować ewentualną możliwość popełnienia chociażby literówki.
I ostatnią rzeczą, na którą jeszcze trzeba zwrócić
uwagę to samo zdefiniowanie aliasu niczego nie zmienia.
Trzeba z niego korzystać i to jest chyba największą barierą, ponieważ łączy się
bezpośrednio z koniecznością zmiany nawyku.
Z tego powodu zachęcam do tego, aby nie
instalować szeregu różnych rozszerzeń, które dodają nam mnóstwa aliasów, z
których i tak nigdy nie skorzystamy, ale w zamian przygotować sobie naprawdę prostą
listę aliasów, które przede wszystkim stworzyliśmy sami, więc łatwiej nam będzie
je zapamiętać, a dodatkowo faktycznie będziemy z nich korzystać.
Mało tego, bardzo istotnym nawykiem w
kontekście aliasów i pozostałych podobnych funkcji, takich jak chociażby Text Expander
jest to, aby wyrobić sobie nawyk ich dodawania.
Mianowicie za każdym razem, gdy przyłapiesz się na tym, że wpisujesz jakieś długie
polecenie, w przypadku którego zdarza Ci się np.
popełniać błędy albo po prostu je
zapominać, to jest to moment, w którym warto dodać alias.
Z kolei jeszcze na sam koniec wracając do rozszerzeń, tutaj chociażby w tym artykule
znajdziesz nieco bardziej rozszerzoną listę
aczkolwiek dla mnie te pozostałe
rozszerzenia raczej nie wnoszą żadnej wartości.
Jednocześnie bardzo zachęcam do
przejrzenia ich pełnej listy, która dostępna jest dokładnie tutaj.
Najprostszą możliwą zasadą weryfikowania
tych rozszerzeń jest po prostu sprawdzenie, które z nich dotyczą
narzędzi, z którymi zdarza Ci się pracować.
Przykładowo, jeżeli zdarza Ci się pracować
z Flutterem, mamy tutaj właśnie jakiś plugin, który jego dotyczy i w tym
przypadku jest to lista aliasów, które mogą Ci się przydać.
Niewykluczone więc, że jeżeli pracujesz z Flutterem, warto będzie go zainstalować.
Wszystkich rozszerzeń jak widać jest tutaj
zdecydowanie więcej i nie będziemy mieć czasu na to, aby przez nie przechodzić,
natomiast z dużym prawdopodobieństwem możesz uznać, że te, które pokazuję tutaj
są tymi, które praktycznie każdy z nas może bez zastanowienia zainstalować.
I w tym momencie chciałbym zakończyć temat konfiguracji.
I chciałem tylko raz jeszcze podkreślić,
że w załączniku do tej lekcji znajdziesz konfigurację, z której sam korzystam
aczkolwiek jeżeli miałbym coś do tego
dodać to polecam skonfigurować swój terminal od podstaw, tym bardziej, że sam
proces nie jest bardzo skomplikowany i sprowadza się głównie do tego, aby
zapoznać się z możliwościami, które oferuje wspomniany tutaj framework.