Maciej Aniserowicz's Blog, page 19

May 28, 2019

Golang #2 – typy proste oraz konstrukcje sterujące

W tym artykule omówimy dwa tematy, bez których programowanie jest niemożliwe: typy oraz instrukcje sterujące. Golang idzie w kierunku maksymalnej prostoty, lecz nie prostactwa. W związku z tym typów nie wbudowano zbyt wiele, a instrukcji sterujących jest ledwie kilka. Co ważne, nie ujmuje to możliwościom tego języka.


Typy proste

Golang ma prosty system typów podstawowych, które możemy wykorzystać w naszych programach. Oczywiście nie ze wszystkich korzysta się na co dzień, lecz dobrze wiedzieć o ich istnieniu. Typy proste w golang wyglądają następująco:



bool – odpowiadająca za prawdę/fałsz (true/false),
string – tekst,
int – liczba całkowita wraz z różnymi zakresami: int8, int16, int32 oraz int64,
uint – liczba naturalna (czyli bez liczb ujemnych) wraz z różnymi zakresami: int8, int16, int32 oraz int64,
float32 oraz float64 – liczby zmiennoprzecinkowe,
complex64 oraz complex128 – liczby z częścią urojoną (czyli np. a bi).

Nie będziemy od razu omawiać wszystkich typów, gdyż jest to nudne i… niepotrzebne. Przynajmniej na początku. Przyjrzyjmy się zatem programowi pokazującemu, w jaki sposób można stworzyć zmienne różnego typu oraz wyświetlić ich wartość.



func main() {
fmt.Printf("Type: bool Value: %v\n", bool(true))
fmt.Printf("Type: string Value: %v\n", string("hello, golang"))
fmt.Printf("Type: int Value: %v\n", int(8))
fmt.Printf("Type: float64 Value: %v\n", float64(15.6))
}

Użyłem tutaj trochę bardziej gadatliwego sposobu tworzenia tych zmiennych. Można to też uprościć do formy jak poniżej:



func main() {
fmt.Printf("Type: bool Value: %v\n", true)
fmt.Printf("Type: string Value: %v\n", "hello, golang")
fmt.Printf("Type: int Value: %v\n", 8)
fmt.Printf("Type: float64 Value: %v\n", 15.6)
}

Golang jest w stanie domyślić się typu zmiennej, której używamy. To pierwszy moment, w którym ten język ułatwia nam pracę, robiąc coś za nas. Gdy deklarujemy jakąś wartość i zapisujemy ją do zmiennej, to nie musimy podawać jej typu. Kompilator wykona operację automatycznie.


Dzięki temu mechanizmowi możemy zainicjować zmienną na kilka różnych sposobów:



var someInt int = 123
var anotherInt = 123
andAnotherInt := 123

Te trzy zapisy są równoważne. W pierwszym przykładzie przed nazwą zmiennej używamy słowa kluczowego var, następnie deklarujemy nazwę zmiennej oraz jej typ. Na końcu, po znaku równości, podajemy interesującą nas wartość. Drugi zapis jest trochę prostszy, gdyż pomijamy typ zmiennej – kompilator domyśli się go za nas na podstawie tego, co znajduje się po prawej stronie znaku równości.


Trzeci zapis jest najbardziej zwięzły, gdyż pomija całkowicie zarówno typ, jak i słowo kluczowe var, lecz przed znakiem równości dodany jest dwukropek. Przy owym dwukropku na chwilę się zatrzymamy.


Przy tym zapisie dwukropek dajemy tylko wtedy, gdy tworzymy nową zmienną, co znaczy, że gdy przypisujemy nową wartość do istniejącej zmiennej, to dwukropek pomijamy. W związku z tym poprawny będzie zapis jak poniżej:



var myVariable := 1234
// ...
myVariable = 4321

Ostatnim typem, który omówimy, jest interface{}, czyli pusty interfejs. Zmienna tego typu może zawierać wszystko – może to być liczba całkowita, liczba zmiennoprzecinkowa czy struktura. Powinieneś starać się unikać stosowania pustego interfejsu, gdyż często jest to zła praktyka. Jednakże czasami okazuje się bardzo pomocna i należy pamiętać o jej istnieniu.



var myVariable interface{} // I can be anything
myVariable = 4321
myVariable = "juppi"
myVariable = 1.5

Instrukcje sterujące

Jeśli znamy już cały wachlarz typów zmiennych, możemy przejść do instrukcji sterujących. W języku golang, w związku z jego prostotą, nie ma ich za wiele. Omówmy więc po kolei każdą z nich.


Instrukcja warunkowa if

