reklama - zainteresowany?

J - Helion

J
ebook
Autor: Jon Bodner
Tytuł oryginału: Learning Go: An Idiomatic Approach to Real-world Go Programming, 2nd Edition
Tłumaczenie: Robert G
ISBN: 978-83-289-1477-3
stron: 432, Format: ebook
Data wydania: 2024-08-20
Księgarnia: Helion

Cena książki: 74,25 zł (poprzednio: 99,00 zł)
Oszczędzasz: 25% (-24,75 zł)

Dodaj do koszyka J

Tagi: Go - Programowanie

Go bardzo szybko upowszechni

Dodaj do koszyka J

 

Osoby które kupowały "J", wybierały także:

  • Programowanie z GO. Kurs video. Podstawy języka
  • Programowanie w języku Go. Koncepcje i przykłady. Wydanie II
  • Język Go. Poznaj i programuj
  • Język Go. Poznaj i programuj
  • J

Dodaj do koszyka J

Spis treści

Język Go. Tworzenie kodu z wykorzystaniem najlepszych konwencji i praktyk. Wydanie II eBook -- spis treści

Przedmowa

1. Konfigurowanie środowiska Go

  • Instalowanie narzędzi Go
    • Rozwiązywanie problemów związanych z instalowaniem Go
    • Narzędzia Go
  • Pierwszy program w Go
    • Tworzenie modułu Go
    • Polecenie go build
    • Polecenie go fmt
    • Polecenie go vet
  • Dobór narzędzi
    • Visual Studio Code
    • GoLand
    • Go Playground
  • Pliki reguł
  • Obietnica zgodności Go
  • Aktualizacja
  • Ćwiczenia
  • Podsumowanie

2. Typy podstawowe i deklaracje

  • Typy wbudowane
    • Wartość zerowa
    • Literały
    • Zmienne boolowskie
    • Typy numeryczne
    • Przedsmak informacji o łańcuchach i runach
    • Jawna konwersja typów
    • Literały nie mają typu
  • Słowo kluczowe var a operator :=
  • Zastosowanie słowa kluczowego const
  • Stałe typowane i nietypowane
  • Niewykorzystane zmienne
  • Nazywanie zmiennych i stałych
  • Ćwiczenia
  • Podsumowanie

3. Typy złożone

  • Tablice - za mało elastyczne, by używać ich bezpośrednio
  • Wycinki
    • Funkcja len
    • Funkcja append
    • Pojemność
    • Funkcja make
    • Opróżnianie wycinka
    • Deklarowanie wycinka
    • Wycinki wycinków
    • Funkcja copy
    • Konwersja tablicy na wycinek
    • Konwersja wycinka na tablicę
  • Łańcuchy, runy i bajty
  • Mapy
    • Mapy - czytanie i zapisywanie danych
    • Idiom "comma ok"
    • Usuwanie elementów z map
    • Opróżnianie mapy
    • Porównywanie map
    • Używanie map jako zbiorów
  • Struktury
    • Struktury anonimowe
    • Porównywanie i konwertowanie struktur
  • Ćwiczenia
  • Podsumowanie

4. Bloki, przesłanianie oraz struktury sterujące

  • Bloki
  • Przesłanianie zmiennych
  • Instrukcja if
  • Cztery wersje pętli for
    • Pełna pętla for
    • Warunkowa pętla for
    • Nieskończona pętla for
    • Instrukcje break i continue
    • Instrukcja for-range
    • Oznaczanie instrukcji etykietami
    • Wybór właściwej wersji pętli for
  • Instrukcja switch
    • Puste instrukcje switch
    • Wybór pomiędzy instrukcjami if a switch
  • Instrukcja goto. tak, goto!
  • Ćwiczenia
  • Podsumowanie

5. Funkcje

  • Deklarowanie i wywoływanie funkcji
    • Symulowanie parametrów nazwanych i opcjonalnych
    • Wycinki a zmienna liczba parametrów wejściowych
    • Zwracanie wielu wartości
    • Jeśli funkcja zwraca wiele wartości, należy je traktować osobno
    • Ignorowanie zwróconych wartości
    • Nazywanie zwracanych wartości
    • Pusta instrukcja return - stosowanie surowo wzbronione!
  • Funkcje to wartości
    • Deklaracja typu funkcyjnego
    • Funkcje anonimowe
  • Domknięcia
    • Przekazywanie funkcji jako argumentów
    • Zwracanie funkcji przez inne funkcje
  • Instrukcja defer
  • W Go obowiązuje wywołanie przez wartość
  • Ćwiczenia
  • Podsumowanie

6. Wskaźniki

  • Krótkie wprowadzenie do wskaźników
  • Nie bój się wskaźników
  • Wskaźniki oznaczają argumenty modyfikowalne
  • Wskaźniki są ostatnią deską ratunku
  • Wydajność przekazywania wskaźników
  • Wartość zerowa a brak wartości
  • Różnica między mapami a wycinkami
  • Wycinki w charakterze buforów
  • Jak ułatwić pracę mechanizmowi garbage collector?
  • Dostrajanie mechanizmu garbage collector
  • Ćwiczenia
  • Podsumowanie

