od Podstaw
6 godz. 26 min · Go · Full-stack i Programowanie
Piotr KrzesajW Go wszystko opiera się o typy. Czym one są? Tak zwane typy proste(string, int, float itd.) to tylko początek, interfejsy, struktury i nie tylko. Pokażę Ci jak używać wielu wątków Go i jakie są sposoby komunikacji między nimi, a także opowiem i pokażę na praktycznych przykładach jakie zagrożenia niesie ze sobą wykorzystywanie wielowątkowości.
W Go nie mamy obiektowości znanej z wielu innych języków. Posiada zalążki obiektowości ale sprawia to wielu osobom problemy jak podejść do architektury aplikacji. Nauczę Cię jak podejść do funkcyjności w taki sposób aby wciąż nawet duże aplikacje były łatwo rozwijalne lub co ważniejsze, była możliwość podzielenia ich na mniejsze mikroserwisy gdy zajdzie taka potrzeba.
Wśród programistów można usłyszeć głosy że w Go wielowątkowość jest świetnie rozwiązana i trudno się z tym nie zgodzić ale warto pamiętać że nasze mózgi działają jednowątkowo i często pomijamy zagadnienia takie jak wyścig wątków, deadlock i inne wyzwania, które stawia przed nami praca na dzisiejszych procesorach. Pokażę i wytłumaczę Ci w praktyce większość z nich i jak sobie z nimi radzić i na co uważać. Jeśli nie pracowałeś z językami wielowątkowymi to ta sekcja jest specjalnie dla Ciebie.
Zastanawiałem się wiele razy czy nie istnieje taka technologia w której piszę sobie jeden pliczek i z tego pliku do każdego języka mogę wygenerować sobie klienta i serwer jedną komendą. To jest w wielkim skrócie GRPC, nie musisz się przejmować czy używasz HTTP 1.1/2.0, czy używasz websocketów do transmisji, czy przesyłasz dane w formacie JSON, XML, Protobuf, czy jest moje API kompatybilne wstecz. Tym wszystkim zajmuje się GRPC. Wyjaśnię Ci czym dokładnie jest, dlaczego jest super i wreszcie jak tego używać razem z językiem Go. Napiszemy praktyczny projekt chatu w którym wykorzystamy funkcję server-streaming.
Pisząc aplikację chcemy aby uruchamiała się ona tak samo niezależnie czy uruchamiamy ją na Linuxie, macOS czy na Windowsie i z pomocą przychodzi nam Docker. Pokażę Ci jak z gotowej aplikacji napisanej w Go stworzyć obraz Dockerowy aby móc go uruchamiać na swoim komputerze bądź serwerze. Pokażę Ci również jak nasz obraz Dockerowy połączyć z bazą danych za pomocą Docker Compose aby móc cieszyć się działającą aplikacją uruchamianą jedną komendą.
Kurs Go nie mógłby obejść się bez serwera HTTP stworzonego tylko z pomocą biblioteki wbudowanej w język Go. Dokładnie tak, nie musisz instalować nic poza językiem i już możesz tworzyć serwery co jest świetną wiadomością. Następnie pokażę Ci popularną bibliotekę Gin do tworzenia serwerów. Dzięki temu zobaczysz różnice i ocenisz czy warto zostać przy wbudowanej bibliotece czy może używać zewnętrznych.
Jak w każdym języku serwerowym tak i w Go możemy się podłączyć pod bazę danych. Krok po kroku wyjaśnię Ci jak to zrobić prosto i przyjemnie używać baz SQL, które od dziesiątek lat cieszą się niezwykłą popularnością. Migracje, zapytania czy dbanie o połączenie to nie będzie dla Ciebie nic trudnego.
Ten Kurs powstał z myślą o osobach, które chciałyby poszerzyć swoją wiedzę o język Go. Zakłada on że posiadasz już wiedzę z minimum jednego innego języka programowania i wiesz w jaki sposób działa komunikacja po protokole HTTP. Możesz też znać Go i chcieć zobaczyć jak dzielić programy na paczki tak aby były łatwo rozwijalne w przyszłości.
W poprzedniej lekcji stworzyliśmy naszego
Phila który będzie nam budował naszą aplikację w Google.
W tej lekcji stworzymy
pozach które postawi nam bazę danych taką jaką chcemy i połączy naszą bazę do naszej
aplikacji aby stworzyć taki konto stworzymy nowy plik o nazwie Dr Jan.
I wkraczamy tam.
Przygotowany przeze mnie które tutaj się znajduje.
Oczywiście będzie on dołączony do tej
akcji a my w tym momencie o mówimy tutaj na samej górze mamy wersję 8 to jest
wersja której będziemy używali czy wersja pauza a następnie będziemy mieli serwisy.
Pierwszym serwisem który stworzymy to
będzie AP i budujemy kropkę i co oznacza że to będzie kropka.
To oznacza że
stworzy i zbuduje nam naszego figla a jeśli
się to nie uda no to oczywiście nie uruchomi się to
następnie jest komenda Is On Fire i oznacza to tyle że jeśli nasza aplikacja
się zatrzyma to automatycznie nie Muzyka startuje.
Następnie oznaczałby że ta aplikacja zależy od bazy danych a bazę
danych mamy tutaj niżej postawioną czyli jeśli nasza baza przestanie działać
to on będzie starał się ją uruchomić jeszcze raz.
Następnie udostępniamy porty.
I tutaj oznacza to że Udostępniamy ponad 80 80 i map czujemy ten
port na 80 83 jeśli piszemy 80 to podczas próby połączenia się do naszego komputera
on wszystkie zapytania z portu 80 przy 80 80.
Zmieńmy to żeby to działało wcześniej.
I tutaj jest dokładnie to samo tylko że w
drugim portem i tutaj mamy a pod portem 80 80 mamy http.
Następnie mamy Environment i tutaj podajemy naszą pierwszą
zmienną środowiskową która jak wspomniałem i tutaj zależy nam na tym żeby nasza
aplikacja została uruchomiona po tym jak baza danych na tym porcie będzie dostępna.
Następnie mamy coś takiego jak token Secret i to jest Edu.
Musimy to zmienić na czyli tablety.
Dlatego że w ten sposób nazwaliśmy naszą zmienną środowiskową i tu będzie nasz
sekretne token za pomocą którego będziemy podpisywać nasze akces do.
Polecam Ci żeby to było jednak jakiś
Random domowy ciąg znaków żeby nie było to łatwe do rozszyfrowania ale my tutaj
zostawimy na potrzeby tego kursu następnie Ustalamy
jaki i pod jakim portem ma być dostępny i HTTP.
Oczywiście nie musimy tego robić dlatego że na tych samych portach będzie to
dostępne ale warto mimo wszystko dodać to żeby było wiadomo co i jak.
No i tutaj mamy pod górkę.
To oznacza że tutaj znajduje się komenda
za pomocą której będziemy się podłączać do naszej bazy danych jeszcze nie obsługujemy
tego w naszej aplikacji ale w następnej lekcji to i pokażę ci jak w bardzo prosty
sposób zmienić naszą bazę podatkową na użycie podkreśla.
I tutaj budujemy naszą bazę danych.
I tutaj budujemy to za pomocą
obrazu już gotowego i przygotowanego za pomocą hasła w wersji 12 kropka trzy
zmienne środowiskowe które do niego wrócimy to będzie Polskę user Passport i
pierwsza z nich oznacza że to będzie login do naszego.
Aby móc się do niego zalogować.
Następnie jest hasło to będzie DAB+ i Polska DB.
To jest nazwa naszej bazy danych która zostanie założona jeśli nie istnieje a
następnie na portalach %54 32 będziemy udostępniać naszą bazę danych.
No dobrze jeśli mamy już napisanego
do tego kompa USA i mamy też do fajna to proszę zanim uruchomimy
poza jej zbudujemy naszą aplikację upewnij się że masz zainstalowanego
i uruchomionego ja w tym momencie uruchomienia.
No i musimy chwilę poczekać zanim się on uruchomi.
Muszę mu dać dostęp.
I tutaj na górnym pasku zobaczymy to dopiero Composite.
Powinien się pojawić ale nie pojawia się w tym piasku z jakiejś przyczyny
no i czekamy aż się uruchomi w moim przypadku musieliśmy
traktować komputer i tutaj przywrócić do do ustawień fabrycznych
więc aby to uruchomić wpisujemy do osób w komentarzach i zauważ tutaj proszę
że jeśli coś nie będzie działało to zwróć uwagę że tutaj np.
w przypadku linki 5 to muszą być
spacji jako wciśnięcie czyli jedno wciśnięcie to są dwie stacje.
Zwróć uwagę żeby to nie był tablet dlatego że to po prostu może nie działać.
Czekamy aż nasz bloger się zbuduje to może
chwilę potrwać i tak jak nam się zbuduje to zobaczymy że
występują tam jakieś błędy dlatego że nie można zbudować jeśli sobie to zatrzymamy.
Napisałem Control żeby zatrzymać i zabić
naszego nowego kompa za to zobaczymy że nie da się stworzyć lat 3.
Dlatego że z to work więc musimy zacząć używać tutaj już nie
bazy klasowej tylko użyć tutaj naszego miasta aby przerobić nasz
na aplikacje do tego żeby używała naszego asa a nie jednak mimo wszystko lata.
No to musimy przejść do pliku miękkiego
i jak wejdziemy na samą górę to zobaczymy że tutaj mamy Driver.
I tu mamy Light więc musimy wrócić do
góry a jak przejdziemy do Google Chrome wpisujemy piszemy sobie tam Google
Goulding i wejdziemy na iOS do dokumentacji
to tutaj mamy Connection Database i wyjeżdżamy niżej do Polski.
Wystarczy że kupujemy sobie ten Driver jego wklej do naszego kodu w to miejsce
zamiast SQL i musimy to pobrać oczywiście więc robimy Karpackiego.
I po pobraniu co chwilkę potrwa wracamy do dokumentacji i patrzymy że żeby
połączyć to wystarczy że będziemy po zgodzie Open i tu będzie nasz design
a jako design przypominam ci że w Polsce będziemy przekazywać pod względem
design i to będzie nasza komenda która będzie łączyła się z naszą bazą danych.
Więc kupujemy sobie tę zmienną wracamy do pliku krótkiego.
I przechodzimy trochę niżej
wpisujemy Polskę a zamiast tego tutaj nazwy naszej bazy danych w której mamy
terminarz naszą zmienną środowiskową ale musimy ją pobrać więc używamy do tego
paczki PX zmienny i wpisujemy tutaj nasz Polski sen jako string.
A domyślnie niech to będzie pusty ciąg znaków.
No dobrze to spróbujmy w tym momencie
zbudować jeszcze raz nasz kompa i aby to zrobić musimy wpisać do tego kompas.
Jeśli tylko wysyłamy ją tą metodę po
prostu po spacji AP to nic się nie stanie musimy zbudować naszą aplikację od
początku i do tego służy taki parametr dodawany do tej komendy AP.
No i jeszcze
poczekamy chwilę autokar powinien nam się zbudować od samego początku tutaj podczas
budowania wyskoczył mi błąd że musimy jeszcze pobrać na nowo.
Więc wpisujemy tę komendę i uruchamiamy budowanie naszego poza na nowo.
No i już nam się zbudował ale niestety występuje tutaj błąd
że licencji a teraz 80 80 Missing port i adres.
I to jest spowodowane tym że jeśli
uruchamiamy nasz serwery HTTP jesteśmy w funkcji
HTTPS effect to tutaj oprócz portu musimy jeszcze podać adres czyli dajemy plus
i kropka w kropkę 0 czyli lokal Host i 2 kropka.
Jeśli jeszcze raz bijemy i uruchomimy go
po raz kolejny budowanie i poczekamy aż się zbuduje.
No i znowu czekamy aż się zbuduje
i po zbudowaniu naszego rodaka poza jest tutaj jak widzisz
jak on port i jest leasing HTTP tutaj jest nazwa naszej aplikacji
czyli to będzie App jak sobie przez kierujemy trochę wyżej to
widzisz tutaj że mamy po squasha postawionego.
Sprawdźmy czy nasza aplikacja działa więc
uruchomimy nasze blue i po uruchomieniu bramek.
Stwórzmy użytkownika Hello.
No i jak widzisz tutaj
został zgłoszony błąd że w linii C 52 czyli użytkownik nie został znaleziony.
No więc tworzymy tego użytkownika na nowo.
Dobrze wróćmy do tego bloga
i sprawdźmy czy możemy się zalogować jako e-mail Hello i hasło Hello.
No i nasze blokowanie działa tak więc
kupimy sobie nasz token i spróbujmy się za zasób spróbować na wiadomości
żeby to zrobić meta data w której mamy nasz nowy token.
I usuwamy podwójne w cudzysłowie
i próbujemy się zgrywać a nie występuje jeszcze jakiś błąd.
Brakuje jednego słowa więc tutaj mamy zapytanie.
Jak widzisz jest dostępny użytkownik o
identyfikator że 1 i jest jego imię to Hello nazwisko to Hello.
Możemy do niego wysłać wiadomość o bogactwie jego historii wiadomości.
Wygląda na to że nasz komputer działa
bardzo dobrze i to by było na tyle w tej lekcji ja zapraszam Cię do kolejnej.