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.
W tej lekcji pokażę Ci jeszcze jeden bardzo ważny element pracy z terminalem,
jakim jest połączenie ze zdalnym serwerami.
Szczerze mówiąc, ten konkretny temat
będziemy jeszcze poruszać na koniec naszego programu i tam będziemy zajmować
się nieco bardziej zaawansowanymi technikami,
natomiast jeżeli już teraz widzisz potrzebę do tego, aby utworzyć sobie tzw.
serwer sandboxowy,
to bardzo polecam Ci założyć konto na DigitalOcean, gdzie masz taką możliwość.
Co prawda jest to usługa płatna i ja
obecnie posiadam w niej jak widać kilka projektów.
W praktyce jest to jedyny hosting z którego korzystam i robię to już od lat.
Z tego powodu też mogę Ci go z czystym sumieniem polecić
aczkolwiek szczerze mówiąc, jeżeli będziesz mieć inne preferencje i
zdecydujesz się na innego dostawcę, to oczywiście nie ma z tym żadnego problemu.
Pierwszą rzeczą, na którą warto zwrócić
uwagę jest to, abyśmy faktycznie mieli praktycznie pełen, nieograniczony dostęp
do naszej maszyny, na której będziemy pracować.
Chodzi o to, żeby po prostu nie być ograniczonym
tak jak kiedyś pamiętam kupowałem pewnego rodzaju hosting, w przypadku którego
miałem bardzo ograniczone prawa dostępu, a dodatkowo funkcjonowały też tam jakieś
specyficzne dla niego komendy, których musiałem się dodatkowo uczyć.
W tym przypadku możemy sobie utworzyć Droplet, czyli nic innego jak maszynę, do
której możemy się podłączyć, ale za pierwszym razem musimy ją skonfigurować.
Jako pierwszy krok możemy wybrać tutaj system operacyjny, który zostanie na niej
zainstalowany, a następnie wybieramy sobie plan.
W naszym przypadku, szczerze mówiąc, na
potrzeby testów nie potrzebujemy zbyt wiele.
Maszyna za 6 dolarów miesięcznie w zupełności nam tutaj wystarczy.
I warto w tym miejscu zaznaczyć, że
DigitalOcean rozlicza się z nami na podstawie godzinowego wykorzystania naszego serwera.
W związku z tym możemy tylko wyestymować
koszta miesięczne i dodatkowo warto ustawić sobie tutaj limity oraz
ostrzeżenia o zbliżającym się przekroczeniu limitu.
Tak czy inaczej 6 dolarów jest tutaj w
porządku i następnie możemy przejść do wyboru Datacenter, czyli zasadniczo jest
to region, gdzie mniej więcej będzie funkcjonować nasza maszyna.
No i następnie możemy tutaj wybrać sposób uwierzytelniania naszego połączenia, czyli
tego w jaki sposób będziemy mogli się podłączyć z naszym serwerem.
Tutaj są dwie opcje.
Pierwszym z nich jest klucz SSH, a drugim hasło.
Oczywiście nic nie stoi na przeszkodzie, aby faktycznie ustawić sobie tutaj hasło
natomiast zdecydowanie lepszym sposobem, z
którego polecam korzystać za każdym razem będzie wykorzystanie tutaj klucza SSH.
No i oczywiście ja mam już tutaj jakieś
klucze publiczne, ale w tym przypadku utworzymy tutaj nowe.
Jeżeli chodzi o jego wygenerowanie musimy
przejść do terminala, a następnie uruchomić tutaj polecenie ssh-keygen.
Tutaj jednak zanim przejdziemy dalej chciałbym zaznaczyć, że jeżeli posiadasz
już swój klucz publiczny, to prawdopodobnie znajduje się on w katalogu
użytkownika w podkatalogu .ssh oraz pliku id_rsa.pub
Normalnie możesz tutaj po prostu wcisnąć
enter i zastosować domyślną nazwę, natomiast ja nie chcę nadpisać swoich
kluczy, więc wygeneruje dodatkowe o nazwie JS.
Ten klucz warto jeszcze tutaj zabezpieczyć hasłem
więc w tym momencie może się tutaj wpisać, a następnie wpisać je ponownie, aby
upewnić się, że faktycznie wszystko się tutaj zgadza.
Zwróć uwagę, że w momencie wpisywania nie
było tego widać, więc trzeba to robić dość uważnie.
Teraz, jeżeli wyświetlimy sobie zawartość
pliku js.pub, to będziemy mieć tutaj nasz klucz publiczny.
Jego zawartość musimy skopiować do DigitalOcean
w związku z tym wykorzystam tutaj komendę
pbcopy, a następnie przekażę do niej zawartość pliku js.pub
I tutaj w przypadku macOS mogę to zrobić w następujący sposób
aczkolwiek naturalnie możesz po prostu
otworzyć ten plik i skopiować jego zawartość uwzględniając to, aby nie
skopiować tam jakiś dodatkowych znaków oraz spacji.
W momencie, gdy klucz zostanie tutaj dodany
możemy tutaj zapisać jego nazwę, a następnie przejść dalej.
W tym miejscu jeszcze w temacie kluczy
musisz przede wszystkim wiedzieć to, że występują one w parach.
Mianowicie w momencie gdy generowaliśmy klucz i w moim przypadku nosi on nazwę JS, to
została utworzona para w postaci klucza publicznego oraz prywatnego.
Prywatnego absolutnie nikomu nigdy nie możesz pokazywać ze względu na to, że jest
ono równoznaczne z tym, jakbyś komuś dał hasło.
Natomiast klucz publiczny może być
umieszczony tak jak w tym przypadku na serwerze DigitalOcean i tym samym w momencie
połączenia te klucze będą ze sobą łączone i na podstawie różnych ciekawych
mechanizmów Twoje połączenie będzie zaakceptowane bądź też odrzucone.
Teraz myślę, że możemy przejść dalej i w
zasadzie opcje, które mamy tutaj nie będą nas interesować,
natomiast zdecydowanie nadamy sobie tutaj nazwę js-na-frontach, aby w
momencie gdy będziemy wyświetlać listę dropletów znajdujących się w naszym
projekcie po prostu łatwo móc rozróżnić te maszyny.
No i teraz możemy utworzyć droplet i chwilę poczekać na to aż zostanie skonfigurowane
i zaraz wszystko powinno być dla nas dostępne.
No i faktycznie po chwili mamy tutaj
informację na temat naszego serwera i możemy też skopiować jego adres IP, który
możemy wykorzystać do nawiązania połączenia z pomocą polecenia SSH, do
którego podajemy nazwę użytkownika i domyślnie jest to root, czyli konto z
pełnymi uprawnieniami, a następnie zaraz po nim podajemy @ i wklejamy adres IP naszego
serwera.
W momencie nawiązywania pierwszego połączenia zostaniemy poproszeni o
potwierdzenie tego, że rzeczywiście chcemy to połączenie nawiązać.
W moim przypadku teraz naturalnie
połączenie nie zostało nawiązane i jest to jak najbardziej w porządku ze względu na
to, że mój klucz publiczny nie pasuje do tego, który zapisaliśmy na serwerze.
W związku z tym wykonam teraz polecenie,
które skopiuje faktyczne mój klucz publiczny, a następnie wrócimy sobie do
DigitalOcean, gdzie możemy wejść w zakładkę Access wewnątrz naszego Dropletu,
a następnie możemy wykorzystać tutaj Droplet Console do tego, aby podłączyć się do tego
konta po to, aby móc tutaj przejść do katalogu .ssh, a następnie jeżeli
wyświetlimy sobie tutaj pliki, to okaże się, że jednym z nich jest authorized_keys .
W związku z tym możemy wykorzystać tutaj
edytor nano do tego, aby otworzyć zawartość tego pliku, a następnie tutaj na
górze wkleję swój klucz, który przed chwilą skopiowałem.
Teraz mogę wcisnąć skrót Control X do tego
aby zamknąć plik i oczywiście wybieram opcję zapisywania zmian.
Teraz potwierdzam nazwę tego pliku no i zmiany zostały wprowadzone poprawnie.
Spróbujmy więc teraz ponownie wrócić do
mojego terminala, a następnie znowu spróbować nawiązać połączenie.
Tym razem wszystko się udało i jak widzisz mam dostęp do swojej maszyny.
Jeżeli chodzi o jej dalszą konfiguracje o tym jeszcze będziemy sobie tutaj mówić,
natomiast w tym momencie jak najbardziej
masz dostęp do wszystkich jej możliwości oraz konfiguracji.
Zanim zakończymy, chciałbym tylko jeszcze
bardzo szybko podsumować, co my tutaj w zasadzie zrobiliśmy.
Przede wszystkim w tym momencie tutaj
znajdujemy się w oknie terminala, ale nie mojego komputera, tylko maszyny zdalnej.
Pamiętaj proszę o tym, aby w momencie, gdy będziesz pracować np.
na wielu oknach terminala, upewnić się, że
polecenia, które w danej chwili wykonujesz, wykonujesz na właściwej maszynie.
Następnie bardzo istotne było tutaj to, aby wykorzystać opcję generowania kluczy
publicznych oraz prywatnych, w przypadku których tylko ten klucz publiczny
potrzebny jest Ci on do tego, aby podać go albo na etapie konfiguracji Twojej
maszyny, w tym przypadku DigitalOcean, albo też później możesz po prostu zalogować się
na maszynę, a następnie w katalogu .SSH w katalogu domowym przejść do edycji pliku
authorized_keys, a następnie ostrożnie go tam dopisać.
Od tego momentu nie będzie już żadnego problemu w tym, aby połączyć się z Twoim
serwerem z poziomu Twojego komputera lub też wszędzie tam, gdzie będziesz posiadać
dwa klucze prywatny oraz publiczny, które będą do siebie pasować.
Mam nadzieję, że jeżeli na tym etapie to,
co właśnie zrobiliśmy jest czymś dla Ciebie zupełnie nowym lub też pozwoliło Ci
uporządkować wiedzę, to przynajmniej poświęcisz tutaj kilka minut, aby wykonać
sobie różne polecenia na tym serwerze oraz nawet być może zrobić coś więcej.
W tym momencie jeszcze jeżeli chodzi o sam DigitalOcean to pamiętaj proszę, że od tego
momentu naliczane są opłaty na Twoim koncie za to, że Droplet jest aktywny.
Co więcej istnieje tutaj możliwość
wyłączenia tego Dropletu w zakładce Power, natomiast jest tu wyraźne ostrzeżenie, że
samo jego wyłączenie nie wstrzymuje naliczania opłat.
Jedynym sposobem na to, aby je powstrzymać
jest usunięcie Dropleta, co zasadniczo jest akcją nieodwracalną, a w związku z tym
utracisz wszystkie dane, które na nim się znajdują.
Jeszcze tutaj w zakładce Power znajduje
się bardzo ważna funkcja dotycząca resetowania maszyny i możesz po nią sięgać
w momencie, gdy z jakiegoś powodu Twoja maszyna przestanie działać np.
w wyniku jakichś problemów z pamięcią.
Warto o tym pamiętać i wydaje mi się, że
na ten moment powiedzieliśmy sobie już wszystko, więc możemy iść dalej.
Do usłyszenia za chwilę.