7. Typy, metody i interfejsy

  • Typy w języku Go
  • Metody
    • Odbiorcy wskaźników i odbiorcy wartości
    • Programowanie metod pod kątem instancji nil
    • Metody także są funkcjami
    • Funkcje kontra metody
    • Deklaracje typów nie oznaczają dziedziczenia
    • Typy są elementem dokumentacji programu
  • Iota służy do tworzenia typów wyliczeniowych. czasami
  • Używaj osadzania w przypadku kompozycji
  • Osadzanie nie jest dziedziczeniem
  • Krótki przewodnik po interfejsach
  • Interfejsy są bezpieczne pod względem typów (duck typing)
  • Osadzanie a interfejsy
  • Przyjmuj interfejsy, zwracaj struktury
  • Interfejsy a nil
  • Interfejsy można porównywać
  • Pusty interfejs nie informuje o niczym
  • Asercja i przełączniki typów
  • Asercje i przełączniki typów warto stosować oszczędnie
  • Typy funkcyjne są pomostem dla interfejsów
  • Niejawna implementacja interfejsu ułatwia wstrzykiwanie zależności
  • Wire
  • Go nie jest typowym językiem zorientowanym obiektowo (i bardzo dobrze)
  • Ćwiczenia
  • Podsumowanie

8. Typy sparametryzowane w Go

  • Typy sparametryzowane ograniczają redundantność kodu i zwiększają bezpieczeństwo typowania
  • Wstęp do typów sparametryzowanych w Go
  • Funkcje sparametryzowane i algorytmy abstrakcyjne
  • Typy sparametryzowane i interfejsy
  • Zastosowanie list typów do określania operatorów
  • Inferencja typów i typy sparametryzowane
  • Listy typów ograniczają możliwość przypisywania stałych oraz implementacji
  • Połączenie funkcji sparametryzowanych i sparametryzowanych struktur danych
  • Więcej o interfejsie comparable
  • Pominięte kwestie
  • Typy sparametryzowane a idiomatyczny kod w Go
  • Dodawanie typów sparametryzowanych do biblioteki standardowej
  • Co niesie przyszłość?
  • Ćwiczenia
  • Podsumowanie

9. Błędy

  • Obsługa błędów - podstawy
  • W przypadku prostych błędów używaj łańcuchów znaków
  • Błędy typu sentinel
  • Błędy to wartości
  • Opakowywanie błędów
  • Opakowywanie wielu błędów
  • Funkcje Is i As
  • Opakowywanie błędów przy użyciu instrukcji defer
  • Funkcje panic i recover
  • Tworzenie zrzutu stosu w przypadku błędu
  • Ćwiczenia
  • Podsumowanie

10. Moduły, pakiety i importowanie

  • Repozytoria, moduły i pakiety
  • Plik go.mod
    • Stosowanie dyrektywy go do zarządzania wersjami Go podczas kompilacji
    • Dyrektywa require
  • Tworzenie pakietów
    • Importowanie i eksportowanie
    • Tworzenie pakietu i uzyskiwanie dostępu do niego
    • Nazewnictwo pakietów
    • Zastępowanie nazwy pakietu
    • Komentarze dotyczące pakietów i format godoc
    • Pakiet internal
    • Zależności cykliczne
    • Struktura modułu
    • Eleganckie podejście do zmiany nazw i porządkowania API
    • Funkcja init - unikaj jej, jeśli to możliwe
  • Obsługa modułów
    • Importowanie kodu
    • Obsługa wersji
    • Wybór wersji minimalnej
    • Aktualizowanie zgodnych wersji
    • Aktualizowanie niezgodnych wersji
    • Vendoring
    • Serwis pkg.go.dev
  • Publikowanie modułu
  • Wersjonowanie modułu
    • Nadpisywanie zależności
    • Wycofywanie wersji modułu
    • Stosowanie przestrzeni roboczych w celu jednoczesnego modyfikowania modułów
  • Serwery proxy modułów
    • Wybór serwera proxy
    • Repozytoria prywatne
  • Dodatkowe informacje
  • Ćwiczenia
  • Podsumowanie

11. Narzędzia Go

  • Stosowanie polecenia go run do wypróbowywania małych programów
  • Dodawanie narzędzi zewnętrznych za pomocą polecenia go install
  • Usprawnianie formatowania poleceń import za pomocą goimports
  • Stosowanie skanerów sprawdzających jakość kodu źródłowego
    • staticcheck
    • revive
    • golangci-lint
  • Stosowanie narzędzia govulncheck do skanowania pod kątem zależności, w których występują luki w zabezpieczeniach
  • Osadzanie treści w programie
  • Osadzanie plików ukrytych
  • Stosowanie narzędzia go generate
  • Narzędzie go generate i pliki Makefile
  • Odczytywanie z pliku binarnego Go informacji dotyczących kompilacji
  • Tworzenie plików binarnych Go dla innych platform
  • Stosowanie znaczników kompilacji
  • Testowanie wersji Go
  • Stosowanie polecenia go help w celu uzyskania dalszych informacji na temat narzędzi Go
  • Ćwiczenia
  • Podsumowanie

