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.
Zanim przejdziemy do wskaźników pokaże najpierw rozwiązanie zadania z poprzedniej
elekcji jako zadanie do rozwiązania i liczenia średnia
temperatura która panuje w Warszawie oraz w Madrycie.
Zacznijmy od liczenia średniej temperatury w Warszawie.
Aby to zrobić musimy najpierw stworzyć
sobie tablice z temperaturami w Warszawie więc stworzymy własną.
I musimy zadeklarować tablicę.
Jak pamiętasz będzie wyjaśnienia to
przypominam musimy użyć kwadratowych napisów a następnie podać typ naszej
tablicy czyli jakiego typu wartości będą w środku i tutaj musimy się zatrzymać na
chwilkę dlatego że temperatury to nie są liczby całkowite
czyli są to liczby zmienne aby przechowywać liczby zmienne przecinka
w rachunku trzeba użyć typu float więc zaczniemy sobie pisać flot.
Jak widzimy mamy tutaj do wyboru dwa typy flot.
Flota 64 i Flota 32 floty 32 od Floty 64 różni się zakresem czyli pojemnością tej
zmiennej czyli po prostu do 32 możemy mniejsze liczby trzymać niż 64 bitowym
flocie 1 i 8 stopnia to jest raczej mniejsza
liczba niż większa więc możemy użyć tutaj bez problemu floty 32.
Następnie musimy do środka Wklej te wszystkie temperatury.
Robimy to poprzez zaznaczenie i wklej tego do środka.
I tak mamy naszą zmienną która jest tablicą i mamy wszystkie nasze
temperatury teraz trzeba policzyć suma tych temperatur aby to zrobić musimy użyć
najpierw musimy użyć tego i policzyć za pomocą pętli aby to zrobić piszemy
oczywiście jakże inaczej FOR nie interesuje nasz indeks.
Dlatego że indeks czyli 0 1 i 2 nas nie
interesuje interesują nas same wartości czyli temperatury więc używamy tutaj skora
a następnie jak pamiętam z poprzedniej reakcji.
Trzeba tutaj użyć dwóch ratach równa się pięć.
Teraz w tych temperaturach będą nasze plus 32 liczby
i jak podkreśla to jako zmienną która nie jest używana nigdzie.
Musimy teraz z nią coś zrobić czyli musimy dodawać do sumy która już istnieje.
Czyli stwórzmy następną zmienną w tym.
Która jest zerem na początku i do tej sumy temperatur.
Zacznijmy wydawać pojedyncze temperatury pojedynczo a nie są osoby
tak teraz nam podpowiada że jest to nieprawidłowa operacja dlatego że
nie możemy dodawać od 32 do Impact i to jest liczba całkowita Flota jest
zmienna dlatego że jeśli podaliśmy tutaj 0 to Flota to myśli że to jest liczba
całkowita no bo tak naprawdę jest liczba całkowita.
Musimy z tego zrobić albo liczbę zmienną
rynkową dodając kropka w kropkę 0 i wtedy Polak myśli że to jest flot 64.
Ale my używamy floty 32 więc musimy mu jasno powiedzieć że to jest flot 32 żeby
to zrobić niestety musimy dodać słówko kluczowe i usunąć tzw.
kropek i napisać 32.
I wtedy możemy bez problemu błąd nam zniknął i mamy tutaj sumę temperatur.
Następnie musimy policzyć w zasadzie średnią temperaturą żeby to zrobić
stworzymy oczywiście następną zmienną a wręcz temperaturę.
I tutaj bierzemy naszą sumę i dzielimy przez długość naszej
tablicy żeby to zrobić tak jak na końcu poprzedniej lekcji wspomniałem
trzeba użyć słówka len i w nawiasach okrągłych wpisać nazwę naszej zmiennej.
Naszej tablicy i Golec weźmie długość i podzieli to podzieli przez długość.
I tutaj jak widzimy jest kolejny błąd
ponieważ znowu my spadł z 32 i dlatego że suma temperatur jak widzimy jest 32.
Natomiast długość tego to jest Integer dlatego że nie może być np.
jeden i 8 elementów może być jeden element lub dwa elementy w tablicy
więc musimy jasno powiedzieć Polakowi że hej weź tę liczbę i warto ją zgina na
flotę żeby to zrobić wystarczy wpisać wśród 32 i w nawiasach
okrągłych w klatce naszą długość tablice i w tym przypadku gola
nam podpowiada że akurat tym razem nie jest używana więc nie możemy
skompletować naszego programu więc musimy coś z nią zrobić.
Czyli wypisz majątek ruchomy na szkody i zobaczmy.
Jak widzimy tutaj wypisana jest nasza średnia temperatura i teraz możemy zrobić
dokładnie ten sam kod na temperaturę w Madrycie.
Ale nie oszukujmy się jesteśmy leniwi
więc weźmy ten kod wyciągniemy go do osobnej funkcji aby to zrobić stworzymy
sobie pod spodem funkcję aby stworzyć funkcję piszemy słowo kluczowe.
Następnie dodajemy jej nazwę czyli kalkulator a w.
I to jest już nasza funkcja następnie dajemy jasno okrągłe i klarowne to co jest
to co będzie się działo w środku czyli robimy dokładnie to samo co z funkcją
Maine tylko nazywamy ją trochę inaczej teraz jest tutaj nasz kod i mamy tutaj
dwie podstawowe dwa podstawowe błędy nie mamy nie mamy tutaj zmiennej.
Chcemy żeby ta zmienna była za każdym
razem podawana jako parametry tej funkcji czyli tutaj np.
podajemy
temperaturę i to jest nazwa naszej mają następnie podajemy typ czyli wymagamy
naszej tablicy typu flot 32 a następnie zamieniane na te i gotowe.
Następną rzeczą którą chcemy zrobić to zwrócić tę temperaturę
czyli nasze temperatury są typu flot 32 żeby zwrócić coś z funkcji po nawiasach
okrągłych dajemy jej typ I tutaj jest uczniem kluczowym kryterium
zwracamy nasze średnie temperatury i taka żeby policzyć temperaturę w Warszawie.
Wystarczy.
Powiedzmy że chcemy je wypisać
więc prezentujemy kalkulator i do środka podajemy temperaturę w Warszawie.
W tym momencie geolog tam policzy średnie temperatury a następnie je wypisze.
Chcemy to samo zrobić dla temperatury w Madrycie więc tworzymy naszą nową tablicę
Madrid flot 32 i tutaj wpisujemy do środka te same wartości.
A następnie kupujemy linkę 40 ton która liczy nam temperatury w Warszawie i
zmieniamy ton na temperaturę w Madrycie i tu wypisuje nam że w Warszawie średnia
temperatura to jest 8 i pół stopnia a w Madrycie 15 stopni.
Oczywiście w zaokrągleniu mających rozwiązanie zadania domowego.
Zapraszam do następnej lekcji.