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")
}
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")
}
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")
}
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")
}
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")
}
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
}
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…")
}
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.
May 24, 2019
Fakty WTF Z Warszawy! [devstyle vlog #278]
The post Fakty WTF Z Warszawy! [devstyle vlog #278] appeared first on devstyle.pl.
May 23, 2019
Frontend! Od zera do działającej, wdrożonej strony w niecałą godzinę (bez frameworków!)
The post Frontend! Od zera do działającej, wdrożonej strony w niecałą godzinę (bez frameworków!) appeared first on devstyle.pl.
May 22, 2019
Z JavaScriptem w nadprzestrzeń!
console.log(‘Siema!’); Z tej strony Maciek Korsan, nowy kapitan Sokoła Millennium.
Dlaczego nie daję dyplomów po kursach? [devstyle vlog #276]
The post Dlaczego nie daję dyplomów po kursach? [devstyle vlog #276] appeared first on devstyle.pl.
May 21, 2019
Dlaczego moje produkty są “drogie”? [devstyle vlog #275]
The post Dlaczego moje produkty są “drogie”? [devstyle vlog #275] appeared first on devstyle.pl.
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ć:
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.
Dlaczego wydaję cudze produkty? [devstyle vlog #274]
The post Dlaczego wydaję cudze produkty? [devstyle vlog #274] appeared first on devstyle.pl.
May 19, 2019
DevTalk #96 – O Nauce Frontendu z Maciejem Korsanem
Dzisiaj 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.
May 16, 2019
Dzięki, Mirek! [devstyle vlog #273]
The post Dzięki, Mirek! [devstyle vlog #273] appeared first on devstyle.pl.
Maciej Aniserowicz's Blog
- Maciej Aniserowicz's profile
- 22 followers
