Darmowa dostawa od 150,00 zł
Język Go. Tworzenie idiomatycznego kodu w praktyce
Promocja Okazja

Język Go. Tworzenie idiomatycznego kodu w praktyce

  • Rok wydania: 2022 Oprawa: miękka ISBN: 9788328383944 Ilość stron: 328 Format: 16,5 x 23,5 cm
Rozmiar

80,10 zł

brutto / 1szt.
Najniższa cena z 30 dni przed obniżką: 89,00 zł / szt.-10%
Cena regularna: 89,00 zł / szt.-10%
Cena katalogowa:
Możesz kupić za pkt.
z
Produkt dostępny w bardzo dużej ilości
Skontaktuj się z obsługą sklepu, aby oszacować czas przygotowania tego produktu do wysyłki.
Produkt dostępny w bardzo dużej ilości
Wysyłka
14 dni na łatwy zwrot
Sprawdź, w którym sklepie obejrzysz i kupisz od ręki
Język Go. Tworzenie idiomatycznego kodu w praktyce
Język Go. Tworzenie idiomatycznego kodu w praktyce
Bezpieczne zakupy
Odroczone płatności. Kup teraz, zapłać później, jeżeli nie zwrócisz
Kup teraz, zapłać później - 4 kroki
Przy wyborze formy płatności, wybierz PayPo.PayPo - kup teraz, zapłać za 30 dni
PayPo opłaci twój rachunek w sklepie.
Na stronie PayPo sprawdź swoje dane i podaj pesel.
Po otrzymaniu zakupów decydujesz co ci pasuje, a co nie. Możesz zwrócić część albo całość zamówienia - wtedy zmniejszy się też kwota do zapłaty PayPo.
W ciągu 30 dni od zakupu płacisz PayPo za swoje zakupy bez żadnych dodatkowych kosztów. Jeśli chcesz, rozkładasz swoją płatność na raty.
Po zakupie otrzymasz pkt.

Go pojawił się w 2009 roku, służy do tworzenia usług internetowych. Pozwala na łatwe pisanie wydajnych aplikacji. Zdobył popularność, jednak wielu programistów nie wykorzystuje w pełni jego możliwości. Dotyczy to zwłaszcza osób, które przy pisaniu kodu Go korzystają z konstrukcji właściwych dla innych języków. Nie jest to właściwa metoda programowania. Aby tworzyć przejrzysty, prawidłowy kod w Go, należy do niego podejść w sposób idiomatyczny.

Ten praktyczny przewodnik jest przeznaczony dla osób, które chcą się nauczyć myśleć jak rasowi programiści Go. Dzięki niemu zaczniesz pisać idiomatyczny kod w Go, co pozwoli Ci optymalnie wykorzystywać możliwości tego języka. Dowiesz się, jak wygląda środowisko programistyczne Go i w jaki sposób przygotować je do pracy, również zespołowej. Przeanalizujesz kwestie zmiennych, typów, struktur sterujących i funkcji Go i być może odkryjesz subtelne niuanse odróżniające ten język od innych. Zapoznasz się także ze sprawdzonymi wzorcami projektowymi i przekonasz się, że naprawdę warto je stosować we własnym kodzie. Osobny rozdział poświęcono przyszłej implementacji typów sparametryzowanych i jej integracji z istniejącymi mechanizmami języka.

W książce:

  • czym jest idiomatyczny kod w języku Go
  • najlepsze wzorce projektowe w Go
  • przygotowanie i konfiguracja środowiska programistycznego
  • zastosowanie mechanizmu refleksji, a także pakietów unsafe i cgo
  • tworzenie wydajnego kodu w Go
  • możliwe problemy, ich unikanie i rozwiązywanie

Poznaj Go: nudny język do pisania fascynujących programów!

O autorze

Jon Bodner jest inżynierem oprogramowania i architektem z dwudziestoletnim doświadczeniem. Zajmował się tworzeniem i rozwijaniem aplikacji dla różnych sektorów, między innymi dla finansów, handlu, ochrony zdrowia czy administracji. Często występuje na konferencjach dotyczących języka Go. Jest też współautorem wielu narzędzi służących do rozwijania oprogramowania.