Praktycznie nie ma programu bez warunków. Pierwszą instrukcją warunkową, jaką poznamy, jest instrukcja if, która wygląda następująco:



myVariable := 123

if myVariable == 321 {
fmt.Println("we are equal")
}

Golang play


To, o czym należy pamiętać, to fakt, że rozpoczynająca klamra winna być w tej samej linii co słówko if. Jeśli będziemy chcieli zapisać ją w nowej linii, nastąpi błąd kompilacji.



myVariable := 123

if myVariable == 321
{ // błąd – nie skompiluje się!
fmt.Println("we are equal")
}

Golang play


Bardzo pomocne jest także to, że jeżeli zastąpimy podwójny znak równości pojedynczym, to również otrzymamy błąd. Ma to zapobiec sytuacjom, w których zapominamy dodać ten znak i musimy poświęcić trochę czasu (oraz nerwów) na znalezienie błędu.



myVariable := 123

if myVariable = 321 {
fmt.Println("we are equal")
}

Golang play


Co ciekawe, jesteśmy w stanie wewnątrz warunku zadeklarować zmienną. Operacja ta pozwoli nam skrócić nieco kod oraz sprawi, że ten warunek będzie bardziej czytelny. Przypisanie wartości zmiennej oraz warunek oddzielamy znakiem średnika.



if err := someFunction(); err != nil {
fmt.Printf("no error")
}

Golang play


Możemy też oczywiście napisać kod, który wykona się, gdy warunek zawarty w „if” nie będzie spełniony. Obrazuje to poniższy przykład.



myVariable := 123

if myVariable == 321 {
fmt.Println("we are equal")
} else {
fmt.Println("we are NOT equal 321")
}

Golang play


I tutaj warto pamiętać o tym, że klamra otwierająca powinna być w tej samej linii co słówko kluczowe else. W przeciwnym wypadku otrzymamy błąd kompilacji.


Instrukcja sterująca switch

Inną bardzo prostą instrukcją sterującą jest instrukcja switch. Można o niej powiedzieć to, że jest inną formą zapisu kombinacji if–else–if–else. To oznacza, że każdego switcha można zastąpić szeregiem if–else, jak i na odwrót.



animal := "dog"

switch animal {
case "cat":
fmt.Println("Cats rulez!")
break
case "dog":
fmt.Println("Dogs rulez!")
break
case "cow":
fmt.Println("Muuuu rulez!")
break
}

Golang play


Gdy żaden z przypadków nie wystąpił, to możemy użyć instrukcji default, która zostanie wykonana właśnie w takiej sytuacji.



animal := "chicken"

switch animal {
case "cat":
fmt.Println("Cats rulez!")
break
case "dog":
fmt.Println("Dogs rulez!")
break
case "cow":
fmt.Println("Muuuu rulez!")
break
default:
fmt.Println("I do not know the animal…")
}

Golang play


Switche są często używane do wykonywania pewnych operacji w zależności od typu. Typ danej zmiennej można odczytać, pisząc myVariable.(type).



var myVariable interface{}
myVariable = 123

switch a := myVariable.(type) {
case int:
fmt.Println("I am an integer!", a)
case string:
fmt.Println("I am a string, cool", a)
default:
fmt.Println("I do not know what type I am, but I am not a string or int", a)
}

Golang play


Podsumowanie

Istnieje też inna instrukcja sterująca, a mianowicie select, lecz ją zostawiam na jedną z kolejnych lekcji. Jak widać, zarówno typy, jak i instrukcje sterujące są bardzo proste i stosuje się je podobnie jak w innych językach. Zachęcam do eksperymentowania i pobawienia się tym, czego się nauczyłaś/nauczyłeś dzisiaj.


The post Golang #2 – typy proste oraz konstrukcje sterujące appeared first on devstyle.pl.

 •  0 comments  •  flag
Share on Twitter
Published on May 28, 2019 21:55

May 24, 2019

May 23, 2019

May 22, 2019

Z JavaScriptem w nadprzestrzeń!

console.log(‘Siema!’); Z tej strony Maciek Korsan, nowy kapitan Sokoła Millennium™.

 •  0 comments  •  flag
Share on Twitter
Published on May 22, 2019 23:49

May 21, 2019

May 20, 2019

Rusza “Co Ten Frontend” – Program Skutecznej Nauki Frontendu! (tylko w tym tygodniu)

No więc tak… Ruszamy z frontendowym koksem! I zapowiada się niesamowicie ekscytująco :).


