E-book details

Język Go. Poznaj i programuj

Język Go. Poznaj i programuj

Alan A. A. Donovan, Brian W. Kernighan

Ebook

Język Go jest nazywany „językiem C XXI wieku”. Podobnie jak C, umożliwia kompilowanie programów do wydajnego kodu maszynowego, który w natywny sposób współpracuje z poszczególnymi systemami operacyjnymi. Go jest elastycznym narzędziem pozwalającym osiągać maksymalny efekt przy minimalnych środkach. Jest bardzo wszechstronny — bardzo dobrze nadaje się do budowania infrastruktury takiej jak serwery sieciowe, do tworzenia narzędzi dla programistów, ale jest też znakomitym językiem do programowania grafiki, aplikacji mobilnych i uczenia maszynowego.

Niniejsza książka jest skierowana do osób, które chcą jak najszybciej rozpocząć tworzenie wydajnego oprogramowania w Go. Autorzy przejrzyście wyjaśnili podstawy tego języka i zasady nim rządzące, a swój wykład uzupełnili setkami interesujących i praktycznych przykładów dobrze napisanego kodu Go. W ten sposób Czytelnik dobrze pozna wszystkie aspekty tego języka, jego najistotniejsze pakiety oraz szeroki zakres zastosowań.

W książce omówiono:

  • podstawowe koncepcje Go, jego najważniejsze konstrukcje i elementy strukturalne programu;
  • proste i złożone typy danych, funkcje, metody i interfejsy;
  • zasady współbieżności implementowanej w Go;
  • kompilacja i formatowanie programu w Go;
  • korzystanie z pakietów oraz z bibliotek testowania;
  • zagadnienia zaawansowane: korzystanie z refleksji i programowanie niskiego poziomu.

Poznaj język Go — doskonałe narzędzie dla profesjonalisty!

Przedmowa (9)

  • Pochodzenie języka Go (10)
  • Projekt Go (11)
  • Struktura książki (13)
  • Gdzie można znaleźć więcej informacji (14)
  • Podziękowania (15)

Rozdział 1. Przewodnik (17)

  • 1.1. Witaj, świecie (17)
  • 1.2. Argumenty wiersza poleceń (19)
  • 1.3. Wyszukiwanie zduplikowanych linii (23)
  • 1.4. Animowane GIF-y (28)
  • 1.5. Pobieranie zawartości adresu URL (30)
  • 1.6. Pobieranie zawartości kilku adresów URL równolegle (32)
  • 1.7. Serwer WWW (33)
  • 1.8. Kilka pominiętych kwestii (37)

Rozdział 2. Struktura programu (41)

  • 2.1. Nazwy (41)
  • 2.2. Deklaracje (42)
  • 2.3. Zmienne (43)
  • 2.4. Przypisania (50)
  • 2.5. Deklaracje typów (52)
  • 2.6. Pakiety i pliki (54)
  • 2.7. Zakres (58)

Rozdział 3. Podstawowe typy danych (63)

  • 3.1. Liczby całkowite (63)
  • 3.2. Liczby zmiennoprzecinkowe (68)
  • 3.3. Liczby zespolone (72)
  • 3.4. Wartości logiczne (75)
  • 3.5. Łańcuchy znaków (75)
  • 3.6. Stałe (86)

Rozdział 4. Typy złożone (91)

  • 4.1. Tablice (91)
  • 4.2. Wycinki (94)
  • 4.3. Mapy (102)
  • 4.4. Struktury (108)
  • 4.5. JSON (114)
  • 4.6. Szablony tekstowe i HTML (120)

Rozdział 5. Funkcje (125)

  • 5.1. Deklaracje funkcji (125)
  • 5.2. Rekurencja (127)
  • 5.3. Zwracanie wielu wartości (130)
  • 5.4. Błędy (132)
  • 5.5. Wartości funkcji (137)
  • 5.6. Funkcje anonimowe (139)
  • 5.7. Funkcje o zmiennej liczbie argumentów (146)
  • 5.8. Odroczone wywołania funkcji (147)
  • 5.9. Procedura panic (152)
  • 5.10. Odzyskiwanie sprawności (154)

Rozdział 6. Metody (157)

  • 6.1. Deklaracje metod (157)
  • 6.2. Metody z odbiornikiem wskaźnikowym (159)
  • 6.3. Komponowanie typów poprzez osadzanie struktur (162)
  • 6.4. Wartości i wyrażenia metod (165)
  • 6.5. Przykład: typ wektora bitowego (166)
  • 6.6. Hermetyzacja (169)

