w Praktyce
9 godz. 47 min · JavaScript · Full-stack i Programowanie
Piotr PalarzWeb DeveloperW pierwszym rozdziale tego kursu poznasz bardzo dokładnie koncepcje programowania zorientowanego obiektowo. W jednej z lekcji, omówimy wszystkie z nich na przykładzie pseudo-kodu, niezwiązanego bezpośrednio z językiem JavaScript. Dzięki temu zrozumiesz, jak realizowane jest programowanie obiektowe w wielu popularnych językach programowania. Dowiesz się czym jest klasa, obiekt, instancja, właściwości, metody, a także zrozumiesz takie pojęcia jak dziedziczenie, polimorfizm, abstrakcja czy enkapsulacja. Następnie przejdziemy już do języka JavaScript i do zrozumienia tego, w jaki sposób powyższe koncepcje są w nim zaimplementowane. Język ten nie jest bowiem w 100% klasycznie obiektowy, jak np. język PHP. Co jednak bardzo istotne, JavaScript implementuje tzw. dziedziczenie prototypowe, którego bardzo dogłębne zrozumienie, gwarantuje zrozumienie całego języka JavaScript. Dowiesz się zatem czym są konstruktory i jak je tworzyć, a także jak korzystać z prototypu funkcji. Dzięki temu będziemy mogli wykorzystać obiektowość do własnych celów, co później w praktycznych przykładach uczynimy.Na przestrzeni kilku lekcji zobaczysz krok po kroku, jak w języku JavaScript zaimplementować dziedziczenie wielokrotne. Taka wiedza absolutnie otwiera oczy na zależności rządzące obiektami w tym języku. Dowiesz się również jak rozszerzać wbudowane konstrukcje języka JavaScript czy Obiektowego Modelu Dokumentu, a także kiedy powinniśmy to robić. Omówimy problemy, jakie mogą się pojawiać przy korzystaniu ze słowa kluczowego this, a także sposoby ich rozwiązania. Poznasz 3 bardzo ważne metody funkcji: call, apply i bind.JavaScript ma wiele specyficznych cech, a jedną z nich są tzw. domknięcia. W jednym z rozdziałów zobaczysz, do czego one służą i kiedy powinniśmy z nich korzystać. Dopełnimy tym również wiedzę związaną z programowaniem obiektowym i tzw. prywatnością.Rozdział o obiektowości został celowo umieszczony na samym początku kursu, gdyż zrozumienie tych koncepcji pozwala patrzeć zupełnie inaczej na wszystkie pozostałe. Po tym rozdziale przejdziemy do omówienia bardzo popularnego, lekkiego formatu wymiany danych JSON. Dowiesz się jak wygląda składnia tego formatu, a także jak współpracuje on z językiem JavaScript.Następnie przejdziemy do bardzo ekscytującego tematu, jakim jest technologia AJAX. Dzięki niej możemy wysyłać zapytania do serwera i pobierać dane, bez przeładowywania witryny. Do zrozumienia AJAXa niezbędne jest jednak rozumienie działania protokołu HTTP, na którym opiera się sieć www. Z tego powodu, jedna z lekcji została w 100% poświęcona HTTP i dowiesz się z niej jak wysyłane są żądania i odpowiedzi, a także tzw. nagłówki, które będą dla nas niezwykle istotne. Chwilę później omówimy również bardzo ważne mechanizmy: Same- origin policy i CORS, które blokują możliwość wysyłania żądań AJAX do pewnych serwerów. Kiedy już będziesz rozumiał te niezwykle istotne koncepcje, przejdziemy do napisania pierwszego kodu, wysyłającego asynchroniczne żądanie do serwera. Następnie dowiesz się jak wysyłać, a także odbierać dane z serwera, umieszczać je na stronie oraz śledzić postęp zarówno wysyłania, jak i pobierania danych.W tym rozdziale na przestrzeni kilku lekcji napiszemy swoją własną bibliotekę AJAX, która pozwoli w niezwykle łatwy sposób wysyłać i odbierać dane. Skorzystamy w niej już w kolejnej lekcji, gdzie zobaczysz, jak wysłać wiadomość e-mail z użyciem AJAX i PHP po stronie serwera. Gotowy skrypt, będziesz mógł umieścić na własnej stronie internetowej. Na zakończenie tego rozdziału omówimy również dokładnie niezwykle sprytną technikę o nazwie JSONP, które pozwala wysyłać tzw. żądania “cross-origin”. Przekonasz się dlaczego taka technika powstała i jak współpraca klienta i serwera potrafi obejść zabezpieczenia przeglądarek.Kolejnym tematem omówionym w kursie będą Cookies, czyli tzw. ciasteczka. Dowiesz się czym są, w jakim celu istnieją, a także jak są ustawianie przez serwer. Co ciekawe, również z poziomu języka JavaScript będziemy mieli do nich dostęp, a zatem zobaczysz jak je ustawiać i odczytywać. Na tym etapie przyda nam się wiedza zdobyta w lekcji o protokole HTTP.W kursie znajdziesz również rozdział poświęcony w 100% wyrażeniom regularnym. To mechanizm języka, który pozwala dopasowywać tekst do definiowanych przez nas wzorców. Wyrażenia regularne potrafią być bardzo zaawansowane i odstraszać, dlatego rozłożymy je na czynniki pierwsze, byś dokładnie je zrozumiał. Na przestrzeni wielu lekcji dowiesz się jakie są specjalne symbole wykorzystywane przy wyrażeniach regularnych, czym są kwantyfikatory, kotwice czy np. grupowanie. Następnie przejdziemy do wykorzystania wyrażeń regularnych w języku JavaScript. Poznasz zarówno metody obiektu RegExp jak i te dostępne na obiekcie String. Dzięki nim będziemy mogli wyszukiwać np. adresów e- mail w podanym tekście, usuwać je lub zamieniać na coś innego. Jako praktyczny projekt, stworzymy “Antybluzgacz”. Wykorzystamy do tego celu programowanie obiektowe, a sama aplikacja będzie pozwalała filtrować wpisywany przez użytkownika tekst wiadomości i wyłapywać w nim niecenzuralne słowa. Wszystkie z nich zamienimy na przypadkową reprezentację znaków, np. $#!@%^. Ten projekt pokaże Ci nie tylko jak korzystać z wyrażeń regularnych, ale także jak profesjonalnie pracować z kodem JavaScript.W przedostatnim rozdziale tego kursu znajdziesz lekcje związane z dobrymi praktykami pracy. Omówimy tzw. “strict mode” języka JavaScript, zagadnienia związane z minifikacją i konkatenacją skryptów, sprawdzaniem poprawności pisanego kodu oraz delegacją zdarzeń DOM.Na końcu kursu znajdziesz 10 krótkich lekcji z serii Tips & Tricks, które przybliżą Ci wiele ciekawych konstrukcji języka JavaScript, a także technik na rozwiązanie różnych problemów. Zobaczysz np. jak wczytać obrazy w tle czy jak wyświetlić na pasku tytułowym witryny migające powiadomienie.Podsumowując, kurs ten jest dopełnieniem wiedzy z zakresu języka JavaScript i Obiektowego Modelu Dokumentu z kursu “JavaScript od Podstaw”. Poprzedni kurs nie jest wymagany, lecz jego przerobienie z pewnością pozwoli dużo lepiej przyswoić wiedzę z tego kursu, gdyż były one przygotowywane równocześnie. Oba te materiały, pozwolą od zera, wskoczyć na naprawdę wysoki poziom rozumienia języka, a także dobrych praktyk pisania kodu.
Do tego kursu mogą jednak przystąpić wszystkie osoby, które znają już podstawy języka HTML, CSS i JavaScript i chcą poszerzyć swoją wiedzę, a także spojrzeć zupełnie inaczej na ten język.
Zanim przejdziemy już do konkretnych tematów tego kursu, chciałbym powiedzieć kilka słów na temat tego,
jak ten kurs został ułożony i dlaczego. Kurs został podzielony na kilka rozdziałów, które wyglądają mniej
więcej tak i są one ułożone właśnie w tej kolejności. A więc zaczniemy od programowania obiektowego
i dziedziczenia prototypowego.
Będzie to temat dla ciebie, jeżeli przyszedłeś tutaj z kursu JavaScript od podstaw albo jeżeli nie jesteś jeszcze
zaawansowany w języku JavaScript, być może na początek trochę skomplikowany.
Natomiast wierzę, że na tyle dobrze wszystko wytłumaczyłem, że bez trudu jesteś w stanie to zrozumieć.
Natomiast dlaczego zaczynamy od tematu nieco bardziej skomplikowanego niż pozostałe, które tutaj widzisz.
Otóż dlatego że programowanie obiektowe, ale przede wszystkim dziedziczenie prototypowe w języku JavaScript
jest moim zdaniem najważniejszą rzeczą, jaką należy zrozumieć na temat języka Java Script.
Jeżeli już to zrozumiesz, to wszystkie inne konstrukcje będą dla ciebie bardziej oczywiste.
Oczywiście mógłbym cię nauczyć JSON-a, AJAX-a czy wyrażeń regularnych i nie musiałbyś znać dziedziczenia
prototypowego
i mógłbyś z nich korzystać. Natomiast dzięki temu, że na początku omówimy sobie programowanie obiektowe i dziedziczenie
prototypowe, będę mógł w kolejnych rozdziałach do tego wracać
i na każdym etapie, gdzie będziemy pisać jakąś konstrukcję, będę mógł ci pokazać -
zobacz, tutaj to działa w taki sposób właśnie dlatego, że dziedziczy z prototypu z tego i tego miejsca.
Więc nie tylko będziesz potrafił posługiwać się tymi konstrukcjami, ale przede wszystkim będziesz świetnie
rozumiał, skąd wszystko się bierze.
Moim zdaniem jest to sprawa najważniejsza, nie tylko wiedzieć, jak coś działa i potrafić to wykorzystać,
ale przede wszystkim bardzo dogłębnie rozumieć, skąd wzięła się taka i taka konstrukcja i dlaczego jest
tak a nie inaczej.
Taka wiedza jest naprawdę bardzo satysfakcjonująca, kiedy patrzymy później na nasz kod.
Rozdziały zostały, jak wspomniałem, ułożone nieprzypadkowo, a więc w kolejnym rozdziale poznamy format
wymiany danych JSON po to, aby później poznać AJAX, czyli możliwość wysyłania żądań do serwera bez
przeładowywania przeglądarki
i tam właśnie z JSON-a będziemy korzystać.
W tym rozdziale dowiesz się również, jak działa protokołu HTTP i później będziemy mogli przejść do rozdziału
o ciasteczkach, które właśnie korzystają z tego protokołu. A więc tutaj wiedza będzie przez ciebie przyswajana
właśnie w takiej kolejności, aby jak najlepiej rozumieć każde kolejne zagadnienie.
Następnie chciałbym omówić bardzo dokładnie wyrażenie regularne w języku JavaScript i będzie to bardzo
ciekawy rozdział również z praktycznymi przykładami.
Na koniec przejdziemy do sobie rozdziału o kilku dobrych praktykach pracy z językiem JavaScript.
Tam powiem ci między innymi. czym jest street mode.
No i na sam koniec tego kursu dziesięć krótkich lekcji tips and tricks, z których zobaczysz kilka bardzo ciekawych
trików, z których będziesz mógł korzystać przy pisaniu własnego kodu.
Co jest dla mnie jeszcze bardzo ważne, jeżeli znasz już podstawy języka JavaScript i sięgnąłeś po ten kurs,
ale nie przerabiałeś mojego kursu, który ukazał się razem z tym kursem, czyli JavaScript od podstaw,
to bardzo serdecznie zachęcam cię do tego, abyś to zrobił. Dlatego że ja przygotowywałem obydwa kursy,
aby jeden dopełniał drugi i to, czego nie zdążyłem powiedzieć w pierwszym kursie, pokazuję bardzo dokładnie
w tym kursie.
Dlatego jakaś wcześniejsza wiedza JavaScript jest oczywiście wymagana i według mnie jako autora obydwu
tych kursów byłoby najlepiej, abyś najpierw przerobił kurs JavaScript od podstaw, a później sięgnął po
ten kurs.
Mam nadzieję, że bardzo skrupulatnie przerobisz wszystkie przykłady, które pokazuję w tym kursie i że bardzo
wiele dowiesz się na temat języka JavaScript.
Do usłyszenia zatem już w kolejnych lekcjach.