Spis treści książki

  • Opinie o książce Język Go. Tworzenie idiomatycznego kodu w praktyce
  • Przedmowa
    • Do kogo jest skierowana ta książka
    • Konwencje zastosowane w tej książce
    • Posługiwanie się przykładami
    • Podziękowania
  • Rozdział 1. Konfigurowanie środowiska Go
    • Instalowanie narzędzi Go
    • Środowisko robocze Go
    • Polecenie go
      • Polecenia go run i go build
        • Polecenie go run
        • Polecenie go build
      • Instalowanie pomocniczych narzędzi Go
      • Formatowanie kodu
    • Analiza składniowa i weryfikacja kodu
    • Dobór narzędzi
      • Visual Studio Code
      • GoLand
      • Go Playground
    • Pliki reguł
    • Aktualizacja
    • Podsumowanie
  • Rozdział 2. Typy podstawowe i deklaracje
    • Typy wbudowane
      • Wartość zerowa
      • Literały
      • Zmienne boolowskie
      • Typy numeryczne
        • Typy całkowite
        • Specjalne typy całkowite
        • Wybór typu całkowitego
        • Operatory wartości całkowitych
        • Typy zmiennoprzecinkowe
        • Typy zespolone (zapewne nie będziesz się nimi posługiwać)
      • Przedsmak informacji o łańcuchach i runach
      • Jawna konwersja typów
    • Słowo kluczowe var a operator :=
    • Zastosowanie słowa kluczowego const
    • Stałe typowane i nietypowane
    • Niewykorzystane zmienne
    • Nazywanie zmiennych i stałych
    • Podsumowanie
  • Rozdział 3. Typy złożone
    • Tablice za mało elastyczne, by używać ich bezpośrednio
    • Wycinki
      • Funkcja len
      • Funkcja append
      • Pojemność
      • Funkcja make
      • Deklarowanie wycinka
      • Wycinki wycinków
        • Wycinki czasami współdzielą pamięć
      • Przekształcanie tablic w wycinki
      • Funkcja copy
    • Łańcuchy, runy i bajty
    • Mapy
      • Mapy czytanie i zapisywanie danych
      • Idiom comma ok
      • Usuwanie elementów z map
      • Używanie map jako zbiorów
    • Struktury
      • Struktury anonimowe
      • Porównywanie i konwertowanie struktur
    • Podsumowanie
  • Rozdział 4. Bloki, przesłanianie oraz struktury sterujące
    • Bloki
      • Przesłanianie zmiennych
      • Wykrywanie przesłoniętych 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
        • Iterowanie map
        • Iterowanie łańcuchów
        • Wartość zwracana przez pętlę for-range jest kopią
      • 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!
    • Podsumowanie
  • Rozdział 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ść
    • Podsumowanie
  • Rozdział 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
    • Podsumowanie
  • Rozdział 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
    • 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)
    • Podsumowanie
  • Rozdział 8. 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
    • Funkcje Is i As
    • Opakowywanie błędów przy użyciu instrukcji defer
    • Funkcje panic i recover
    • Tworzenie zrzutu stosu w przypadku błędu
    • Podsumowanie
  • Rozdział 9. Moduły, pakiety i importowanie
    • Repozytoria, moduły i pakiety
    • Plik go.mod
    • Tworzenie pakietów
      • Importowanie i eksportowanie
      • Tworzenie pakietu i uzyskiwanie dostępu do niego
      • Nazewnictwo pakietów
      • Struktura modułu
      • Zastępowanie nazwy pakietu
      • Komentarze dotyczące pakietów i format godoc
      • Pakiet internal
      • Funkcja init unikaj jej, jeśli to możliwe
      • Zależności cykliczne
      • Eleganckie podejście do zmiany nazw i porządkowania API
    • Obsługa modułów
      • Importowanie kodu
      • Obsługa wersji
      • Wybór wersji minimalnej
      • Aktualizowanie zgodnych wersji
      • Aktualizowanie niezgodnych wersji
      • Vendoring
      • Serwis pkg.go.dev
      • Dodatkowe informacje
    • Publikowanie modułu
    • Wersjonowanie modułu
    • Serwery proxy modułów
      • Wybór serwera proxy
      • Repozytoria prywatne
    • Podsumowanie
  • Rozdział 10. 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
      • Wzorzec z kanałem done
      • Zastosowanie funkcji anulującej 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?
    • Podsumowanie
  • Rozdział 11. 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
        • Oprogramowanie pośredniczące
        • Rozszerzanie możliwości serwera przy użyciu idiomatycznych modułów zewnętrznych
    • Podsumowanie
  • Rozdział 12. Kontekst
    • Czym jest kontekst?
    • Anulowanie
    • Liczniki czasu
    • Anulowanie kontekstu we własnym kodzie
    • Wartości
    • Podsumowanie
  • Rozdział 13. Pisanie testów
    • Podstawy testowania
      • Zgłaszanie błędów w testach
      • Konfigurowanie i demontowanie
      • 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
    • Sprawdzanie pokrycia kodu
    • 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
    • Podsumowanie
  • Rozdział 14. 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
        • Typy i rodzaje
        • 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 to się opłaca
    • Pakiet unsafe rzeczywiście jest niebezpieczny
      • Zastosowanie pakietu unsafe do konwersji zewnętrznych danych binarnych
      • Pakiet unsafe a łańcuchy i wycinki
      • Narzędzia związane z pakietem unsafe
    • W pakiecie cgo chodzi o integrację, nie o wydajność
    • Podsumowanie
  • Rozdział 15. Spojrzenie w przyszłość typy sparametryzowane w Go
    • Typy sparametryzowane ograniczają redundantność kodu i zwiększają bezpieczeństwo typowania
    • Wstęp do typów sparametryzowanych w Go
    • Zastosowanie list typów do określania operatorów
    • Funkcje sparametryzowane i algorytmy abstrakcyjne
    • Listy typów ograniczają możliwość przypisywania stałych oraz implementacji
    • Pominięte kwestie
    • Typy sparametryzowane a idiomatyczny kod w Go
    • Co niesie przyszłość?
    • Podsumowanie
    • O autorze
    • Kolofon
Marka
Autor
Jon Bodner
ISBN
9788328383944
Potrzebujesz pomocy? Masz pytania?Zadaj pytanie a my odpowiemy niezwłocznie, najciekawsze pytania i odpowiedzi publikując dla innych.
Zapytaj o produkt
Jeżeli powyższy opis jest dla Ciebie niewystarczający, prześlij nam swoje pytanie odnośnie tego produktu. Postaramy się odpowiedzieć tak szybko jak tylko będzie to możliwe. Dane są przetwarzane zgodnie z polityką prywatności. Przesyłając je, akceptujesz jej postanowienia.
Napisz swoją opinię
Twoja ocena:
5/5
Dodaj własne zdjęcie produktu:
pixel