Najważniejsze zagadnienia, które musisz znać
5 godz. 53 min · JavaScript · Full-stack i Programowanie
Adam GospodarczykPrzesyłanie oraz transformacja danych to jeden z najważniejszych elementów działania każdej aplikacji. Dobre zrozumienie tego w jaki sposób odbywa się ten proces, daje równocześnie lepsze zrozumienie całej struktury oraz podejmowania decyzji projektowych. W tym kursie znajdziesz lekcje, które pozwolą Ci uporządkować wiedzę na temat protokołu HTTP oraz formatów wymiany danych.
REST oraz GraphQL to nadal nieodłączone zagadnienia tematu wymiany informacji w kontekście aplikacji webowych. Pomimo tego, że ich koncepcje zwykle są bardzo dobrze opisane w różnych źródłach, tak ich wykorzystanie "na produkcji" potrafi sprawić problemy. W szczególności gdy weźmiemy pod uwagę, wyjątki oraz fakt, że nie każda aplikacja będzie wymagać implementacji REST czy GraphQL w 100%. W tym kursie znajdziesz wiele praktycznych wskazówek związanych z pracą z REST API oraz wprowadzenie do pracy z GraphQL.
Niektóre błędy w aplikacji są bardzo pożądane, w szczególności gdy jasno informują użytkownika o tym, co się wydarzyło oraz o tym, co może z tym zrobić. Pomimo tego, że w wielu przypadkach opracowanie komunikatów leży w rękach osoby odpowiedzialnej za copywriting (i/lub ux writing), tak sama implementacja tych komunikatów odbywa się po stronie kodu. Nie rzadko okazuje się, że poprawna i skuteczna walidacja danych oraz obsługa błędów nie jest oczywista w "produkcyjnych" sytuacjach. W tym kursie znajdziesz najczęściej spotykane problemy oraz sposoby ich rozwiązania.
Bazy danych są praktycznie nieodłączną częścią każdej aplikacji. W roli full-stacka prędzej czy później przyjdzie Ci z nimi pracować a nie rzadko nawet projektować oraz rozbudowywać ich struktury. W tym kursie znajdziesz informacje o bazach danych, które pozwolą Ci je zrozumieć oraz od razu poznać użyteczne techniki, które pomogą Ci w pracy z nimi, zarówno na produkcji jak i w środowisku lokalnym czy testowym.
Nie wszystkie informacje w aplikacji są publiczne. Niektóre wprost nie mogą takie być. Z tego powodu niezbędne są sposoby na to aby poznać a potem weryfikować tożsamość użytkownika, by na jej podstawie przydzielać mu dostęp wyłącznie do zasobów, do których odczytywania posiada uprawnienia. Istnieje wiele technik, które umożliwiają zarządzanie dostępem do danych i w tym kursie poznasz najważniejsze z nich. Dowiesz się nie tylko w jaki sposób zabezpieczać dane ale poznasz też najpopularniejsze sposoby na to aby te zabezpieczenia łamać i obchodzić. Mając świadomość takiej możliwości, będziesz w stanie lepiej podejmować decyzje o tym jak projektować dostęp do informacji.
Istnieją problemy charakterystyczne dla niemal każdej aplikacji. W związku z ich powszechnością, istnieje też szereg rozwiązań lub sposobów na to, aby możliwie zredukować ich następstwa. Na przestrzeni lekcji tego kursu zobaczysz wiele przykładów, które pomogą Ci w codziennej pracy a niekiedy nawet, pozwolą uniknąć błędów, których konsekwencje nie zawsze występują natychmiast.
Kurs powstał z myślą o osobach, które chcą rozwijać się w roli full-stack web developera / developerki, przeprowadzając przez najważniejsze zagadnienia z obszaru wymiany, transformacji oraz przechowywania informacji w aplikacji oraz pomiędzy aplikacjami. Jeżeli potrzebujesz zobaczyć szeroką perspektywę tego, w jaki sposób dane przepływają pomiędzy różnymi częściami aplikacji, lub ugruntować swoją wiedzę na ten temat, to ten kurs jest miejscem, którego szukasz.
Cześć z tej strony Adam Gospodarek pl.
Programując przez ponad 10 lat gównie w roli web developera miałem okazję
bezpośrednio doświadczyć każdego obszaru projektowania aplikacji.
Nierzadko mam okazję realizować się
również w rolach wykraczających poza samo programowanie.
Teraz łącząc te wszystkie perspektywy opracowałem materiał, który pozwoli Ci
spojrzeć na proces powstawania aplikacji z szerokiej, technicznej perspektywę.
W jednym miejscu zebrałem najważniejsze koncepcje oraz umiejętności, które
powinien posiadać każdy full stack developer i take developera.
Sam kurs rozpoczniemy od prawdopodobnie najważniejszego elementu każdej aplikacji
bezpośredniego powiązanym z komunikacją i wymianą danych.
Mam tutaj na myśli protokół HTTP, dostępne
w nim metody, statusy odpowiedzi oraz formaty danych.
Oczywiście zdaję sobie sprawę z tego, że w
dużym stopniu mogą być to tematy, które są Ci już znane.
Jednocześnie może to być dobra powtórka,
ale też okazja do głębszego poznania niektórych zagadnień.
Dobrym przykładem mogą być sposoby
przesyłania danych w różnych formatach, uwzględniających konieczność ustawiania
właściwych nagłówków struktury ciała, zapytania oraz obsługi odpowiedzi.
Dalszym krokiem będzie uchwycenie tematu komunikacji w kontekście całej aplikacji.
To perspektywa uwzględniająca zakres od
momentu wpisania przez użytkownika adresu w przeglądarce, przez obsługę zapytania po
stronie web serwera, potem w routingu aplikacji, sięgnięcia po informacje z bazy
danych, aż do momentu przygotowania docelowej odpowiedzi.
Spojrzymy na temat zarówno z perspektywy frontendu, jak i backendu oraz
poszczególnych warstw, które można spotkać po jednej oraz drugiej stronie.
Przy okazji zwracam uwagę na najczęściej
pojawiające się w związku z tym wyzwania oraz problemy, na które odpowiedzi
nierzadko trudno jest znaleźć w pierwszym z brzegu wątku Stack Overflow.
Mówiąc o problemach mam na myśli chociażby wątek, kod czy sposób zaprojektowania
procesu autoryzacji oraz uwierzytelnienia użytkowników.
Z tematem komunikacji w aplikacji webowej
bezpośrednio łączy się też wątek rest API oraz agrafki URL.
W przypadku tego pierwszego, poza
podstawową teorią, zwrócimy uwagę na często spotykane sytuacje, które
wymagają od nas na zdjęcia reguł sugerowanych domyślnie przez sam REST.
Mam na myśli chociażby sytuację, w której konieczne jest zaprojektowanie endpoint,
które muszą wprost złamać niektóre ze wspomnianych zasad.
Sytuacja jeszcze bardziej się komplikuje,
gdy musimy wziąć pod uwagę kwestie bezpieczeństwa danych.
Ograniczenia dostępu na podstawie Adult
czy ograniczenia przepustowości w celu ochrony przed zbyt dużą liczbą zapytań.
Poza samym sposobem zaprojektowania
struktury komunikacji oraz formatu przesyłania danych konieczne jest również
zadbanie o komunikaty, jakie otrzymuje użytkownik, końcowe oraz oczywiście to,
jakie informacje będziemy przechowywać w logach naszej aplikacji.
Pomimo tego, że części z tych wątków w tym razem nie będziemy mieli okazji zobaczyć w
praktyce, to i tak otrzymasz ode mnie szereg wskazówek, które możesz
wykorzystać, gdy bezpośrednio zmierzysz się z tymi tematami w swojej pracy.
No i ostatnim już wątkiem, który dopełnia temat komunikacji w aplikacji jest sposób
przechowywania informacji po stronie bazy danych.
Tutaj zaczniemy od początku, czyli decyzji
o tym, jaką bazę danych warto wybrać do naszej aplikacji.
Potem przejdziemy przez najważniejsze elementy projektowania, ich strukturę oraz
tego, jak efektywnie przechowywać dane, by móc później z nimi elastycznie pracować.
Ponownie zwrócimy uwagę na najczęściej
popełniane błędy oraz prawdopodobnie najważniejszy temat, jakim są zasady pracy
z produkcyjną bazą danych, w przypadku której mamy już do czynienia z realnymi
informacjami zapisywany mi przez użytkowników.
Tutaj ponownie nie będziemy mieli okazji
przyjrzeć się realnym sytuacjom, ponieważ wymagałoby to bezpośredniego dostępu do
dużych projektów, ale i tak sama świadomość tego, gdzie należy patrzeć oraz
na co warto zwrócić uwagę, z pewnością okażą się bardzo przydatne.
Myślę, że możesz popatrzeć na te kursy
jako na źródło, dzięki któremu uporządkuje sobie wiele różnych tematów, z którymi
spotykasz się praktycznie każdego dnia swojej pracy.
Poza tym nawet jeżeli teraz pracujesz jako frontend, backend lub full stack developer
czy developer, nadal istnieje wysokie prawdopodobieństwo,
że w tym kursie znajdziesz coś dla siebie, co bezpośrednio ułatwi Ci pracę.
Właśnie dzięki szerokiemu spojrzeniu na
proces tworzenia aplikacji w tej chwili nie mam już nic więcej do
dodania i po prostu zapraszam Cię do obejrzenia kolejnej lekcji.
Do usłyszenia za moment.