Wprowadzenie
Ten Kurs to 10 godzin przygody z najgorętszą technologią ostatnich lat - platformą Node.js. Jeśli określasz się już mianem Front-end Developera, tworząc strony i aplikacje webowe z użyciem HTML, CSS i JavaScript lub nawet potrafisz pracować z back- endem w innych językach programowania, to jesteś na najlepszej drodze do zmiany pozycji na Full Stack Web Developer. Brzmi nieźle, prawda? Tytułem tym określa się osobę, która zna zarówno technologie klienckie (front-end) jak i serwerowe (back-end). Jeśli zatem czujesz się swobodnie po stronie klienta, to czas pójść dalej. Kurs ten będzie pierwszym, choć dużym krokiem w tym kierunku. Node.js to bowiem technologia serwerowa, lecz wykorzystująca znany Front-end Developerom język JavaScript!
- Omówienie platformy Node.js od podstaw
- Techniki tworzenia aplikacji typu CLI
- Rózne metody tworzenia serwerów sieciowych
- Omówienie wewnetrznej budowy platformy Node.js
- Prace z zewnetrznymi modulami i npm
- Framework express.js i wspólprace z baza danych MongoDB
- Przyklady praktycznych aplikacji
- Mase cennych porad i wskazówek
Co znajdziesz w Kursie?
W kursie tym poznasz platformę Node.js od podstaw, aż po bardziej zaawansowane
koncepcje. Zaczniemy od omówienia czym jest Node, a także jakie może być
zastosowanie tej technologii. Następnie przejdziemy przez proces instalacji i
napisanie swojego pierwszego skryptu.
Już na samym początku dokładnie omówimy tworzenie własnych modułów, gdyż
jest to wiedza niezbędna, by dobrze zrozumieć funkcjonowanie Node. Następnie
dowiesz się czym są zdarzenia, jak działa model “publish / subscribe”, a także czym
jest “event-driven development”. Chwilę później omówimy pracę z buforami,
stream’ami, a także ze standardowym wejściem i wyjściem. Ta wiedza pozwoli Ci
zrozumieć jak tworzone aplikacje mogą otrzymywać od użytkownika dane oraz jak
je wyświetlają.
Praca z Systemem Plików
Niezwykle ważnym rozdziałem będzie ten, poświęcony pracy z systemem plików. Szczególnie dla dewelopera, pracującego dotychczas z językiem JavaScript wyłącznie w środowisku przeglądarki internetowej. Node pozwala bowiem tworzyć nowe pliki, zapisywać w nich dane oraz odczytywać i usuwać pliki i katalogi. Przy wszystkich tych operacjach, niezwykle ważna jest jednak asynchroniczna natura Node. Dowiesz się jak działa, a także jakie są jej zalety.
Na tym etapie nie zabraknie oczywiście praktycznego projektu, którym będzie aplikacja typu CLI (Command Line Interface). Pozwoli nam ona grupowo zmienić nazwy wielu plików, według podanego wzorca.
Tworzenie Serwerów Siecowych
W kolejnym rozdziale poruszymy fundamentalną dla Node kwestię, mianowicie tworzenie serwerów sieciowych. Zaczniemy od najniższego poziomu, tworząc prosty serwer bazujący na protokole TCP/IP. Wiedza w jaki sposób Node radzi sobie z takim zadaniem, pozwoli później lepiej zrozumieć wyższe warstwy, takie jak np. HTTP czy WebSockets. Chwilę później stworzymy swój pierwszy serwer HTTP, do którego będzie można wysyłać zapytania wprost z przeglądarki internetowej. Omówimy również jak w Node wykorzystać bezpieczne szyfrowanie HTTPS.Na tym etapie będziesz już miał solidną wiedzę jak pracować z Node, jednak zanim przejdziemy dalej, zatrzymamy się, by omówić jak dokładnie działa Node.js, a także jak ta platforma została zbudowana. Dwie dość obszerne lekcje, będą być może jednymi z najważniejszych w tym kursie. Dowiesz się w nich czym jest, a także jak działa jednowątkowa pętla zdarzeń, czym jest proces i wątek, a także zobaczysz kod źródłowy Node.js i wszystkie bloki budulcowe, z jakich Node się składa. To naszym zdaniem niezwykle ważny temat, często jednak pomijany w wielu materiałach. Dzięki dogłębnemu zrozumieniu jednowątkowej natury języka JavaScript i asynchroniczności Node, będziesz mógł tworzyć dużo lepsze aplikacje.
Node.js + Express.js + MongoDB
Node.js posiada kilkanaście wbudowanych modułów, z których w dowolnej chwili
można skorzystać. Wszystkie jednak dają nam dużą, niskopoziomową kontrolę, ale
czasami sporo kodu należy napisać, by zrealizować jakieś zadanie. Jest to jednak
świadomy wybór twórców Node, gdyż całą resztę świetnych rozwiązań, dopisuje
nieustannie ogólnoświatowa społeczność deweloperów. Zdecydowana większość
z modułów ląduje w rejestrze npm.
Jest to genialny package manager, który pozwoli nam wyszukiwać, pobierać i
aktualizować niezliczoną ilość modułów. Dowiesz się zatem jak korzystać z npm, a
chwilę później zaczniemy wykorzystywać zgromadzone tam moduły w dalszej
pracy.Jednym z najpopularniejszych modułów jest express.js, który pozwala w bardzo
prosty sposób tworzyć serwery HTTP. Grzechem byłoby zatem z niego nie
skorzystać. Dowiesz się wszystkiego co niezbędne, by zacząć tworzyć własne
aplikacje bazujące na protokole HTTP z użyciem express.js, a także kilku dodatków
do tego systemu. Zobaczysz jak routować zapytania, jak korzystać z middleware
czy serwować statyczne pliki. Następnie omówimy współpracę z bazą danych
MongoDB i z jej wykorzystaniem stworzymy API typu REST. Stworzona aplikacja
pozwoli odczytywać dane z bazy i przesyłać je do klienta w formacie JSON, a także
dodawać nowe dane, aktualizować i usuwać je. Wszystko to zgodnie z dobrymi
praktykami pracy z REST.
Praktyczny Projekt i ES6
Chwilę później czeka Cię kolejny praktyczny projekt - skracacz linków. Stworzymy
wspólnie aplikację, która pozwoli skrócić dowolny adres URL do krótkiej formy.
Oczywiście będzie działać również w drugą stronę! Kiedy przejdziemy pod skrócony
adres, przekieruje nas do odpowiedniej witryny.
Node.js to platforma wręcz stworzona do tworzenia aplikacji typu real-time, dlatego
w kolejnym rodziale podejmiemy temat technologii WebSockets. Dowiesz się jakie
są jej zalety, a także jak pracować z nią po stronie serwera i klienta. Tutaj czeka nas
kolejny praktyczny, niezwykle ciekawy projekt. Wykonamy bowiem czat grupowy.
Aplikacja ta pozwoli dowolnej ilości użytkowników podłączyć się do czatu podając
swój nick, a następnie wysyłać widoczne dla wszystkich wiadomości.
Zaimplementujemy nawet takie rozwiązania jak wyświetlanie statusów o
dołączeniu kogoś do czatu, a także o jego opuszczeniu.W przedostatnim rodziale tego kursu podejmiemy tematykę dobrych praktyk pracy
z Node.js. Na początku omówimy najważniejsze konstrukcje nowej specyfikacji
EcmaScript 2015, które są znakomicie wspierane w Node. Chwilę później omówimy
jak korzystanie z Promises uprości, a także ulepszy nasz kod. Wśród dobrych
praktyk nie zabraknie również informacji o debugowaniu aplikacji. Zobaczysz
sprawdzone sposoby, by znaleźć błędy lub lepiej, krok po kroku, zrozumieć jak
działa napisany wcześniej kod. Dowiesz się również jak pracować z błędami, by
Twoje aplikacje działały w sposób przewidywalny.
Praktyczny projekt z Git i Heroku
Ostatni rozdział w całości został poświęcony temu, co zwykle jest pomijane w
innych materiałach, mianowicie wdrażaniu aplikacji do produkcji. Przez cały ten
kurs pracować będziemy lokalnie, lecz kiedy aplikacje są już gotowe, wypadałoby
udostępnić je światu. Wdrażanie aplikacji napisanych z użyciem Node.js nie jest
jednak tak oczywiste, jak np. wgrywanie WordPress’a u wybranego hostingodawcy.
Ty będziesz miał jednak możliwość zobaczyć, jak wdrożyć napisany przez nas
grupowy czat na platformie Heroku. Jest to bardzo popularny serwis działający jako
PaaS (Platform as a Service). Za darmo będziesz mógł w ciągu kilku chwil
uruchomić swoją aplikację.Zobaczysz o co należy zadbać, by wszystko poszło
gładko.
Serwisy typu PaaS dbają o bardzo wiele aspektów wdrażania i serwowania naszych
aplikacji, takich jak bezpieczeństwo oraz nieustanną dostępność. Mają jednak
pewne ograniczenia. Z tego powodu, dowiesz się również jak wdrożyć swoją
aplikację na serwerze wirtualnym VPS z systemem Ubuntu Server. Takie rozwiązanie daje nam całkowitą kontrolę, ale także obarczone jest większą
odpowiedzialnością. Zaczniemy od instalacji na serwerze platformy Node.js,
systemu kontroli wersji GIT, a także innych niezbędnych modułów
Konfiguracja środowiska i porady
Następnie zobaczysz jak skonfigurować swoje lokalne środowisko tak, by za
pomocą GIT’a wysyłać kod do zdalnego serwera, a potem jednym poleceniem
wdrażać go do produkcji. Dowiesz się również jak jednocześnie serwować wersję
produkcyjną oraz developmencką.
W rodziale tym poruszymy również inne kwestie, takie jak procesy potomne czy
tworzenie klastrów. Dzięki tej wiedzy, będziesz mógł maksymalnie wykorzystać
dostępne zasoby serwera.
Na sam koniec tego kursu rzucimy okiem również na inne, nie przedstawione
wcześniej zastosowania Node, a także nakreślimy dalszą drogę nauki w tym
zakresie.
Dla kogo jest ten kurs?
Kurs ten jest dla wszystkich osób, które dobrze czują się w technologiach frontendowych,
tj. HTML, CSS i JavaScript, a teraz chcą rozpocząć swoją przygodę z
back-endem. Im zatem lepiej znasz język JavaScript, tym więcej wyciśniesz z
Node, natomiast nie jest wymagana bardzo zaawansowana wiedza z zakresu tego
języka.
Dlaczego wybrać właśnie ten kurs?
- Kurs wideo to najbardziej efektywna a zarazem najprzyjemniejsza forma nauki. Jest on tak prowadzony, byś cały czas mógł go śledzić z zainteresowaniem i zaangażowaniem, a także czerpać satysfakcję ze zdobytej wiedzy!
- Wiedza, którą otrzymujesz w tym kursie, to nie tylko sucha teoria, ale również wskazówki od praktyka z wieloletnim doświadczeniem, dzięki którym dużo łatwiej będzie Ci opanować materiał i pracować efektywniej.
-
Uczysz się na praktycznych przykładach. Kurs, który masz przed sobą to esencja praktycznej wiedzy i doświadczenia a także wzorów, które oszczędzą Ci godziny pracy i poszukiwań.