Категорії
Електронні книги
-
Бізнес та економіка
- Біткойн
- Ділова жінка
- Коучинг
- Контроль
- Електронний бізнес
- Економіка
- Фінанси
- Фондова біржа та інвестиції
- Особисті компетенції
- Комп'ютер в офісі
- Комунікація та переговори
- Малий бізнес
- Маркетинг
- Мотивація
- Мультимедійне навчання
- Нерухомість
- Переконання та НЛП
- Податки
- Соціальна політика
- Порадники
- Презентації
- Лідерство
- Зв'язки з громадськістю
- Звіти, аналізи
- Секрет
- Соціальні засоби комунікації
- Продаж
- Стартап
- Ваша кар'єра
- Управління
- Управління проектами
- Людські ресурси (HR)
-
Для дітей
-
Для молоді
-
Освіта
-
Енциклопедії, словники
-
Електронна преса
- Architektura i wnętrza
- Biznes i Ekonomia
- Будинок та сад
- Електронний бізнес
- Фінанси
- Особисті фінанси
- Бізнес
- Фотографія
- Інформатика
- Відділ кадрів та оплата праці
- Комп'ютери, Excel
- Бухгалтерія
- Культура та література
- Наукові та академічні
- Охорона навколишнього середовища
- Впливові
- Освіта
- Податки
- Подорожі
- Психологія
- Релігія
- Сільське господарство
- Ринок книг і преси
- Транспорт та спедиція
- Здоров'я та краса
-
Історія
-
Інформатика
- Офісні застосунки
- Бази даних
- Біоінформатика
- Бізнес ІТ
- CAD/CAM
- Digital Lifestyle
- DTP
- Електроніка
- Цифрова фотографія
- Комп'ютерна графіка
- Ігри
- Хакування
- Hardware
- IT w ekonomii
- Наукові пакети
- Шкільні підручники
- Основи комп'ютера
- Програмування
- Мобільне програмування
- Інтернет-сервери
- Комп'ютерні мережі
- Стартап
- Операційні системи
- Штучний інтелект
- Технологія для дітей
- Вебмайстерність
-
Інше
-
Іноземні мови
-
Культура та мистецтво
-
Шкільні читанки
-
Література
- Антології
- Балада
- Біографії та автобіографії
- Для дорослих
- Драми
- Журнали, щоденники, листи
- Епос, епопея
- Нарис
- Наукова фантастика та фантастика
- Фельєтони
- Художня література
- Гумор, сатира
- Інше
- Класичний
- Кримінальний роман
- Нехудожня література
- Художня література
- Mity i legendy
- Лауреати Нобелівської премії
- Новели
- Побутовий роман
- Okultyzm i magia
- Оповідання
- Спогади
- Подорожі
- Оповідна поезія
- Поезія
- Політика
- Науково-популярна
- Роман
- Історичний роман
- Проза
- Пригодницька
- Журналістика
- Роман-репортаж
- Romans i literatura obyczajowa
- Сенсація
- Трилер, жах
- Інтерв'ю та спогади
-
Природничі науки
-
Соціальні науки
-
Шкільні підручники
-
Науково-популярна та академічна
- Археологія
- Bibliotekoznawstwo
- Кінознавство / Теорія кіно
- Філологія
- Польська філологія
- Філософія
- Finanse i bankowość
- Географія
- Економіка
- Торгівля. Світова економіка
- Історія та археологія
- Історія мистецтва і архітектури
- Культурологія
- Мовознавство
- літературні студії
- Логістика
- Математика
- Ліки
- Гуманітарні науки
- Педагогіка
- Навчальні засоби
- Науково-популярна
- Інше
- Психологія
- Соціологія
- Театральні студії
- Богослов’я
- Економічні теорії та науки
- Transport i spedycja
- Фізичне виховання
- Zarządzanie i marketing
-
Порадники
-
Ігрові посібники
-
Професійні та спеціальні порадники
-
Юридична
- Безпека життєдіяльності
- Історія
- Дорожній кодекс. Водійські права
- Юридичні науки
- Охорона здоров'я
- Загальне, компендіум
- Академічні підручники
- Інше
- Закон про будівництво і житло
- Цивільне право
- Фінансове право
- Господарське право
- Господарське та комерційне право
- Кримінальний закон
- Кримінальне право. Кримінальні злочини. Кримінологія
- Міжнародне право
- Міжнародне та іноземне право
- Закон про охорону здоров'я
- Закон про освіту
- Податкове право
- Трудове право та законодавство про соціальне забезпечення
- Громадське, конституційне та адміністративне право
- Кодекс про шлюб і сім'ю
- Аграрне право
- Соціальне право, трудове право
- Законодавство Євросоюзу
- Промисловість
- Сільське господарство та захист навколишнього середовища
- Словники та енциклопедії
- Державні закупівлі
- Управління
-
Путівники та подорожі
- Африка
- Альбоми
- Південна Америка
- Центральна та Північна Америка
- Австралія, Нова Зеландія, Океанія
- Австрія
- Азії
- Балкани
- Близький Схід
- Болгарія
- Китай
- Хорватія
- Чеська Республіка
- Данія
- Єгипет
- Естонія
- Європа
- Франція
- Гори
- Греція
- Іспанія
- Нідерланди
- Ісландія
- Литва
- Латвія
- Mapy, Plany miast, Atlasy
- Мініпутівники
- Німеччина
- Норвегія
- Активні подорожі
- Польща
- Португалія
- Інше
- Росія
- Румунія
- Словаччина
- Словенія
- Швейцарія
- Швеція
- Світ
- Туреччина
- Україна
- Угорщина
- Велика Британія
- Італія
-
Психологія
- Філософія життя
- Kompetencje psychospołeczne
- Міжособистісне спілкування
- Mindfulness
- Загальне
- Переконання та НЛП
- Академічна психологія
- Психологія душі та розуму
- Психологія праці
- Relacje i związki
- Батьківство та дитяча психологія
- Вирішення проблем
- Інтелектуальний розвиток
- Секрет
- Сексуальність
- Спокушання
- Зовнішній вигляд та імідж
- Філософія життя
-
Релігія
-
Спорт, фітнес, дієти
-
Техніка і механіка
Аудіокниги
-
Бізнес та економіка
- Біткойн
- Ділова жінка
- Коучинг
- Контроль
- Електронний бізнес
- Економіка
- Фінанси
- Фондова біржа та інвестиції
- Особисті компетенції
- Комунікація та переговори
- Малий бізнес
- Маркетинг
- Мотивація
- Нерухомість
- Переконання та НЛП
- Податки
- Порадники
- Презентації
- Лідерство
- Зв'язки з громадськістю
- Секрет
- Соціальні засоби комунікації
- Продаж
- Стартап
- Ваша кар'єра
- Управління
- Управління проектами
- Людські ресурси (HR)
-
Для дітей
-
Для молоді
-
Освіта
-
Енциклопедії, словники
-
Історія
-
Інформатика
-
Інше
-
Іноземні мови
-
Культура та мистецтво
-
Шкільні читанки
-
Література
- Антології
- Балада
- Біографії та автобіографії
- Для дорослих
- Драми
- Журнали, щоденники, листи
- Епос, епопея
- Нарис
- Наукова фантастика та фантастика
- Фельєтони
- Художня література
- Гумор, сатира
- Інше
- Класичний
- Кримінальний роман
- Нехудожня література
- Художня література
- Mity i legendy
- Лауреати Нобелівської премії
- Новели
- Побутовий роман
- Okultyzm i magia
- Оповідання
- Спогади
- Подорожі
- Поезія
- Політика
- Науково-популярна
- Роман
- Історичний роман
- Проза
- Пригодницька
- Журналістика
- Роман-репортаж
- Romans i literatura obyczajowa
- Сенсація
- Трилер, жах
- Інтерв'ю та спогади
-
Природничі науки
-
Соціальні науки
-
Науково-популярна та академічна
-
Порадники
-
Професійні та спеціальні порадники
-
Юридична
-
Путівники та подорожі
-
Психологія
- Філософія життя
- Міжособистісне спілкування
- Mindfulness
- Загальне
- Переконання та НЛП
- Академічна психологія
- Психологія душі та розуму
- Психологія праці
- Relacje i związki
- Батьківство та дитяча психологія
- Вирішення проблем
- Інтелектуальний розвиток
- Секрет
- Сексуальність
- Спокушання
- Зовнішній вигляд та імідж
- Філософія життя
-
Релігія
-
Спорт, фітнес, дієти
-
Техніка і механіка
Відеокурси
-
Бази даних
-
Big Data
-
Biznes, ekonomia i marketing
-
Кібербезпека
-
Data Science
-
DevOps
-
Для дітей
-
Електроніка
-
Графіка / Відео / CAX
-
Ігри
-
Microsoft Office
-
Інструменти розробки
-
Програмування
-
Особистісний розвиток
-
Комп'ютерні мережі
-
Операційні системи
-
Тестування програмного забезпечення
-
Мобільні пристрої
-
UX/UI
-
Веброзробка, Web development
-
Управління
Подкасти
- Електронні книги
- Програмування
- Go
- Język Go. Tworzenie kodu z wykorzystaniem najlepszych konwencji i praktyk. Wydanie II
Деталі електронної книги
Język Go. Tworzenie kodu z wykorzystaniem najlepszych konwencji i praktyk. Wydanie II
Go bardzo szybko upowszechnił się wśród twórców usług sieciowych. Jednak zaznajomienie się z jego składnią nie wystarczy programistom, którzy używają innych języków. Poprzestanie na takiej pobieżnej nauce powoduje nieświadome stosowanie wzorców, które w kontekście Go nie mają sensu. Aby skorzystać w pełni z potencjału tego języka, trzeba się nauczyć pisać idiomatyczny kod.
Niezależnie od poziomu doświadczenia ten praktyczny przewodnik ułatwi Ci opanowanie Go. Znajdziesz tu kluczowe informacje, dzięki którym nauczysz się tworzyć przejrzysty, idiomatyczny kod w Go i myśleć jak programista Go. To wydanie uwzględnia nowości, które zostały udostępnione w ciągu ostatnich trzech lat: nowe funkcjonalności, narzędzia i biblioteki. Wyjaśniono tu stosowanie takich usprawnień jak strukturalne rejestrowanie danych, fuzzing, przestrzenie robocze i sprawdzanie pod kątem luk w zabezpieczeniach. Dokładniej opisano ekosystem narzędzi Go i wzbogacono to omówienie ćwiczeniami i przykładami. Jeśli chcesz pisać idiomatyczny kod Go, który będzie niezawodny, trwały i łatwy w późniejszej obsłudze technicznej ― to książka dla Ciebie!
W książce:
- idiomatyczny kod Go
- przygotowanie środowiska programistycznego Go
- stosowanie refleksji oraz modułów unsafe i cgo
- zapewnianie efektywnego działania kodu
- optymalizacja użycia pamięci
- zaawansowane narzędzia programistyczne Go
Książka rzeczowo wyjaśnia najważniejsze cechy języka i omawia dobre wzorce projektowe.
Aaron Schlesinger, starszy inżynier, Microsoft
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
- Назва: Język Go. Tworzenie kodu z wykorzystaniem najlepszych konwencji i praktyk. Wydanie II
- Автор: Jon Bodner
- Оригінальна назва: Learning Go: An Idiomatic Approach to Real-world Go Programming, 2nd Edition
- Переклад: Robert Górczyński, Piotr Cieślak
- ISBN: 978-83-289-1477-3, 9788328914773
- Дата видання: 2024-08-20
- Формат: Eлектронна книга
- Ідентифікатор видання: jegot2
- Видавець: Helion
- вікова категорія: 14+