Go. Rusz głową! - Sensus

Tytuł oryginału: Head First Go
Tłumaczenie: Tomasz Walczak
ISBN: 978-83-283-6153-9
stron: 506, Format: ebook
Data wydania: 2020-04-14
Księgarnia: Sensus
Cena książki: 49,50 zł (poprzednio: 99,00 zł)
Oszczędzasz: 50% (-49,50 zł)
JÄ™zyk Go, zwany także golangiem, zostaÅ‚ opracowany w firmie Google i zaprezentowany Å›wiatu w 2009 roku. Zaprojektowano go pod kÄ…tem wydajnoÅ›ci przetwarzania sieciowego i wieloprocesorowego. Autorzy chcieli, aby łączyÅ‚ Å‚atwość pisania aplikacji z wydajnoÅ›ciÄ… jÄ™zyków kompilowanych. Podobnie jak JavaScript czy Python, Go jest jÄ™zykiem, który można szybko zrozumieć, a dziÄ™ki temu bezzwÅ‚ocznie zacząć tworzyć funkcjonalny kod. Niemniej, aby zyskać uznanie potencjalnego pracodawcy i swojego nowego zespoÅ‚u, poza wiedzÄ… o skÅ‚adni i instrukcjach sterujÄ…cych oraz praktycznÄ… umiejÄ™tnoÅ›ciÄ… kodowania trzeba poznać okreÅ›lone konwencje i techniki.
Ta książka, podobnie jak inne pozycje serii Rusz gÅ‚owÄ…!, zostaÅ‚a przygotowana zgodnie z najnowszymi odkryciami nauk poznawczych, teorii uczenia siÄ™ i neurofizjologii. Oznacza to tyle, że dziÄ™ki niej bÄ™dziesz siÄ™ uczyć zgodnie z zasadami pracy swojego mózgu: zaangażujesz umysÅ‚, wykorzystasz wiele zmysÅ‚ów i niepostrzeżenie przyswoisz jÄ™zyk programowania Go. Innymi sÅ‚owy: w naturalny sposób zaczniesz programować! Niecodzienny wyglÄ…d i struktura książki sprawiajÄ…, że zamiast klasycznego podrÄ™cznika otrzymujesz polisensoryczne doÅ›wiadczenie poznawcze, zaprojektowane tak, aby uzyskać umiejÄ™tnoÅ›ci przydatne każdemu deweloperowi! Nawet jeÅ›li musisz posÅ‚ugiwać siÄ™ innymi jÄ™zykami programowania, dziÄ™ki tej pozycji nauczysz siÄ™ technik i praktyk, które bÄ™dziesz stale wykorzystywać podczas kodowania!
W tej książce między innymi:
- solidne podstawy tworzenia kodu, który bÄ™dzie przejrzysty i Å‚atwy w utrzymaniu
- metody, funkcje, pakiety...
- testowanie kodu i obsÅ‚uga błędów
- dynamiczne aplikacje internetowe
- szablony HTML
Go: rusz głową i programuj!
Osoby które kupowały "Go. Rusz głową!", wybierały także:
- Saga rodu z Lipowej - tom 1. Miłość i wróżby 0,00 zł
- Podręcznik startupu. Budowa wielkiej firmy krok po kroku 92,67 zł, (13,90 zł -85%)
- Prawa ludzkiej natury 73,16 zł, (13,90 zł -81%)
- Tajemnice sieci 39,50 zł, (7,90 zł -80%)
- Przeczucie 44,50 zł, (8,90 zł -80%)
Spis treści
Go. Rusz g³ow±! eBook -- spis tre¶ci
Wprowadzenie
- Dla kogo jest przeznaczona ta ksi±¿ka? (xxvi)
- Wiemy, co sobie my¶lisz (xxvii)
- Wiemy, co sobie my¶li Twój mózg (xxvii)
- Metapoznanie - my¶lenie o my¶leniu (xxix)
- Oto co zrobili¶my (xxx)
- Przeczytaj to (xxxii)
- Podziêkowania (xxxiii)
ROZDZIA£ 1. Zaczynajmy. Podstawy sk³adni
- Do biegu, gotowi, Go! (2)
- Narzêdzie Go Playground (3)
- Co to wszystko znaczy? (4)
- A je¶li co¶ siê nie powiedzie? (5)
- Wywo³ywanie funkcji (7)
- Funkcja Println (7)
- U¿ywanie funkcji z innych pakietów (8)
- Warto¶ci zwracane przez funkcje (9)
- Szablon programu w Go (11)
- £añcuchy znaków (11)
- Runy (12)
- Warto¶ci logiczne (12)
- Liczby (13)
- Operacje matematyczne i porównania (13)
- Typy (14)
- Deklarowanie zmiennych (16)
- Warto¶ci zerowe (17)
- Krótkie deklaracje zmiennych (19)
- Regu³y tworzenia nazw (21)
- Konwersje (22)
- Instalowanie Go na komputerze (25)
- Kompilowanie kodu w jêzyku Go (26)
- Narzêdzia jêzyka Go (27)
- Szybkie sprawdzanie dzia³ania kodu za pomoc± polecenia go run (27)
- Twój przybornik do Go (28)
ROZDZIA£ 2. Jaki kod uruchomiæ w nastêpnej kolejno¶ci? Instrukcje warunkowe i pêtle
- Wywo³ywanie metod (32)
- Obliczanie oceny (34)
- Funkcje i metody zwracaj±ce wiele warto¶ci (36)
- Rozwi±zanie 1. Zignorowaæ warto¶æ b³êdu za pomoc± pustego identyfikatora (37)
- Rozwi±zanie 2. Obs³uga b³êdu (38)
- Instrukcje warunkowe (39)
- Warunkowe rejestrowanie b³êdu krytycznego (42)
- Unikaj zakrywania nazw (44)
- Przekszta³canie ³añcuchów znaków na liczby (46)
- Bloki (49)
- Bloki i zasiêg zmiennych (50)
- Program do wystawiania ocen jest gotowy! (52)
- Tylko jedna zmienna w krótkiej deklaracji zmiennej musi byæ nowa (54)
- Napiszmy grê (55)
- Nazwy pakietów a ¶cie¿ki importowania (56)
- Generowanie liczby losowej (57)
- Pobieranie liczby ca³kowitej z klawiatury (59)
- Porównywanie wytypowanej liczby z docelow± (60)
- Pêtle (61)
- Instrukcje inicjalizacji i instrukcje wykonywane po iteracji s± opcjonalne (63)
- U¿ywanie pêtli w grze w zgadywanie liczb (66)
- Wychodzenie z pêtli zgadywania liczby (69)
- Ujawnianie docelowej liczby (70)
- Gratulacje, gra jest kompletna! (72)
- Twój przybornik do Go (74)
ROZDZIA£ 3. Wywo³aj mnie. Funkcje
- Powtarzaj±cy siê kod (80)
- Formatowanie danych wyj¶ciowych z u¿yciem funkcji Printf i Sprintf (81)
- Instrukcje formatowania (82)
- Formatowanie d³ugo¶ci warto¶ci (83)
- Formatowanie d³ugo¶ci liczb u³amkowych (84)
- U¿ywanie funkcji Printf w kalkulatorze ilo¶ci farby (85)
- Deklarowanie funkcji (86)
- Deklarowanie parametrów funkcji (87)
- U¿ywanie funkcji w kalkulatorze ilo¶ci farby (88)
- Funkcje i zasiêg zmiennych (90)
- Warto¶ci zwracane przez funkcje (91)
- U¿ywanie zwracanej warto¶ci w kalkulatorze ilo¶ci farby (93)
- W funkcji paintNeeded potrzebna jest obs³uga b³êdów (95)
- Warto¶ci b³êdów (96)
- Deklarowanie wielu zwracanych warto¶ci (97)
- U¿ywanie wielu zwracanych warto¶ci w funkcji paintNeeded (98)
- Zawsze obs³uguj b³êdy! (99)
- W parametrach funkcji zapisywane s± kopie argumentów (102)
- Wska¼niki (103)
- Typy wska¼nikowe (104)
- Pobieranie lub modyfikowanie warto¶ci wskazywanej przez wska¼nik (105)
- U¿ywanie wska¼ników w funkcjach (107)
- Poprawianie funkcji double z u¿yciem wska¼ników (108)
- Twój przybornik do Go (110)
ROZDZIA£ 4. Pakiety kodu. Pakiety
- Ró¿ne programy, ta sama funkcja (114)
- Wspó³dzielenie kodu w programach z u¿yciem pakietów (116)
- Kod pakietów jest przechowywany w obszarze roboczym jêzyka Go (117)
- Tworzenie nowego pakietu (118)
- Importowanie pakietów do programu (119)
- W pakietach u¿ywany jest ten sam uk³ad plików (120)
- Konwencje tworzenia nazw pakietów (123)
- Kwalifikatory w postaci nazw pakietów (123)
- Przenoszenie wspólnego kodu do pakietu (124)
- Sta³e (126)
- Zagnie¿d¿one katalogi pakietów i ¶cie¿ki importowania (128)
- Instalowanie programów wykonywalnych za pomoc± instrukcji go install (130)
- Modyfikowanie obszaru roboczego za pomoc± zmiennej ¶rodowiskowej GOPATH (131)
- Ustawianie zmiennej GOPATH (132)
- Publikowanie pakietów (133)
- Pobieranie i instalowanie pakietów z u¿yciem polecenia go get (137)
- Wczytywanie dokumentacji pakietu za pomoc± polecenia go doc (139)
- Dokumentowanie pakietów z u¿yciem komentarzy narzêdzia doc (141)
- Wy¶wietlanie dokumentacji w przegl±darce internetowej (143)
- Udostêpnianie dokumentacji w formacie HTML na swoje potrzeby za pomoc± narzêdzia godoc (144)
- Serwer narzêdzia godoc udostêpnia te¿ TWOJE pakiety! (145)
- Twój przybornik do Go (146)
ROZDZIA£ 5. Na li¶cie. Tablice
- Tablice przechowuj± kolekcje warto¶ci (150)
- Warto¶ci zerowe w tablicach (152)
- Litera³y tablicowe (153)
- Funkcje z pakietu fmt potrafi± obs³ugiwaæ tablice (154)
- Dostêp do elementów tablicy w pêtli (155)
- Sprawdzanie d³ugo¶ci tablicy za pomoc± funkcji len (156)
- Bezpieczne przetwarzanie tablic w pêtli za pomoc± instrukcji for...range (157)
- U¿ywanie pustego identyfikatora w pêtlach for...range (158)
- Obliczanie sumy liczb z tablicy (159)
- Pobieranie ¶redniej liczb z tablicy (161)
- Wczytywanie pliku tekstowego (163)
- Wczytywanie pliku tekstowego do tablicy (166)
- Modyfikowanie programu average, aby wczytywa³ plik tekstowy (168)
- Nasz program potrafi przetwarzaæ tylko trzy warto¶ci! (170)
- Twój przybornik do Go (172)
ROZDZIA£ 6. Problem do³±czania elementów. Wycinki
- Wycinki (176)
- Litera³y wycinków (177)
- Operator wycinka (180)
- Tablice podstawowe (182)
- Modyfikowanie podstawowych tablic i wycinków (183)
- Dodawanie elementów do wycinka za pomoc± funkcji append (184)
- Wycinki i warto¶ci zerowe (186)
- Wczytywanie dodatkowych wierszy plików z u¿yciem wycinków i funkcji append (187)
- Sprawdzanie poprawionego programu (189)
- Zwracanie wycinka nil po wyst±pieniu b³êdu (190)
- Argumenty wiersza poleceñ (191)
- Pobieranie argumentów wiersza poleceñ z wycinka os.Args (192)
- Operator wycinka mo¿na stosowaæ do innych wycinków (193)
- Modyfikowanie programu, aby u¿ywa³ argumentów wiersza poleceñ (194)
- Funkcje wariadyczne (195)
- Stosowanie funkcji wariadycznych (197)
- U¿ycie funkcji wariadycznej do obliczania ¶rednich (198)
- Przekazywanie wycinków do funkcji wariadycznych (199)
- Wycinki uratowa³y sytuacjê! (201)
- Twój przybornik do Go (202)
ROZDZIA£ 7. Nazywanie danych. Mapy
- Zliczanie g³osów (206)
- Wczytywanie nazwisk z pliku (207)
- Zliczanie nazwisk w trudny sposób, z u¿yciem wycinków (209)
- Mapy (212)
- Litera³y map (214)
- Warto¶ci zerowe w mapach (215)
- Warto¶æ zerowa zmiennej reprezentuj±cej mapê to nil (215)
- Jak odró¿niæ warto¶ci zerowe od przypisanych? (216)
- Usuwanie par klucz - warto¶æ za pomoc± funkcji delete (218)
- Modyfikowanie programu zliczaj±cego g³osy, aby u¿yæ map (219)
- U¿ywanie pêtli for...range do map (221)
- Pêtla for...range przetwarza mapy w losowej kolejno¶ci! (223)
- Modyfikowanie programu zliczaj±cego g³osy - zastosowanie pêtli for...range (224)
- Program do zliczania g³osów jest kompletny! (225)
- Twój przybornik do Go (227)
ROZDZIA£ 8. Tworzenie struktur do przechowywania danych. Struktury
- Wycinki i mapy przechowuj± warto¶ci JEDNEGO typu (232)
- Struktury s± tworzone z warto¶ci WIELU typów (233)
- Dostêp do pól struktury za pomoc± operatora kropki (234)
- Zapisywanie danych prenumeratorów w strukturze (235)
- Typy zdefiniowane i struktury (236)
- U¿ywanie typu zdefiniowanego na dane prenumeratorów magazynu (238)
- U¿ywanie typów zdefiniowanych razem z funkcjami (239)
- Modyfikowanie struktury z u¿yciem funkcji (242)
- Dostêp do pól struktur za pomoc± wska¼nika (244)
- Przekazywanie du¿ych struktur z u¿yciem wska¼ników (246)
- Przenoszenie typu struktury do innego pakietu (248)
- Nazwa zdefiniowanego typu musi zaczynaæ siê wielk± liter±, aby zosta³a wyeksportowana (249)
- Nazwy pól struktury musz± zaczynaæ siê wielk± liter±, aby zosta³y wyeksportowane (250)
- Litera³y struktur (251)
- Tworzenie struktury typu Employee (253)
- Tworzenie struktury typu Address (254)
- Dodawanie struktury jako pola w innym typie (255)
- Podawanie warto¶ci struktury w innej strukturze (255)
- Anonimowe pola struktur (258)
- Zagnie¿d¿anie struktur (259)
- Typy zdefiniowane s± gotowe! (260)
- Twój przybornik do Go (261)
ROZDZIA£ 9. Jeste¶ w moim typie. Typy zdefiniowane
- B³êdne typy w rzeczywistym ¿yciu (266)
- Typy zdefiniowane z prostymi typami bazowymi (267)
- Typy zdefiniowane i operatory (269)
- Przekszta³cenia miêdzy typami z u¿yciem funkcji (271)
- Rozwi±zywanie kolizji nazw funkcji z u¿yciem metod (274)
- Definiowanie metod (275)
- Parametr odbiorcy metody jest (prawie) identyczny jak inne parametry (276)
- Metoda dzia³a (prawie) jak funkcja (277)
- Wska¼niki jako parametry odbiorcy metody (279)
- Przeliczanie litrów i mililitrów na galony z u¿yciem metod (283)
- Przeliczanie galonów na litry i mililitry z u¿yciem metod (284)
- Twój przybornik do Go (285)
ROZDZIA£ 10. Zachowaj to dla siebie. Hermetyzacja i zagnie¿d¿anie
- Tworzenie typu strukturalnego Date (290)
- U¿ytkownicy przypisuj± do pól struktury Date nieprawid³owe warto¶ci! (291)
- Settery (292)
- W setterze jako odbiorcê trzeba podaæ wska¼nik (293)
- Dodawanie pozosta³ych setterów (294)
- Dodawanie sprawdzania poprawno¶ci danych do metod (296)
- Pola nadal mog± zostaæ ustawione na b³êdne warto¶ci! (298)
- Przenoszenie typu Date do innego pakietu (299)
- Jak sprawiæ, by pola z typu Date nie by³y eksportowane? (301)
- Dostêp do nieeksportowanych pól za pomoc± eksportowanych metod (302)
- Gettery (304)
- Hermetyzacja (305)
- Zagnie¿d¿anie typu Date w typie Event (308)
- Nieeksportowane pola nie s± promowane (309)
- Eksportowane metody s± promowane w taki sam sposób jak pola (310)
- Hermetyzowanie pola Title z typu Event (312)
- Promowane metody s± dostêpne w taki sam sposób jak metody typu zewnêtrznego (313)
- Pakiet calendar jest gotowy! (314)
- Twój przybornik do Go (316)
ROZDZIA£ 11. Co potrafisz zrobiæ? Interfejsy
- Dwa ró¿ne typy maj±ce te same metody (322)
- Parametr metody, który przyjmuje warto¶ci tylko jednego typu (323)
- Interfejsy (325)
- Definiowanie typu implementuj±cego interfejs (326)
- Typy konkretne i typy interfejsowe (327)
- Przypisz warto¶æ dowolnego typu implementuj±cego interfejs (328)
- Wywo³ywaæ mo¿na tylko metody zdefiniowane w interfejsie (329)
- Poprawianie funkcji playList z u¿yciem interfejsu (331)
- Asercje typów (334)
- Nieudane asercje typów (336)
- Unikanie paniki po niepowodzeniu asercji (337)
- Testowanie typów TapePlayer i TapeRecorder z u¿yciem asercji typów (338)
- Interfejs error (340)
- Interfejs Stringer (342)
- Pusty interfejs (344)
- Twój przybornik do Go (347)
ROZDZIA£ 12. Znów stañ na nogi. Przywracanie stanu po awarii
- Jeszcze o wczytywaniu liczb z pliku (350)
- B³êdy powoduj±, ¿e plik nie zostanie zamkniêty (352)
- Odraczanie wywo³añ funkcji (353)
- Przywracanie stanu po b³êdach z u¿yciem odroczonych wywo³añ funkcji (354)
- U¿ywanie odroczonych wywo³añ do gwarantowania zamkniêcia plików (355)
- Wy¶wietlanie plików z katalogu (358)
- Wy¶wietlanie plików z podkatalogów (bardziej skomplikowane) (359)
- Wywo³ania funkcji rekurencyjnych (360)
- Rekurencyjne wy¶wietlanie zawarto¶ci katalogu (362)
- Obs³uga b³êdów w funkcji rekurencyjnej (364)
- Uruchamianie procedury paniki (365)
- ¦lad stosu (366)
- Odroczone wywo³ania ukoñczone przed awari± (366)
- Stosowanie funkcji panic w funkcji scanDirectory (367)
- Kiedy wywo³ywaæ panikê? (368)
- Funkcja recover (370)
- Funkcja recover zwraca warto¶æ z wywo³ania panic (371)
- Przywracanie stanu po wywo³aniu funkcji panic w funkcji scanDirectory (373)
- Ponowne wywo³anie funkcji panic (374)
- Twój przybornik do Go (376)
ROZDZIA£ 13. Udostêpnianie kodu. W±tki goroutine i kana³y
- Pobieranie stron internetowych (380)
- Wielozadaniowo¶æ (382)
- Wspó³bie¿no¶æ z u¿yciem w±tków goroutine (383)
- U¿ywanie w±tków goroutine (384)
- U¿ywanie w±tków goroutine w funkcji responseSize (386)
- Brak bezpo¶redniej kontroli nad wykonywaniem w±tków goroutine (388)
- Instrukcji go nie mo¿na u¿ywaæ razem ze zwracaniem warto¶ci (389)
- Wysy³anie i przyjmowanie warto¶ci z u¿yciem kana³ów (391)
- Synchronizowanie w±tków goroutine za pomoc± kana³ów (392)
- Obserwowanie synchronizacji w±tków goroutine (393)
- Zastosowanie kana³ów do poprawienia programu zwracaj±cego wielko¶æ stron (396)
- Modyfikowanie kana³u, aby przesy³a³ strukturê (398)
- Twój przybornik do Go (399)
ROZDZIA£ 14. Kontrola jako¶ci kodu. Testy zautomatyzowane
- Testy zautomatyzowane wykrywaj± b³êdy, zanim zrobi to kto¶ inny (402)
- Funkcja, dla której nale¿a³o przygotowaæ testy zautomatyzowane (403)
- Spowodowali¶my b³±d (405)
- Pisanie testów (406)
- Uruchamianie testów za pomoc± polecenia go test (407)
- Testowanie zwracanych warto¶ci (408)
- Tworzenie szczegó³owych komunikatów o niepowodzeniu testów za pomoc± funkcji Errorf (410)
- Funkcje pomocnicze w testach (411)
- Sprawianie, by testy koñczy³y siê powodzeniem (412)
- Programowanie sterowane testami (413)
- Nastêpny b³±d do naprawienia (414)
- Uruchamianie okre¶lonego zbioru testów (417)
- Testy sterowane tabelami (418)
- Stosowanie testów do poprawiania kodu powoduj±cego panikê (420)
- Twój przybornik do Go (422)
ROZDZIA£ 15. Reagowanie na ¿±dania. Aplikacje internetowe
- Pisanie aplikacji internetowych w jêzyku Go (426)
- Przegl±darki, ¿±dania, serwery i odpowiedzi (427)
- Prosta aplikacja internetowa (428)
- Twój komputer rozmawia sam ze sob± (429)
- Omówienie prostej aplikacji internetowej (430)
- ¦cie¿ki do zasobów (432)
- Reagowanie w inny sposób na ró¿ne ¶cie¿ki do zasobów (433)
- Funkcje pierwszoklasowe (435)
- Przekazywanie funkcji do innych funkcji (436)
- Funkcje jako typy (436)
- Co dalej? (440)
- Twój przybornik do Go (441)
ROZDZIA£ 16. Stosowanie szablonów. Szablony HTML
- Ksiêga go¶ci (446)
- Funkcje do obs³ugi ¿±dañ i sprawdzanie b³êdów (447)
- Tworzenie katalogu projektu i wypróbowywanie aplikacji (448)
- Tworzenie listy wpisów w HTML-u (449)
- Zwracanie stron HTML w aplikacji (450)
- Pakiet text/template (451)
- Stosowanie interfejsu io.Writer razem z metod± Execute szablonu (452)
- Typy ResponseWriter i os.Stdout implementuj± interfejs io.Writer (453)
- Wstawianie danych do szablonów z u¿yciem akcji (454)
- Tworzenie opcjonalnych czê¶ci szablonu za pomoc± akcji if (455)
- Powtarzanie sekcji szablonu za pomoc± akcji range (456)
- Wstawianie pól struktury do szablonu za pomoc± akcji (457)
- Wczytywanie wycinka z wpisami z pliku (458)
- Struktura do przechowywania wpisów i ich liczby (460)
- Modyfikowanie szablonu w celu umieszczenia w nim wpisów (461)
- Umo¿liwianie u¿ytkownikom dodawania danych za pomoc± formularzy HTML-owych (464)
- ¯±dania przes³ania formularza (466)
- ¦cie¿ki i metody HTTP do przesy³ania formularzy (467)
- Pobieranie z ¿±dania warto¶ci pól formularza (468)
- Zapisywanie danych z formularza (470)
- Przekierowania HTTP (472)
- Kompletny kod aplikacji (474)
- Twój przybornik do Go (477)
DODATEK A. Zrozumieæ funkcjê os.OpenFile. Otwieranie plików
- Zrozumieæ funkcjê os.OpenFile (482)
- Przekazywanie do funkcji os.OpenFile sta³ych reprezentuj±cych opcje (483)
- Notacja dwójkowa (485)
- Operatory bitowe (485)
- Bitowy operator I (486)
- Bitowy operator LUB (487)
- Stosowanie bitowego operatora LUB dla sta³ych z pakietu os (488)
- Stosowanie bitowego operatora LUB do poprawienia opcji funkcji os.OpenFile (489)
- Uniksowe uprawnienia do plików (490)
- Reprezentowanie uprawnieñ za pomoc± typu os.FileMode (491)
- Notacja ósemkowa (492)
- Przekszta³canie warto¶ci ósemkowych na warto¶ci typu FileMode (493)
- Obja¶nienie wywo³añ funkcji os.OpenFile (494)
DODATEK B. Sze¶æ kwestii, które nie zosta³y opisane. Pozosta³o¶ci
- Numer 1. Inicjalizacja w instrukcji if (496)
- Numer 2. Instrukcja switch (498)
- Numer 3. Inne typy proste (499)
- Numer 4. Jeszcze o runach (499)
- Numer 5. Kana³y buforowane (503)
- Numer 6. Dalsza lektura (506)