Rozdział 7. Interfejsy (173)

  • 7.1. Interfejsy jako kontrakty (173)
  • 7.2. Typy interfejsowe (176)
  • 7.3. Spełnianie warunków interfejsu (177)
  • 7.4. Parsowanie flag za pomocą interfejsu flag.Value (180)
  • 7.5. Wartości interfejsów (182)
  • 7.6. Sortowanie za pomocą interfejsu sort.Interface (187)
  • 7.7. Interfejs http.Handler (191)
  • 7.8. Interfejs error (196)
  • 7.9. Przykład: ewaluator wyrażeń (197)
  • 7.10. Asercje typów (203)
  • 7.11. Rozróżnianie błędów za pomocą asercji typów (205)
  • 7.12. Kwerendowanie zachowań za pomocą interfejsowych asercji typów (207)
  • 7.13. Przełączniki typów (209)
  • 7.14. Przykład: dekodowanie XML oparte na tokenach (211)
  • 7.15. Kilka porad (214)

Rozdział 8. Funkcje goroutine i kanały (215)

  • 8.1. Funkcje goroutine (215)
  • 8.2. Przykład: współbieżny serwer zegara (217)
  • 8.3. Przykład: współbieżny serwer echo (220)
  • 8.4. Kanały (222)
  • 8.5. Zapętlenie równoległe (231)
  • 8.6. Przykład: współbieżny robot internetowy (235)
  • 8.7. Multipleksowanie za pomocą instrukcji select (239)
  • 8.8. Przykład: współbieżna trawersacja katalogów (242)
  • 8.9. Anulowanie (246)
  • 8.10. Przykład: serwer czatu (248)

Rozdział 9. Współbieżność ze współdzieleniem zmiennych (253)

  • 9.1. Sytuacje wyścigu (253)
  • 9.2. Wzajemne wykluczanie: sync.mutex (258)
  • 9.3. Muteksy odczytu/zapisu: sync.RWMutex (261)
  • 9.4. Synchronizacja pamięci (262)
  • 9.5. Leniwe inicjowanie: sync.Once (264)
  • 9.6. Detektor wyścigów (266)
  • 9.7. Przykład: współbieżna nieblokująca pamięć podręczna (267)
  • 9.8. Funkcje goroutine i wątki (274)

Rozdział 10. Pakiety i narzędzie go (277)

  • 10.1. Wprowadzenie (277)
  • 10.2. Ścieżki importów (278)
  • 10.3. Deklaracja package (279)
  • 10.4. Deklaracje import (279)
  • 10.5. Puste importy (280)
  • 10.6. Pakiety i nazewnictwo (282)
  • 10.7. Narzędzie go (284)

Rozdział 11. Testowanie (295)

  • 11.1. Narzędzie go test (296)
  • 11.2. Funkcje testujące (296)
  • 11.3. Pokrycie (310)
  • 11.4. Funkcje benchmarkujące (313)
  • 11.5. Profilowanie (315)
  • 11.6. Funkcje przykładów (318)

Rozdział 12. Refleksja (321)

  • 12.1. Dlaczego refleksja? (321)
  • 12.2. reflect.Type i reflect.Value (322)
  • 12.3. Display - rekurencyjny wyświetlacz wartości (324)
  • 12.4. Przykład: kodowanie S-wyrażeń (329)
  • 12.5. Ustawianie zmiennych za pomocą reflect.Value (332)
  • 12.6. Przykład: dekodowanie S-wyrażeń (334)
  • 12.7. Uzyskiwanie dostępu do znaczników pól struktury (337)
  • 12.8. Wyświetlanie metod typu (340)
  • 12.9. Słowo ostrzeżenia (341)

Rozdział 13. Programowanie niskiego poziomu (343)

  • 13.1. Funkcje unsafe.Sizeof, Alignof i Offsetof (344)
  • 13.2. Typ unsafe.Pointer (346)
  • 13.3. Przykład: głęboka równoważność (348)
  • 13.4. Wywoływanie kodu C za pomocą narzędzia cgo (351)
  • 13.5. Kolejne słowo ostrzeżenia (355)

Skorowidz (356)

  • Title: Język Go. Poznaj i programuj
  • Author: Alan A. A. Donovan, Brian W. Kernighan
  • Original title: The Go Programming Language
  • Translation: Lech Lachowski
  • ISBN: 978-83-283-2468-8, 9788328324688
  • Date of issue: 2016-07-22
  • Format: Ebook
  • Item ID: jgopop
  • Publisher: Helion