Kilka miesięcy temu informowałem, że w najbliższym czasie powstanie Wyjątkowy Program Skutecznej Nauki Podstaw Frontendu “WTF: Co Ten Frontend? (nazwa długa, jak na prawdziwie podlaski produkt przystało!). I oto właśnie teraz Słowo Programem Się Stało!



Ja ten program dumnie WYDAJĘ, jako – powiedzmy – “devstyle publishing“. I będę w nim nie mniej dumnie uczestniczył jako – powiedzmy – Uczestnik. Bo co ja wiem o frontendzie, ja stary dotnet jestem! Ale znam kogoś, kto wie dużo. Wszystko!


Maciek Korsan, bo to o nim mowa, czaruje i tworzy z frontendu – nie zawaham się użyć tego słowa – SZTUKĘ! To właśnie on odpowiada za merytoryczne przygotowanie tego 12-tygodniowego Programu.


W marcu odpaliliśmy przedsprzedaż, badając zainteresowanie. Okazało się że już wtedy zaufało nam prawie 500 osób! Zachęcaliśmy wszystkim m.in. taką oto 2-godzinną pogadanką na jutubach:



Od tamtej pory lista oczekujących urosła do 4130 osób!



Tak ogromne zaufanie i zaangażowanie przerosło nasze oczekiwania. Z tym większą radością ogłaszam:


Program już wystartował i w tym tygodniu można do niego dołączyć (tu, na cotenfrontend.pl)!


W piątek o 21:00 zamykamy nabór i lecimy z koksem.


Tylko tutaj otrzymujesz trzy miesiące intensywnej i – co najważniejsze – praktycznej nauki podstaw frontendu z najbardziej aktualnych materiałów. W ciągu 12 tygodni zobaczysz dokładnie czym jest (i jak działa!) frontend. Zrozumiesz technologię, poznasz wszystkie potrzebne narzędzia. Wykonasz masę zadań, utrwalających wiedzę.


Dołączając teraz do “WTF: Co Ten Frontend?” staniesz się częścią grona innych podobnych sobie adeptów Sztuki Frontendu. Będziemy się stale komunikować, używając narzędzi wykorzystywanych na co dzień przez programistów! Nauka w grupie jest o wiele bardziej efektywna, niż bierne oglądanie kolejnych filmików o programowaniu.


Po tej przygodzie bez problemu zgłębisz dalsze tajniki programowania, już na własną rękę.


Sprawdź Program Szkolenia (tutaj)!


Każdy tydzień nauki jest precyzyjnie zaplanowany tak, by po trzech miesiącach wysiłku stać na bardzo solidnych podstawach do dalszego rozwoju (bo w zawodzie programisty rozwój nigdy się nie kończy).


… i to wszystko za ułamek kwoty, jakiej żądają bootcampy programistyczne!


A teraz najlepsze: co, jeśli okaże się, że to jednak nie dla Ciebie? Nie obawiaj się, masz 30 dni na decyzję i ewentualny zwrot! Jeśli w ciągu pierwszego miesiąca uznasz, że to szkolenie nie spełnia Twoich oczekiwań (z jakiegokolwiek powodu) to oddam Ci 100% Twoich pieniędzy! (Tak, możesz przejść przez prawie połowę Programu, a potem się wycofać)


Nie ma żadnych rabatów, żadnych kodów, żadnych zniżek. Aktualna oferta to jedna wielka promocja. Skorzystaj z niej już teraz, bo może się nigdy nie powtórzyć:


=== Dołącz TERAZ i TUTAJ do Co Ten Frontend ===


Taka okazja powtórzy się najwcześniej za wieeeele miesięcy, a możliwe, że wcale. Rozmawiamy z Korsanem i przyjmujemy opcję, że z racji czasochłonności Program więcej się nie pojawi na rynku… Więc jeśli kiedykolwiek, to teraz.


Dla niezdecydowanych:



już jutro (środa) o 19:00 wchodzimy z Korsanem na żywo na YouTube i będzie można zobaczyć, jak w niecałą godzinę OD ZERA powstaje DZIAŁAJĄCA i wdrożona strona WWW; po ukończeniu Programu też będziesz tak potrafić!



a w piątek o 19:30 wpadamy znowu, ale już bardziej na luzie; przez półtorej godziny będzie nas można pytać o wszystko, a na koniec zamkniemy sprzedaż i od razu podzielimy się wynikiem sprzedaży


Dodatkowo oczywiście zawsze możesz do mnie napisać z wszelkimi pytaniami!


A wszystkie informacje, jakich możesz potrzebować (łącznie ze spisem treści i obszerną sekcją FAQ) znajdziesz na stronie Programu.


