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.
Część z tej strony jak i dziś mam dla ciebie kurs języka.
Jeśli interesuje Cię programowanie to myślę że na pewno zdarzyło ci się o nim
słyszeć oraz jego opinie wśród programistów.
Z tego powodu chciałbym przedstawić ci ten język od podstaw.
Jednak mimo tego nadal będzie potrzebna ci podstawowa wiedza o samym programowaniu.
Dlaczego gol czy gole.
Bo możemy usłyszeć obie te nazwy.
W ogóle powstał.
Istnieje historia mówiąca o tym że został wymyślony podczas oczekiwania na
kompilację programu jak być może wie iż jest to moment w
którym chcemy uruchomić napisaną aplikację i musimy poczekać na jej zbudowanie.
Oczywiście nie jest to duży projekt.
To problemu nie ma.
Gorzej jeśli ma tysiące a nawet miliony linijek kodu.
Dlatego też to co ja najbardziej cenię w tym języku to to że jest prosty lekki
szybko się uruchamia jest niesamowicie wydajny.
Dodatkową zaletą jest to że bardzo szybko możemy napisać dokładnie to co chcemy.
W dodatku jest to bardzo wydajne i
wykorzystuje mało zasobów komputera i nie musisz znać całej otoczki framework
do obsługi sieciowej wielu wątków i innych ponieważ są one wbudowane w język.
Golf został stworzony z myślą o tworzeniu aplikacji sektorowych oraz Skryptów Serii.
Jeżeli dodatkowo zależy ci na ich szybkim
przygotowaniu oraz tym aby były wydajne co będzie dla ciebie świetnym wyborem.
Jak wspomniałem w tym kursie poprowadzą Cię od podstaw przez naukę gry
na zaawansowane tematy przyjdzie jeszcze czas.
Jednak tym razem potrzebujesz poznać podstawy które pomogą Ci iść naprzód
na koniec kursu pokaże też to co najważniejsze na temat budowania aplikacji
od początku do końca czyli od momentu jej stworzenia do umieszczenia
na własnym serwerze a więc na samym początku opowiem ci o tym
jak zainstalować ją na różnych systemach operacyjnych.
Następnie przejdziemy przez wszystkie
rzeczy które moglibyśmy określić takim aby go ostatecznie wyjaśnić jak działają wątki
i z jednej strony zobaczysz jakie to proste a jednocześnie opowiem ci też o
problemach i wyzwaniach które jest związane z wprowadzeniem na wielu wątkach
nie tylko w języku bo być może na początku poczujesz się lekko zagubiony.
Jednak obiecuję że w późniejszych lekcjach wszystko stanie się dla ciebie jasne już
po kilku godzinach kiedy już będziesz mieć solidne podstawy będziemy mogli przejść do
nieco bardziej zaawansowanych tematów do grania.
Przykładowo pokażę ci jak sobie radzić z
funkcyjne oraz jak rozdzielać elementy czy funkcjonalności aplikacji.
Na pewnym etapie zwrócimy stronę
internetową za pomocą naszej aplikacji pokaże ci też jak korzystać z wbudowanego
w język Managera Paczek które możesz po prostu importować do swojego projektu
wykorzystując to wszystko połączymy HTTP z bazą danych
SQL i zobaczymy jak zapisywać i odczytywać z niej informacje np.
w postaci obiektów które będą przesyłane w odpowiedzi na zapytania.
Poza tym napiszemy prosty czat z użyciem
opcji dzięki czemu będziemy wysyłać i odbierać wiadomości w czasie rzeczywistym.
Dzięki temu zobaczysz że może być świetną alternatywą dla
klasycznych pakietów w ramach bonusu dołączany do kursu
przykład w którym pokaże ci jak aplikacja mobilna może bez problemu wykorzystywać
GPS i do tego aby w czasie rzeczywistym prowadzić konwersacji z innym
użytkownikiem ten kurs przeprowadzi cię przez naukę Langa od podstaw.
Nie istotne jest to czy masz z nimi
jakiekolwiek doświadczenie ponieważ przeprowadzać je od A do Z.
Przez całą drogę nauki najważniejszych elementów tego języka.
Więc jeśli jesteś zainteresowany budowaniem aplikacji sektorowych
zastanawiasz się od czego zacząć to myślę że gol może być dobrym wyborem.
A jeśli znasz już jakiś inny język ale za ciekawy czy ten język chciałbyś sobie
wyrobić o nim opinię lub zacząć w nim pracować to czemu nie.
Zdecydowanie warto dać komuś bankowi
szansę na sam koniec dodam jeszcze że jest niesamowicie szybko rozwijającym się
językiem zyskuje popularność wśród społeczności programistów.
Pracodawcy szukają osób znających ten
język i zapewniam Cię że nie dzieje się to bez powodu.
Z resztą wkrótce możesz się o tym przekonać.
Jeżeli chcesz pracować w nowoczesnym i prostym języku to myślę że nie pozostaje
mi nic innego jak zaprosić cię do pierwszych lekcji tego kursu.