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.
Tą lekcją przejdziemy sobie do kolejnego tematu dotyczącego prawdopodobnie najważniejszego
narzędzia, z jakim przyjdzie nam pracować, czyli edytorem kodu.
Nie bez powodu znajduje się teraz na
stronie Visual Studio Code i jeżeli sugeruje Ci to, że temat IDE masz
całkowicie zaadresowany, to bardzo proszę Cię o uwagę
ze względu na to, że dużo może się za
chwilę u Ciebie zmienić. Zanim definitywnie zaczniemy, chciałbym
tylko podkreślić, że w tej lekcji skupimy się na wyborze IDE, a na temat lekkich
edytorów kodu będziemy rozmawiać w oddzielnej lekcji.
Uważam, że jest to temat również bardzo
istotny, ale jednocześnie chciałbym, aby nasza uwaga skupiła się na tym głównym
narzędziu, z którym przyjdzie nam pracować.
No i właśnie z tego powodu znajdujemy się teraz na stronie głównej Visual Studio
Code, czyli najpopularniejszego IDE dla programistów,
ale jednocześnie nie będziemy poświęcać mu w tym programie praktycznie żadnej uwagi ze
względu na to, że jest znacznie lepsze narzędzie do pisania kodu
pomimo tego, że Visual Studio Code również jest świetnym rozwiązaniem i sam spędziłem w
nim wiele lat, tak teraz mogę dość śmiało powiedzieć, że jeżeli poważnie myślisz o
rozwoju jako full stack, no to nadszedł czas, aby odejść od Visual Studio Code.
I teraz wiem, że może to nie być dla
Ciebie takie łatwe, ale jednocześnie podam Ci kilka przykładów i to naprawdę z
brzegu, które zadecydują o tym, że wybierzesz narzędzia firmy Jet Brains
i nie potraktuj tego absolutnie jako jakąkolwiek reklamę,
ze względu na to, że moim priorytetem jest
tutaj doprowadzenie do sytuacji, w której faktycznie będziesz wykorzystywać
najlepsze na rynku narzędzia, a Twoja praca będzie jeszcze bardziej efektywna
i niewykluczone też, że będzie sprawiać Ci więcej przyjemności.
Oczywiście jeżeli chociaż trochę kojarzysz tą firmę, to prawdopodobnie zastanawiasz
się dlaczego w ogóle rekomenduję IntelliJ zamiast np.
WebStorma, który został stworzony z myślą o JavaScript.
To, że tak jest oczywiście jest
niezaprzeczalne, ale jednocześnie jako full stack będziemy pracować z różnymi
technologiami i w tym przypadku WebStorm sprawdza się dość średnio.
Wielokrotnie zdarzały mi się sytuacje, że musiałem sięgnąć po jakiś projekt bądź
narzędzie napisane w zupełnie innej technologii niż JavaScript i w takiej
sytuacji Webflow po prostu totalnie się nie sprawdzał.
Jednocześnie w przypadku IntelliJ taki problem nie występuje, ponieważ
pomimo tego, że jest zaprojektowany z myślą o Javie, wspiera praktycznie
wszystkie technologie i języki programowania jakie znam.
Czasem oczywiście zdarzy się, że dla jakiejś mniejszej biblioteki bądź np.
silnika szablonów potrzebujemy doinstalować dodatkowe rozszerzenie, ale
jednocześnie nie wymaga to od nas jakiegoś dużego wysiłku.
Oczywiście tutaj chciałbym podkreślić jeden fakt.
W przypadku Visual Studio Code ten edytor jest nieporównywalnie szybszy i sprawdza
się świetnie, szczególnie na słabszych maszynach.
W przypadku IntelliJ sytuacja wygląda zdecydowanie inaczej, ale jednocześnie
moim zdaniem jeżeli programujesz, to naprawdę warto zadbać o to, aby oczywiście
w miarę możliwości zadbać o to, aby pracować na sprzęcie, który umożliwi nam
pracę z najlepszymi dostępnymi na rynku narzędziami.
I teraz myślę, że warto przejść do samego IntelliJ.
To co teraz widzisz, to absolutnie nie
będzie to samo, co widzisz w momencie zainstalowania IntelliJ.
Zresztą podobnie to wygląda w Visual Studio Code.
Wynika to z faktu, że mój edytor kodu jest
całkowicie dostosowany do moich potrzeb i jednocześnie chciałbym tutaj tylko
zaznaczyć, że część z tych praktyk, które wykorzystuję mogą okazać się dla Ciebie
mniej przydatne, ale jednocześnie być może znajdziesz tutaj wiele różnych inspiracji.
Jeżeli znasz moje inne materiały, to
prawdopodobnie wiesz doskonale, że cenię sobie minimalizm oraz skupienie
maksymalnej uwagi na tym, co w danej chwili robię.
Jednym z elementów, które mi w tym bardzo pomagają jest eliminowanie praktycznie
wszystkich zbędnych elementów interfejsu, których nie potrzebuję w danej chwili.
Przykładowo, jeżeli pracuję z kodem, to absolutnie nie jest mi potrzebny Sidebar.
Tak samo też nie są mi potrzebne jakieś dodatkowe panele boczne, z których
niejednokrotnie nigdy nie zdarza mi się korzystać.
Pomimo tego z różnych powodów przykładowo
sidebar aktywny jest za każdym razem, gdy włączamy jakikolwiek edytor kodu.
Moim zdaniem znacznie lepiej jest wykorzystać funkcje takie jak Navigation
Bar do tego, aby szybciej poruszać się po plikach projektu lub też po prostu
wykorzystywać wbudowaną wyszukiwarkę, czy też bardziej jest to pewnego rodzaju
paleta komend, w przypadku której tak jak teraz wcisnąłem po prostu command shift i o
do tego, aby wyświetlić wyszukiwarkę plików, w przypadku której po prostu mogę
wpisać nazwę, a następnie natychmiast przenieść się do pliku.
Jest to akurat funkcja, którą prawdopodobnie doskonale kojarzysz z
Visual Studio Code i bez wątpienia zarówno Visual Studio, jak i IntelliJ i inne
edytory kodu posiadają wiele wspólnych elementów i to jest jednym z nich.
Jednocześnie już sam element taki jak
Navigation Bar w przypadku IntelliJ nie występuje.
Oczywiście z tego co pamiętam jest tam
dostępna wtyczka, która umożliwia nawigowanie po Breadcrumbsach, które swoją
drogą w przypadku IntelliJ również można tutaj wyłączyć,
natomiast ja osobiście z nich nie
korzystam ze względu na to, że również nie są mi potrzebne, ale w zamian ten
Navigation Bar okazuje się niesamowicie przydatny ze względu na to, że służy nie
tylko do nawigowania po plikach projektu, ale jednocześnie możemy tutaj wykorzystać
skróty do tego, aby utworzyć nowe pliki i katalogi, po prostu podając ich tutaj nazwę.
Idźmy jednak dalej, ponieważ takich rzeczy jest zdecydowanie więcej.
Przykładowo przeniesiemy się teraz do Visual Studio Code, który przed chwilą
zainstalowałem, więc wybacz, że nie jest w żaden sposób skonfigurowany.
Natomiast co nie zmienia faktu, ponieważ w przypadku IntelliJ również akurat pod
tym względem nie dokonywałem żadnej zmiany w jego konfiguracji.
Mianowicie załóżmy sobie, że w ramach tego
kontrolera chcemy wygenerować unikatowy identyfikator.
W tym momencie naturalnie ta paczka nie
jest zainstalowana, więc chciałbym to teraz szybko zrobić.
Prawdopodobnie to co robisz w takiej sytuacji to po prostu przechodzisz do
terminala i wpisujesz polecenie npm install, a następnie nazwa tej paczki.
Oczywiście jest to jakieś rozwiązanie i
zresztą to samo podpowiada nam tutaj Visual Studio Code, więc jest w miarę
przytomny i co więcej mamy tutaj jeszcze opcję Quick Fix, w przypadku której mamy
dwie opcje albo usuwamy ten import, albo instalujemy typy do tej paczki.
Jedna i druga opcja jest całkowicie bezużyteczna.
Zobaczmy więc teraz jak to wygląda w IntelliJ.
Jeżeli analogicznie zapiszemy sobie tutaj tą linię, to jesteśmy w stanie przejść na
jej nazwę, a następnie wcisnąć Option oraz Enter
do tego, aby wyświetlić menu podręczne.
Pierwsza opcja jest tutaj analogiczna jak
w przypadku Visual Studio Code, ale następnie mamy do dyspozycji zarówno
instalację tej paczki, jak i jej instalację jako zależność deweloperska.
Szczerze mówiąc, pozornie może wyglądać to
jak bardzo małe usprawnienie, które niewiele wnosi.
Jednocześnie, jeżeli pomyślisz sobie ile razy zdarza Ci się instalować jakieś
paczki, a następnie przechodzić do terminala tylko po to, aby wpisać to jedno
polecenie, to nagle okazuje się, że wykorzystanie tego skrótu jest niezwykle
przydatne i oszczędza czas oraz dba o nasze skupienie.
Tymczasem przejdźmy jeszcze do kolejnego
przykładu, który również z pewnością niejednokrotnie spotykasz.
Mianowicie mamy tutaj jakąś aplikację napisaną w Vue.js, w przypadku której
naturalnie wykorzystujemy podział na komponenty i np.
tutaj mamy nasze zakładki.
Teraz chciałbym dostać się do tego komponentu, więc tylko wciskam przycisk
Command i natychmiast zostaje przeniesiony do odpowiedniego pliku.
Zobaczmy więc jak to wygląda w przypadku Visual Studio Code.
Mamy tutaj również komponent,
klikam na niego i zostaje tutaj
przeniesiony nie do pliku, tylko nieco niżej, gdzie rejestrowane są komponenty.
No to przechodzimy dalej.
Zostaje przeniesiony do importu, gdzie
mamy tutaj podaną ścieżkę do naszego pliku.
Chciałbym na nią kliknąć, ale niestety
Visual Studio Code nie jest w stanie tego ogarnąć.
Oczywiście w tym momencie nie wykluczam,
że znasz jakieś różnego rodzaju pluginy i wtyczki, które są w stanie Ci to ogarnąć,
tylko różnica jest taka, że w przypadku
IntelliJ nic nie musiałem robić, aby osiągnąć taki efekt, a w przypadku
Visual Studio Code takie sytuacje zdarzały mi się nagminnie.
Co więcej, nawet niejednokrotnie widzę
podobne sytuacje w momencie, gdy oglądam jakieś tutoriale bądź kursy w internecie.
Nie mam pojęcia z jakiego powodu
programiści w ogóle nie biorą tego pod uwagę, albo nawet jeżeli biorą, to właśnie
spędzają mnóstwo czasu na przeszukaniu StackOverflow w poszukiwaniu jakiejś
konfiguracji pluginu bądź jakiegoś innego magicznego sposobu do tego, aby Visual
Studio Code nieco lepiej rozumiał to, co próbujemy napisać.
I tutaj raz jeszcze chciałbym podkreślić jedną rzecz.
To, co pokazałem teraz, to tylko jeden z przykładów.
Jeżeli pracujesz w React, Vue czy w Angular, to prawdopodobnie znajdziesz w
końcu sposób na to, aby to ogarnąć lub też ewentualnie powiesz, że się przyzwyczaisz.
Natomiast w momencie, gdy staniesz się
full stackiem i będziesz pracować z wieloma różnymi technologiami językami, z
takich małych niedogodności zaczyna rodzić frustracja i mnóstwo zmarnowanego czasu.
No bo nie widzę tutaj absolutnie żadnego powodu, dlaczego miałbym poświęcać czas na
konfigurację tak prostej rzeczy jak możliwość natychmiastowego przeniesienia
się do komponentu, który chciałbym podejrzeć.
Poza tym od razu mamy tutaj przykład, za który ktoś powinien dostać po łapkach.
Mianowicie w tym przypadku, jeżeli wrócimy
sobie do IntelliJ, to zwróć uwagę, że nie ma tutaj żadnego problemu.
Wszystko jest w porządku,
ale już w przypadku Visual Studio Code mamy jasną informację o tym, że
wykorzystujemy tutaj podwójny znak równości, a nie potrójny.
Oczywiście nie był to jakiś radykalny błąd i zresztą prawdopodobnie z tego powodu był
podkreślony na pomarańczowo, na czerwono, ale jednocześnie był zaznaczony.
I tutaj, w tym miejscu chciałbym na moment się zatrzymać.
Mianowicie dokładnie takie błędy, a w
zasadzie ta kategoria błędów sprawiła, że przekonałem się do IntelliJ, ponieważ w
momencie, gdy wysłałem swoje zmiany do Code Review, to bardzo często okazywało się, że
popełniałem proste błędy, w przypadku których IntelliJ natychmiast je
wyłapywał, a w Visual Studio Code po prostu nie byłem świadomy.
Oczywiście nie jestem w stanie teraz
przywołać ich wszystkich, aby podać Ci milion powodów mówiących o tym, że
IntelliJ jest po prostu lepszym oprogramowaniem.
Ale myślę, że jeżeli masz odrobinę otwarty umysł i faktycznie zależy Ci na twojej
efektywności oraz komforcie pracy, no to nawet te dwa podane przykłady będą
wystarczające do tego, aby przełączyć się na IntelliJ.
No i jeżeli już mówimy o przełączaniu się, to tak jak powiedziałem w przypadku
IntelliJ, to po pierwsze jest on nieporównywalnie wolniejszy
niż np. Visual Studio Code.
Jednocześnie jeżeli wybierzemy sobie tutaj Code Helper i przykładowo w tym momencie mam
w nim otwarte dwa projekty i zajęte 3,5 GB RAMu.
Praktycznie to samo mam teraz uruchomione
w przypadku Visual Studio Code i jeżeli nawet zsumujemy sobie te wartości to wychodzimy
tutaj lekko ponad 500 MB i w zasadzie nie ma tutaj czego porównywać.
I teraz kolejna rzecz, która być może będzie przemawiać za tym, że uznasz, że
Visual Studio Code ma znaczną przewagę i jest cena samego oprogramowania.
W przypadku Inteligo płacimy tutaj 150
euro, a Visual Studio Code jest bezpłatnym oprogramowaniem.
Zatem różnica na pierwszy rzut oka jest,
ale tylko biorąc pod uwagę dwa przykłady, które przed chwilą pokazałem
zastanów się ile wynosi Twoja stawka godzinowa i ile czasu oraz energii
zaoszczędzi Ci IntelliJ, a następnie podejmij decyzję.
Jak dla mnie nie ma się tutaj nad czym
zastanawiać, ale oczywiście jest to kwestia indywidualna.
No ale wróćmy teraz jeszcze na chwilę do samego IntelliJ.
Tak jak powiedziałem na początku, w
momencie gdy jakieś panele nie są mi potrzebne, to po prostu je wyłączam.
Jednym z tych paneli jest chociażby Git,
który jak widać włączam sobie jednym skrótem klawiszowym.
Pomimo tego, że w przypadku Visual Studio Code
również możesz powiedzieć o tym, że istnieje tam plugin Gita, ale jednocześnie
polecam Ci zainstalować wersję próbną IntelliJ, a następnie samodzielnie
odpowiedzieć na pytanie, które rozszerzenie jest po prostu lepsze.
Co więcej, praktycznie gwarantuje Ci, że jeżeli spędzisz trochę więcej czasu w tym
panelu, to okaże się, że nie mówimy tutaj o różnicach, tylko o całkowitej przepaści.
Analogicznie to wygląda w przypadku bazy danych.
Tutaj przykładowo akurat nie mam skrótu, natomiast wywołuję ją z pomocą palety
poleceń i mam tutaj połączenia z dwiema bazami danych.
Tutaj ponownie można dyskutować, czy warto korzystać z takiego rozwiązania, czy może
z zewnętrznego oprogramowania, a może też Visual Studio Code
klient baz danych też funkcjonuje w formie
jakiegoś pluginu i da się z niego skorzystać.
Natomiast jednocześnie zaznaczę sobie tutaj bazę danych, a następnie wcisnę
Command Option Shift i U. Praktycznie natychmiast mam tutaj dostępną piękną wizualizację
naszej bazy danych, która pozwala mi świetnie rzucić okiem na całą strukturę, a
następnie podejmować jakieś decyzje projektowe.
Tutaj tylko zaznaczę, że jeżeli na ten moment nie masz pojęcia baz danych, to
prawdopodobnie nie doceniasz tutaj tej wartości, ale jednocześnie myślę, że pod
koniec tego programu stanie się dla Ciebie jasne, że taka forma wizualizacji struktury,
z którą pracujesz okazuje się niesamowicie przydatna.
Jeżeli chodzi o samą pracę z danymi oraz tabelami, to można powiedzieć, że np.
rozwiązania takie jak Table Plus są pod wieloma względami po prostu wygodniejsze.
Nie zmienia to jednak faktu, że w wielu
projektach zdarza mi się korzystać z tego wbudowanego w IntelliJ klienta baz danych.
No i teraz jeszcze ostatnią rzeczą, na
którą chciałbym zwrócić uwagę, która w przypadku Visual Studio Code wręcz wprost
marnowała mi mnóstwo czasu, jest sam debugger.
I co więcej, mam tutaj na myśli nie tylko samą konfigurację, która w przypadku
niektórych projektów zajęła mi mnóstwo czasu i pomimo tego nie udało mi się
doprowadzić do sytuacji, w której debugger w ogóle wystartował.
W innych projektach,
w momencie, gdy mi się to udawało, bardzo często okazywało się, że w trakcie pracy z
aplikacją potrafił jawnie oraz niejawnie się zawieszać.
W tym pierwszym przypadku przynajmniej
wiedziałem, że coś jest nie tak, a w tym drugim potrafiłem wprowadzać zmiany w
aplikacji, a następnie widząc, że dalej dana funkcja nie działa, spędzałem kilka
kilkanaście minut w poszukiwaniu błędu, po czym nagle wszystko zaczynało działać,
pomimo tego, że nie wprowadzałem żadnej dodatkowej zmiany. Okazywało się, że po
prostu debugger sam decydował, kiedy chce odświeżyć kod mojej aplikacji.
W przypadku Visual Studio Code tak jak widać, po prostu przechodzę do Package.json,
uruchamiam tutaj tryb debuggera i wszystko działa.
Temat jest zamknięty,
mogę z powodzeniem korzystać z debuggera i tak jak teraz pracuję już z IntelliJ
kolejny rok, tak nie zdarzyło mi się nawet raz, żeby debugger nawet się zawiesił.
No i teraz na koniec jeżeli te podane tutaj z
brzegu dość istotne przykłady nadal nie przekonują Cię do tego, że warto sięgnąć
po IntelliJ, to w zasadzie chyba już nic nie mogę zrobić.
Jednocześnie, tak jak też powiedziałem na początku tego filmu, nie będziemy w
kolejnych lekcjach skupiać się na Visual Studio Code, ale oczywiście szanuję Twój
wybór i jeżeli zdecydujesz się przy nim zostać, to naturalnie w przypadku
większości technik, które będę tutaj omawiał, będzie je można przenieść również
na Visual Studio Code, aczkolwiek ja już nie będę tego pokazywał.
Tymczasem dzięki za uwagę i do usłyszenia w kolejnej lekcji.