12. Przetwarzanie współbieżne w Go

  • Kiedy warto używać przetwarzania współbieżnego?
  • Goprocedury
  • Kanały
    • Czytanie, zapisywanie i buforowanie
    • Pętla for-range i kanały
    • Zamykanie kanału
    • Zachowania kanałów
  • Instrukcja select
  • Zalecane rozwiązania i wzorce dotyczące współbieżności
    • API powinno być pozbawione współbieżności
    • Goprocedury, pętle for i zmieniające się. zmienne
    • Pamiętaj o "sprzątaniu" po goprocedurach
    • Zastosowanie kontekstu do wstrzymania goprocedury
    • Kiedy używać kanałów buforowanych, a kiedy niebuforowanych?
    • Mechanizm backpressure
    • Wyłączanie klauzuli case w instrukcji select
    • Określanie limitu czasu
    • Zastosowanie struktury WaitGroup
    • Uruchamianie kodu dokładnie raz
    • Łączenie różnych aspektów przetwarzania współbieżnego
  • Kiedy używać muteksów zamiast kanałów?
  • Operacje atomowe - raczej Ci się nie przydadzą
  • Gdzie szukać dodatkowych informacji o współbieżności?
  • Ćwiczenia
  • Podsumowanie

13. Biblioteka standardowa

  • Pakiet io i przyjaciele
  • Pakiet time
    • Czas od uruchomienia systemu
    • Liczniki czasu i limit czasu
  • Pakiet encoding/json
    • Zastosowanie znaczników struktur w celu dodania metadanych
    • Unmarshaling i marshaling
    • JSON i operacje odczytywania i zapisywania
    • Kodowanie i dekodowanie strumieni JSON
    • Niestandardowe przetwarzanie obiektów JSON
  • Pakiet net/http
    • Klient
    • Serwer
    • ResponseController
  • Strukturalne logowanie zdarzeń
  • Ćwiczenia
  • Podsumowanie

14. Kontekst

  • Czym jest kontekst?
  • Wartości
  • Anulowanie
  • Kontekst i liczniki czasu
  • Anulowanie kontekstu we własnym kodzie
  • Ćwiczenia
  • Podsumowanie

15. Pisanie testów

  • Podstawy testowania
    • Zgłaszanie błędów w testach
    • Konfigurowanie i demontowanie
    • Testowanie z użyciem zmiennych środowiskowych
    • Przechowywanie prostych danych testowych
    • Przechowywanie wyników testowania w pamięci podręcznej
    • Testowanie publicznego API
    • Porównywanie wyników testów przy użyciu modułu go-cmp
  • Testy tablicowe
  • Jednoczesne wykonywanie testów
  • Sprawdzanie pokrycia kodu
  • Fuzzing
  • Testowanie wydajności
  • Zalążki w języku Go
  • Pakiet httptest
  • Testy integracyjne i znaczniki kompilacji
  • Wyszukiwanie problemów ze współbieżnością przy użyciu narzędzia race checker
  • Ćwiczenia
  • Podsumowanie

16. W krainie smoków: mechanizm refleksji oraz pakiety unsafe i cgo

  • Mechanizm refleksji umożliwia manipulowanie typami podczas działania programu
    • Typy, rodzaje i wartości
    • Tworzenie nowych wartości
    • Zastosowanie refleksji do sprawdzenia, czy wartość interfejsu wynosi nil
    • Tworzenie marshalera danych przy użyciu mechanizmu refleksji
    • Zastosowanie refleksji do tworzenia funkcji automatyzujących powtarzalne zadania
    • Przy użyciu refleksji da się tworzyć struktury, ale. nie rób tego
    • Przy użyciu refleksji nie da się tworzyć metod
    • Używaj refleksji tylko wtedy, gdy się to opłaca
  • Pakiet unsafe rzeczywiście jest niebezpieczny
    • Stosowanie funkcji Sizeof i Offseof
    • Zastosowanie pakietu unsafe do konwersji zewnętrznych danych binarnych
    • Uzyskiwanie dostępu do niewyeksportowanych pól
    • Narzędzia związane z pakietem unsafe
  • W pakiecie cgo chodzi o integrację, nie o wydajność
  • Ćwiczenia
  • Podsumowanie

Dodaj do koszyka J

Code, Publish & WebDesing by CATALIST.com.pl



(c) 2005-2024 CATALIST agencja interaktywna, znaki firmowe należą do wydawnictwa Helion S.A.