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.
Myślę, że w tym momencie doszliśmy do
punktu, w którym możemy podsumować temat IDE i zrobię to poprzez pokazanie Ci
pewnego rodzaju elementów, w tym przypadku IntelliJ, o których być może nie
wiesz, a które z pewnością sprawdzą Ci się w codziennej pracy.
Zacznijmy więc od początku, np.
od możliwości pobrania naszego projektu
bezpośrednio z repozytorium za pośrednictwem IntelliJ.
Wystarczy, że wybierzemy sobie opcję pobrania projektu z systemu kontroli wersji,
w naszym przypadku jest to Git, a
następnie musimy podać tylko katalog, do którego chcemy pobrać projekt.
W moim przypadku ta ścieżka się zgadza i
tylko dodam, że na początku będzie konieczne autoryzowanie konta, czyli po
prostu zalogowanie się na niego tak aby IntelliJ miał do niego dostęp.
Następnie w momencie gdy już pobierzemy sobie
projekt musimy chwilę poczekać na jego aktywowanie
no i już wszystkie pliki są tutaj dostępne.
Tutaj w kontekście pracy z repozytorium
najważniejszym panelem jest ten, który jest dostępny pod skrótem klawiszowym
Command 9, w przypadku którego mamy pełny wgląd w nasze repozytorium.
Tutaj znajdują się wszystkie branche,
zarówno te lokalne, jak i zdalne oraz pełna historia commitów.
Akurat w tym repozytorium pracuję
samodzielnie i dodatkowo jak widzisz nie wykorzystuję tutaj nawet sensownych nazw
commitów, tylko one są generowane automatycznie w momencie gdy wychodzę w
tym przypadku z obsidiana po prostu tworzony jest commit z aktualną datą.
Dla mnie jest to w zupełności wystarczające,
natomiast nie o tym chciałbym teraz mówić, ponieważ główną zaletą tego widoku jest
jak widzisz możliwość przeglądania sobie i to bardzo wygodnie całej historii zmian.
Po prostu jesteśmy w stanie podejrzeć co kto kiedy robił i w którym miejscu
a dodatkowo wybierając tutaj plik możemy wcisnąć sobie zegarek, aby podejrzeć listę
commitów, która została wprowadzona wyłącznie w tym konkretnym projekcie.
Analogicznie też możemy tutaj włączyć
sobie adnotację git blame, aby precyzyjnie określić kto tą zmianę wprowadził.
Nie muszę chyba podkreślać, jak taka możliwość przeglądania sobie pełnej historii
projektu jest niesamowicie wygodna i szybka.
I tutaj tylko przez wszystkie elementy samego Gita nie będę Cię przeprowadzać,
ponieważ zakładam, że doskonałego już znasz,
natomiast polecam zapoznać się tutaj z dostępnymi opcjami i po prostu przeklikać
sobie ten panel, a przede wszystkim zacząć z niego korzystać.
Jednocześnie ponownie widać tutaj pewien detal.
No bo zobacz, że w tym momencie ten panel zajmuje niemal cały mój ekran, ale nie mam
z tym najmniejszego problemu, ponieważ mam skrót klawiszowy, z pomocą którego jestem
w stanie wywołać go, gdy tylko go potrzebuję.
I jest to kolejny, ale tym razem mocno
praktyczny przykład tego, że trzymanie małych, ale zawsze otwartych paneli jest
po prostu mało wygodne i tylko negatywnie wpływa na Twoją pracę.
No bo wyobraź sobie, że panel Gita wygląda w ten sposób.
Jeżeli chciałbym teraz na nim jakoś
sensownie pracować, no to oczywiście uwzględniając to, że sam font mógłby być
tutaj mniejszy, to i tak muszę się tutaj nieźle na skalować, aby cokolwiek znaleźć.
Jednocześnie jeżeli ten panel jest otwarty, mam wgląd praktycznie we
wszystko, a już w szczególności, że mogę tutaj dostosować sobie np.
to, czy panel Diff zostaje wyświetlony czy też nie.
I teraz kolejnym elementem pracy w
IntelliJ, który może Ci się przydać jest właśnie dodanie tej adnotacji git blame
bezpośrednio w edytorze.
To akurat nie sprawdzi się w momencie, gdy piszesz kod,
ale gdy widzisz jakiś jego dziwny
fragment, to od razu możesz spojrzeć kto dodał taką zmianę no i ponownie albo wejść w
pełną historię pliku, albo też rozpoznać przy okazji jakiego commitu została
wprowadzona ta zmiana i jednocześnie zrozumieć nieco szerszy kontekst.
W tym momencie wydaje mi się, że adnotacje możemy już zamknąć, ale jednocześnie może
włączymy je jeszcze na chwilę, aby zobaczyć sobie Diff.
Czyli w tym przypadku wyświetlają nam się
zmiany wprowadzone w tym konkretnym commicie.
Jednocześnie jeżeli dodamy sobie tutaj jakieś zmiany, a następnie wykorzystamy
sobie tutaj Raycast do tego, aby uruchomić akcję Show Diff na bieżącym pliku, no
to od razu możemy też podejrzeć zmiany, które aktualnie wprowadzamy.
Akurat na przykładzie tej konkretnej jest to bezużyteczna opcja, ale wyobraź sobie,
że masz nieco większy plik i przykładowo chcesz cofnąć niektóre zmiany
i w ten sposób łatwo wyeliminować np.
elementy, które zostały wprowadzone, a
jednocześnie na ten moment nie są już potrzebne.
No i w tym momencie możemy zamknąć też Diff i ewentualnie w momencie, gdy jednak te
zmiany okazały się istotne, to ponownie albo z pomocą Raycast, albo z pomocą skrótu
klawiszowego Command K możemy tutaj utworzyć nowy commit zaznaczając pliki, które nas
interesują i ewentualnie znowu możemy podejrzeć zmiany, które wprowadziliśmy i
raz jeszcze upewnić się, czy wszystko jest tutaj ok
a następnie tutaj możemy wygodnie
wprowadzić komentarz do tego commitu i ewentualnie zaznaczyć, czy chcemy edytować
poprzedni commit, ale z nowym komentarzem lub też po prostu dodać nowy.
W tym przypadku chciałbym scommitować zmiany i ewentualnie mógłbym jeszcze
wcisnąć Command Shift K do tego, aby wysłać je do zdalnego repozytorium.
Na ten moment jednak nie będę tego robił ze względu na to, że jak zapewne wiesz, w
sytuacji gdy pracujemy w zespole wykorzystujemy Pull request.
Zatem to co teraz spróbujemy zrobić to
utworzymy nowy branch na podstawie Brancha mane i nazwiemy go feature .
Od razu w momencie tworzenia brancha
zostaliśmy na niego przełożeni, więc możemy wprowadzić kolejne zmiany.
Te zmiany natychmiast są tutaj trakowane, więc możemy ponownie
dodać je jako nowy commit.
Teraz różnica będzie polegała na tym, że
zamiast pushować zmiany do repozytorium, utworzymy sobie nowe pull request.
No i tutaj, jak się pewnie domyślasz, musimy dodać odpowiedni tytuł oraz opis
i oczywiście w tym momencie wpisuję tutaj mało użyteczne rzeczy,
ale to nie jest na ten moment istotne,
ponieważ o temacie poprawnego zarządzania repozytorium będziemy sobie jeszcze mówić.
Tymczasem tworzymy nowy Pull request i na tym etapie musimy podać jeszcze nazwę zdalnego
brancha. W tym momencie go tworzymy, więc nazwa może być tutaj dowolna,
natomiast jeżeli chcesz wprowadzić jakieś zmiany to oczywiście masz taką możliwość.
Po chwili mamy potwierdzenie, że Pull request został utworzony
więc jeżeli przeniesiemy się teraz do zdalnego repozytorium, to rzeczywiście 13
sekund temu został tutaj utworzony nowy Pull request,
który możemy sobie przejrzeć, edytować lub też naturalnie zmerge-ować bądź odrzucić.
Zatem jak widzisz, bez wątpienia IntelliJ
całkowicie zmienia tutaj styl pracy nad projektem,
ze względu na to, że już na tym etapie
widzimy, że jego integracja z Git po prostu stoi na niesamowitym poziomie i
znacząco ułatwia nam codzienne funkcjonowanie.
Jeżeli chodzi o jego pozostałe funkcje, to
z częścią z nich mieliśmy okazję się już zapoznać, a inne jeszcze na nas czekają.
Na ten moment myślę, że to co
najważniejsze zostało już omówione, ale jeszcze chciałbym zwrócić tutaj uwagę na
pewną funkcję, która w momencie nagrywania tego materiału jest jeszcze w wersji beta
i pomimo tego, że na moim sandbox już z niej korzystałem, tak jednocześnie
staram się raczej nie sięgać po wersję beta jakichś narzędzi
w momencie gdy pracuję nad jakimś super
ważnym projektem produkcyjnym. Polecam Tobie to samo
i jedynie zaznaczę, że taka opcja tutaj istnieje i warto ją obserwować
tym bardziej, że jej idea polega na tym, aby połączyć się poprzez SSH ze zdalnym
serwerem i tam bezpośrednio na nim edytować pliki.
Moim zdaniem do warunków developerskich i
jakiś sandboxów sprawdzi się tutaj idealnie
a jeżeli chodzi o zastosowania produkcyjne
to myślę, że trzeba mieć konkretny powód aby pracować bezpośrednio na żywym
organizmie i plikach, które znajdują się na produkcyjnym serwerze.
W temacie IDE to by było na tyle, więc
dziękuję Ci za uwagę i zapraszam do kolejnych lekcji.