Więc… cóż, to tyle! Zegar tyka: w piątek o 21:00 zamykamy nabór do Programu. Nie czekaj do ostatniej chwili :).


TL;DR

tutaj strona Programu ze wszystkimi informacjami
TYM LINKIEM dodasz Program do koszyka w moim sklepie
jakiekolwiek pytania? przez ten tydzień jesteśmy (prawie) non stop pod mailem!

See you on the other side!

Maciej Aniserowicz & Maciek Korsan


The post Rusza “Co Ten Frontend” – Program Skutecznej Nauki Frontendu! (tylko w tym tygodniu) appeared first on devstyle.pl.

 •  0 comments  •  flag
Share on Twitter
Published on May 20, 2019 21:55

May 19, 2019

DevTalk #96 – O Nauce Frontendu z Maciejem Korsanem

korsan2018Dzisiaj mamy już 96. odcinek DevTalk. To zobowiązuje do czegoś nieco specjalnego. Francja-elegancja, będzie o SZTUCE! Ale jak to… o sztuce?


Temat mamy trochę techniczny, trochę nietechniczny. Coś, co przez jednych uznawane jest za programowanie, przez innych za udawanie programowania, a przez kolejnych za sztukę właśnie. Tak, dzisiaj poważna rozmowa na temat frontendu.


Moim i waszym gościem jest Maciej Korsan. On uważa że frontend jest sztuką. Ukuł nawet piękny tagline swojej frontendowej działalności:


frontend in an art


Maciek jest frontendowcem z kilkunastoletnim doświadczeniem… i to tylko jedna z jego wielu twarzy. Fotografuje, kręci filmy (i teledyski!), fruwa dronami (z licencją!), posiada Sokoła Millenium (z Lego, ale zawsze). Współorganizuje konferencję Programistok i współtworzy fundację Hacklag. A oprócz tego szkoli, uczy i pomaga w zdobywaniu frontendowych szlifów wielu adeptom i adeptkom programistycznej sztuki, zarówno na uczelni jak i podczas autorskich szkoleń offline.


Mając takiego Gościa po drugiej stronie skorzystałem z okazji i wypytałem go o proces nauki frontendu. Ten odcinek może pokazać, że niestety wiele osób podchodzi do tematu po prostu… niewłaściwie.


Dodatkowo kilka tygodni temu ogłosiliśmy, że wspólnie pracujemy nad czymś extra-specjalnym. Chodzi o Program Skutecznej Nauki Podstaw Frontendu “WTF: Co Ten Frontend?“. Maciek tworzy go od strony merytorycznej, a ja go wydaję. I będę dawał się… uczyć! Teach me, master :).



Właśnie DZISIAJ startuje nabór do pierwszej edycji programu. Program trwa 12 tygodni i zaczyna się… również dzisiaj właśnie. Jeśli chcesz nauczyć się frontendu to to jest najlepsza okazja. Nabór zamykamy w piątek, 24 maja, o 21:00.


TUTAJ dołączysz do “WTF: Co Ten Frontend?”, zapraszamy!


Mam nadzieję, że zobaczymy się “po drugiej stronie” kotary (bo to w końcu sztuka, nie?). A teraz zapraszam na naszą rozmowę!


PLAY!!







http://traffic.libsyn.com/devtalk/DevTalk_96_-_O_Frontendzie_z_Maciejem_Korsanem.mp3
Montaż odcinka: Krzysztof Śmigiel.

Ważne adresy:


zapisz się na newsletter


zasubskrybuj w iTunes, Spotify lub przez RSS


ściągnij odcinek w mp3

Linki:



Program Skutecznej Nauki Frontendu “Co Ten Frontend”
Roadmapa edukacji frontendowca
DevTalk #92 – O błędach w tworzeniu WWW z Tomaszem “Comandeer” Jakutem
Grupa dla początkujących we frontend
Frameworki CSS

Bootstrap
Bulma


Biblioteki i frameworki JS:

Vanilla JS
React
Angular
Vue




Muzyka wykorzystana w intro:

“Misuse” Kevin MacLeod (incompetech.com)

Licensed under Creative Commons: By Attribution 3.0

http://creativecommons.org/licenses/by/3.0/

The post DevTalk #96 – O Nauce Frontendu z Maciejem Korsanem appeared first on devstyle.pl.

 •  0 comments  •  flag
Share on Twitter
Published on May 19, 2019 20:55

May 16, 2019

Maciej Aniserowicz's Blog

Maciej Aniserowicz
Maciej Aniserowicz isn't a Goodreads Author (yet), but they do have a blog, so here are some recent posts imported from their feed.
Follow Maciej Aniserowicz's blog with rss.