Programowanie w Go
Język programowania Go, zwany czasem Golang, to język zdobywający ostatnimi czasy coraz większą popularność, którą zawdzięcza nie tylko wsparciu firmy Google, dla potrzeb której początkowo powstał, ale także niskim progiem wejścia dla programistów, którzy znają już jakiś inny język imperatywny (np: C, C++ czy Python). Przez niski próg wejścia rozumiem tutaj sytuację, że jest relatywnie łatwy do nauczenia i nie posiada zbyt wielu zawiłości składniowych.
W języku Go powstało wiele użytecznego i popularnego oprogramowania, które przydaje się nie tylko w pracy typowo “DevOpsiarskiej”, ale też w pracy developerów innych języków programowania. By daleko nie szukać, wymienić można Dockera czy Kubernetesa, a to tylko jedne z wielu przykładów, które pokazują jak wszechstronny jest to język programowania.
Dzięki statycznej, natywnej binarce odpada nam problem martwienia się o zestawienie “skrojonego” środowiska na docelowej maszynie z odpowiednimi wersjami bibliotek. Możemy po prostu skopiowac binarkę na docelową maszynę i to jest wszystko. Oczywiście binarka musi być skompilowana pod odpowiedni system operacyjny na danej maszynie, ale dzięki mechanizmowi “cross-compilation” nie ma żadnego problemu kompilować programy napisane w Go na Windows, podczas gdy docelowo aplikacja będzie działać np. na systemach opartych o kernel Linuksa.
Ponadto warto wspomnieć o dobrej jakości bibliotece standardowej, która jest dostarczana wraz z językiem. Wraz z nią, dostajemy dobrej jakości interfejsy i metody do tworzenia m.in. aplikacji serwerowych lub klienckich dla potrzeb udostępniania lub odpytywania API, operacja na plikach i wielu innych przydatnych rzeczach. Dzięki temu jest mniejsza szansa, że do czegoś relatywnie prostego będziemy od razu musieli szukać jakiejś dodatkowej biblioteki, choć trzeba uczciwie przyznać, że język Go, a konkretnie jego biblioteka standardowa, z powodów swojej filozofii prostoty, nie posiada pewnych “podstawowych” narzędzi znanych z innych języków: np. zestawu funkcji dla list typu map/filter/reduce, czy nawet funkcji do zwracania wartości bezwzględnej.
Pełniejszą listą projektów pisanych z użyciem tego języka dysponuje często aktualizowane repozytorium na githubie Awesome Go, które dodatkowo pokazuje te projekty posegregowane listą kategorii.
W moim serwisie, który właśnie czytasz, oraz na kanale na YouTube, znajdziesz prosty kurs programowania w Go dla początkujących, który powinien ułatwić Ci rozpoczęcie przygody z tym ciekawym językiem. Większość materiałów będzie dostępna w postaci filmów na YouTube, jednakże będę się starał również przygotowywać wersje tekstowe dla osób, które preferują taką formę przekazu.
Lista artykułów w kategorii “programowanie w Go”
-
Aug 9, 2021: Programowanie w Go - wzmacniamy systemów typów dla większej poprawności kodu
System typów w językach programowania to gruby temat. Jedni, często początkujący, ich wręcz nienawidzą, bo utrudniają im życie, z kolei inni nie wyobrażają sobie bez nich pisania najmniejszego choćby programu. W założeniu system typów ma pozwolić na wyłapanie części prostych błędów, na etapie automatycznej analizy kodu (np. kompilacji) które potem mogą zakraść się na naszą produkcję, aby niepostrzeżenie ugryźć nas w tyłek w najmniej sprzyjającej ku temu okazji. Czy obecność statycznego i silnego typowania nam pomoże w uniknięciu błędów? [czytaj więcej]
-
Sep 9, 2019: Programowanie w Go - #16 Packages, dzielimy nasz program na pakiety
Przez cały okres trwania kursu zaniedbaliśmy pewien temat, więc czas to teraz nadrobić. W tej części kursu programowania w Go nauczymy się dzielić program na mniejsze kawałki (tzw. packages), czasem można je nazywać modułami lub tego typu określeniami. Zatem, zajmiemy się logiczną organizacją naszego programu, aby łatwiej było go tworzyć, rozwijać, a innym developerom czytać. Jeżeli analizowaście programy w Go, to na pewno zauważyliście, że mają one wiele plików z kodem *. [czytaj więcej]
-
Sep 3, 2019: Wydano wersję Go 1.13 - zobacz co się zmieniło
Ponieważ część czytelników mojej strony, poza samym kursem Go, może interesować się kwestiami związanymi z samym językiem, to informuję, że dziś wydano Go w wersji 1.13, czyli całe środowisko programistyczne. W tym wpisie postaram się przełożyć na język polski co uległo zmianie w najnowszej wersji tego coraz popularniejszego języka programowania. A trochę tych zmian jest - tu link do pełnego Go 1.13 Release Notes, a ja spróbuję co nieco dla Was streścić, to, co uznałem za ciekawe w tej wersji. [czytaj więcej]
-
Aug 26, 2019: Programowanie w Go - #15 Context - co to jest i jak tego używać
Tym razem zapraszam na nagranie o używaniu i stosowaniu Context (po polsku: kontekst - jakby nie patrzeć) w Go. Ten osobliwy interfejs, który w bibliotece standardowej pojawił się w sumie całkiem niedawno, posiada kilka ważnych zastosowań, z czego spróbuję te najciekawsze omówić na filmie. Z tego też względu, zdecydowałem się na zupełnie osobny odcinek o tym zagadnieniu w moim kursie programowania w Go. Tematykę tego odcinka można potraktować jako uzupełnienie odcinka 13 o goroutines i wielowątkowości. [czytaj więcej]
-
Aug 12, 2019: Programowanie w Go - #14 panic(), defer(), recover()
Krótki film z programowania w golang o tych trzech zagadnieniach. W sensie czy i kiedy w ogóle używamy panic(), do czego używamy defer i jak działa, no i oczywiście przykład użycia recover. Krótki film, bo i zagadnienie nie jest obszerne, ale postanowiłem wziąć je osobno na tapetę, gdyż w programowaniu w Go, te zagadnienia oczywiście są spotkane, niektóre nawet często (w kodzie). Programowanie w Go - panic, defer, recover Programowanie w Go - panic, defer, recover Zobacz nagranie o tych zagadnieniach Kod do przykładu z funkcją panic Kod do przykładu z instrukcją defer Zobacz nagranie o tych zagadnieniach Kod do przykładu z funkcją panic package main import ( "io/ioutil" "os" ) var user = os. [czytaj więcej]
-
Aug 5, 2019: Programowanie w Go - #13 Goroutines czyli wielowątkowość w Go
Nadszedł czas wkroczyć do krainy smoków, czyli do wielowątkowości. Jest to dziedzina, z której Go jest znane, więc nie możemy o niej zapomnieć. Zajmiemy się goroutines - czym są, jak ich używać, jak je w ogóle synchronizować, bo to najczęściej jest największym zmartwieniem. W kursie programowania w Golang nie mogło tego zabraknąć. Na filmie pokazuję najprostsze sposoby synchronizacji goroutines i nie tylko, sposoby ich uruchamiania i nie tylko. Goroutines i sprawy wielowątkowości w Go Goroutines i sprawy wielowątkowości w Go Film o goroutines, wielowątkowości i prostych sposobach synchronizacji Przykład z filmu: startowanie funkcji za pomocą słowa kluczowego go Przykład z filmu: prosta synchronizacja kanałami Przykład z filmu: inne podejście do synchronizacji kanałami Przykład z filmu: synchronizacja za pomocą sync. [czytaj więcej]
-
Jul 28, 2019: Programowanie w Go - #12 Kanały i instrukcja select
Doszliśmy do kanałów w Go, zatem czas i o nich trochę opowiedzieć. Z tego odcinka dowiesz się czym są kanały, jak ich używać i co to za instrukcja warunkowa select{}, która do tej pory jeszcze się w kursie nie pojawiła. W przypadku Go, kanałów nie możemy pominąć, bo jest to jeden z bardziej znanych elementów tego języka. Spis treści: Film Przykład z filmu: kanał buforowany Przykład z filmu: kierunkowość kanałów Przykład z filmu: instrukcja select Film Przykład z filmu: kanał buforowany 1package main 2 3import "fmt" 4 5func main() { 6 alphabet := make(chan string, 2) 7 alphabet <- "a" 8 alphabet <- "b" 9 alphabet <- "c" 10 close(alphabet) 11 12 for val := range alphabet { 13 fmt. [czytaj więcej]
-
Jul 16, 2019: Programowanie w Go - #11 Interfejsy, pusty interfejs
Nadszedł czas na spotkanie z interfejsami w Go. Jak programowałeś wcześniej w Javie czy C#, koncept możesz kojarzyć. Jednak działanie interfejsów w Go jest trochę odmienne i warto się temu dokładnie przyjrzeć. Same interfejsy, to według popularnych opinii jedna z większych zalet języka. Zatem tutaj przedstawię kwestię interfejsów w Go i pokażę jakiś życiowy przykład użycia. W tym artykule dostępne są kody źródłowe następujących przykładów: [Przykład z filmu bez użycia interfejsów. [czytaj więcej]
-
Jul 7, 2019: Programowanie w Go - #10 Struktury i pointery
Wchodzimy coraz głębiej w bardziej skomplikowane typy. Tym razem struktury, które są często spotykane i czasem swoim ogromem w kodzie mogą przestraszyć. Jakby tego mało, poruszamy koszmar wielu programistów - pointery, lub wskaźniki po polsku, a konkretnie - ich odmiany w języku Go. Oby po tym filmie pointery nie były owiane jeszcze większą tajemnicą. :-) [kod zostanie umieszczony w innym czasie]
-
Jul 1, 2019: Programowanie w Go - #9 Array, Slice, Map
Czas na trochę bardziej skomplikowane typy danych. W tym odcinku omówimy i pobawimy się tablicami (array), wycinkami (slice) oraz mapami, czyli tablicami asocjacyjnymi/hashami z innych języków. [kod zostanie umieszczony w innym czasie]
-
Jun 25, 2019: Programowanie w Go - #8 Funkcje i metody
Tym razem eksplorujemy tematykę funkcji i metod w programowaniu w Go, nie zapominamy oczywiście o funkcjach jako o typach danych, zasięgach funkcji, kwestiach zwracania wielu wartości i funkcjach anonimowych. Tak, funkcje są ważne i w programowaniu często ich używamy, bez nich ani rusz. Jeśli zatem ta tematyka wydaje Ci się obca, mam nadzieję, że mój film pomoże tutaj wyjaśnić pewne wątpliwości. [kod zostanie umieszczony w innym czasie]
-
Jun 21, 2019: Programowanie w Go - #7 Instrukcje sterujące i warunkowe (for, switch, if/else)
Szybkie omówienie najważniejszych instrukcji sterujących i warunkowych w Go, jednak bez instrukcji select, którą będziemy omawiać w innym odcinku. Oczywiście z przykładami. To są instrukcje, bez których w programowaniu ciężko by było (aczkolwiek różne języki mają różne do nich podejścia). [kod zostanie umieszczony w innym czasie]
-
Jun 9, 2019: Programowanie w Go - #6 Stringi w Go
Tym razem cały film o stringach w Go, bo nie jest to taki prosty temat. Staram się nie zanudzać, więc trochę przykładów i zabawy z nimi będzie zaprezentowane, oraz trochę teorii na temat czym w ogóle są stringi w Go. [kod zostanie umieszczony w innym czasie]
-
Jun 9, 2019: Programowanie w Go - #5 Więcej typów, więcej o typach i aliasach.
No i dalszy ciąg męczenia typów prostych w Go. Tutaj nieco rozszerzam temat, m.in. o typy własne i aliasy. Poprzedni film trochę był też o kompilacji i uruchamianiu więc tutaj skupiamy się już na właściwym mięsie. Warto pamiętać, że kwestia typów w języku programowania jest bardzo istotna, bo od niej zależy jak szybko piszemy programy oraz o ile łatwiej o jakieś błędy w trakcie. [kod zostanie umieszczony w innym czasie] [czytaj więcej]
-
Jun 5, 2019: Programowanie w Go - #4 Kompilowanie, uruchamianie, kwestie typów, proste zmienne
Czas na początek przygody z kodowaniem w Go! Co można zrobić na samym początku? Oczywiście skompilować i uruchomić pierwszy program. Do tego dowiesz się również trochę o typach, prostych zmiennych, przypisywaniu i wypisywaniu. Poruszę też również kwestie zasięgów leksykalnych oraz generalnych rekomendacji w sprawie metod przypisywania zmiennych. [kod zostanie umieszczony w innym czasie]
-
Jun 5, 2019: Programowanie w Go - #3 Konfiguracja Visual Studio Code do programowania w Go
To nagranie pokazuje jakie edytory można używać, niemniej jednak, na cele mojego kursu zdecydowałem się na darmowy Visual Studio Code, który posiada plugin do obsługi języka Go. Dzięki temu szybkiemu nagraniu, dowiesz się jak to zainstalować i skonfigurować, aby po chwili móc cieszyć się całkiem sprawnym narzędziem pracy, które będzie sporym ułatwieniem.
-
Jun 3, 2019: Programowanie w Go - #2 Szybka instalacja i konfiguracja środowiska programistycznego
Najtrudniej jest zawsze zacząć… powiadają niektórzy. W tym filmie pokażę Ci, że jednak nie musi być wcale trudno. Dzięki temu nagraniu dowiesz się jak szybko i sprawnie zainstalować środowisko do programowania w Go, bo zasadniczo wystarczy pobrać i rozpakować i generalnie tyle, ale aby środowisko działało optymalnie trzeba jeszcze kilka małych kroczków zrobić, które nie powinny Ci przysporzyć większych trudności, przynajmniej nie w sytuacji, gdy oglądniesz ten film. Najnowsze środowisko Go pobierzesz z tej strony. [czytaj więcej]
-
May 26, 2019: Programowanie w Go - #1 Szybkie wprowadzenie czy warto
Jest to pierwszy film z mojego autorskiego kursu o programowaniu w języku Go. Dlaczego Go? Jest to podstawowe pytanie na które próbuję odpowiedzieć tym filmem, dlaczego dziś warto uczyć się tego języka. Na filmie zobaczysz kilka subiektywnych argumentów za, ale to do Ciebie należy decyzja czy uczyć się tego języka. Sam kurs jest przeznaczony dla developerów, którzy jakąś minimalną styczność z jakimkolwiek językiem programowania już mieli. Jeżeli więc nigdy nie programowałeś(aś), to taki kurs może być skokiem na zbyt głęboką wodę i doradziłbym skupienie się na materiałach w sieci dla początkujących, w tym dot. [czytaj więcej]