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.
Przygotowałem tutaj prostą aplikację WG jest, która wykorzystuje grę SQL do tego,
aby pobierać dane, które wyświetlamy wewnątrz komponentów.
Tutaj oczywiście stack wykorzystanych narzędzi będzie różnić się w zależności od
frameworka, z którego korzystasz na froncie.
Natomiast ogólna zasada jest taka, że potrzebujemy klienta gra SQL, z pomocą
którego będziemy w stanie nawiązać połączenia z naszym serwerem.
W tym konkretnym przypadku sprowadziło się to do tego, aby w pliku głównym naszej
aplikacji wykorzystać interfejs udostępniony przez pakiet Apollo w celu
przygotowania połączenia z naszym serwerem.
Gra SQL i w moim przypadku znajduje się on na serwerze lokalnym.
Następnie wykorzystujemy tutaj również inne boty w celu zapewnienia wydajności
wynikającej z wykorzystania pamięci podręcznej.
No i na samym końcu mamy samo utworzenie klienta, wykorzystując zarówno adres URL,
jaki dodatkową konfigurację w pamięci podręcznej.
W momencie, gdy mamy już tutaj takie połączenie, wystarczy, że w momencie
tworzenia naszej aplikacji utworzymy naszą aplikację, a wewnątrz metody Setup
przekażemy nasz provider w następujący sposób.
W rezultacie gra SQL będzie dostępny w
ramach całej naszej aplikacji i wszystkich komponentów, które wchodzą w jej skład.
Oznacza to, że jeżeli przeniesiemy się teraz do dowolnego komponentu, będziemy w
stanie wykorzystać funkcję SQL, która umożliwi nam napisanie zapytania SQL,
które z pomocą już Query zostanie przekazane na serwer, a my z pomocą
funkcji Completed będziemy w stanie obserwować te zmiany i ewentualnie
wyświetlić je w momencie, gdy już zostaną pobrane.
Rezultat jest taki, że gdy uruchomimy
naszą aplikację, zostanie wyświetlona lista użytkowników i jeżeli przejrzymy
sobie zakładkę Network to zobaczymy, że faktycznie informacje te pochodzą z
Endpoint SQL, gdzie otrzymaliśmy zestaw danych pasujący do zapytania.
Pomimo tego, że w naszej bazie znajduje
się więcej niż jeden użytkownik, został zwrócony tylko jeden.
Wynika to z faktu, że do naszego zapytania
przekazaliśmy dodatkowe parametry, które zostały odpowiednio zinterpretowane i
wykorzystane przy przygotowaniu odpowiedzi.
Jeżeli teraz podajemy identyfikator
drugiego użytkownika, no to naturalnie wyświetli się on na naszej liście.
Także jeżeli będziesz decydować się już na wykorzystanie.
Gra SQL a w Twojej aplikacji to przede
wszystkim to co stoi przed Tobą to umiejętność pisania zapytań gra SQL.
I tutaj akurat tak jak pokazywałem w poprzedniej lekcji, jest to o tyle proste,
że możesz w tym celu wykorzystać playground.
I tutaj akurat w tym przypadku będziemy
potrzebowali zdefiniować również zmienne, które trafią do naszego zapytania.
Zatem dodałem je tutaj po prostu ręcznie.
Tak napisane zapytanie możemy wykonać, aby od razu podejrzeć rezultat.
Naturalnie, jeżeli zmienne się tutaj zmienią, to zmieni się również odpowiedź.
Natomiast to, co próbuję Ci tutaj pokazać
polega na szybkim wykorzystaniu playground w celu przygotowania zapytania, które
możesz po prostu bezpośrednio wkleić do swojej aplikacji.
Naturalnie te wszystkie elementy, takie jak np.
parametry oraz ich typy muszą być zdefiniowane po stronie serwera.
Zatem w przypadku, gdy projektujesz go
samodzielnie, musisz w pierwszej kolejności to wszystko odpowiednio
zaprojektować, aby następnie móc wykorzystać to w frontendu.
Zatem tak naprawdę jeżeli chodzi o wykorzystanie SQL a po stronie frontendu,
to w przeciwieństwie do REST wymaga on nawiązania połączenia z naszym serwerem.
Aczkolwiek można to porównać do wykorzystania np.
Inter sektora, które konfiguruje
połączenie z zasobami udostępnionymi przez API.
Natomiast drugą, znacznie bardziej
widoczną różnicą jest fakt, że zamiast wysyłać zapytania HTTP, przygotowujemy
tutaj zapytania do gravel, a następnie podłączamy je albo do widoków, albo po
prostu do akcji, która jest w tych widokach są wykonywane, czyli np.
usuwanie bądź edytowanie danych.
Niestety, jeżeli chodzi o nasz zakres materiału, nie będziemy skupiać się na
tym, aby uczyć się tego, w jaki sposób konstruować zapytania SQL po stronie
frontendu, jak i też konfiguracji serwera SQL po stronie backendu.
Jeżeli jednak ten temat Cię zainteresuje, zapraszam Cię do dostępnych materiałów na.
Edu.
PL, które pokażą Ci zarówno jedno, jak i drugie zagadnienie.
Tymczasem w dużym skrócie przede wszystkim
interesuje Cię to, aby wykorzystać klienta SQL po stronie frontendu i najczęściej
będzie to Apollo, który jest dostępny zarówno dla View jak i ja.
Ostatecznie od siebie dodam, że umiejętność pisania zapytań SQL jest
niezwykle przydatna nie tylko na potrzeby rozwoju aplikacji, ale również korzystania
z zewnętrznych API, które możemy potrzebować nawet na potrzeby chwili.
Do tego, aby uzyskać dostęp do jakichś
informacji, które są dostępne tylko za pośrednictwem interfejsu gra wgl.
Z kolei sama umiejętność projektowania serwerów SQL już w większości przypadków
nie okazuje się tak niezbędna, o ile oczywiście rozwijana przez Ciebie
aplikacja nie uwzględnia wykorzystania tej technologii.
Więc jeżeli chodzi o gra w call na froncie to byłoby już na tyle.
W związku z tym dzięki za uwagę i do usłyszenia w kolejnej lekcji.