Jasne smernice za upotrebu Go za sisteme u produkciji
Detaljna objašnjenja kako interno funkcioniše Go, izbori zamisli koje stoje iza jezika i kako optimizirati Go kod
Potpuni vodič za sve tipove podataka Go, složene tipove i strukture podataka
Glavni paketi, refleksija i interfejsi za efektivno Go programiranje
Izgradnja mrežnog koda za sisteme visokih performansi, uključujući aplikacije na strani servera i klijenta
Interfejsi na druge sisteme pomoću WebAssembly, JSON i gRPC
Pisanje pouzdanog istovremenog koda visokih performansi
Izgradnja sisteme za mašinsko učenje u Go-u, od jednostavne statističke regresije do složenih neuronskih mreža
Često (pogrešno) nazivan kao Golang, Go je jezik budućnosti sistema sa visokim performansama. Mastering Go, drugo izdanje će vam pomoći da postanete produktivan ekspert za programiranje u Go-u, dograđujući i poboljšavajući prethodno izdanje. Mastering Go, drugo izdanje pokazuje kako iskoristiti Go u radu na stvarnim sistemima u produkciji. Za one programere koji već poznaju osnove Go jezika, ova knjiga sadrži primere, obrasce i jasna objašnjenja koja će vam pomoći da potpuno shvatite Go-ove mogućnosti i primenite ih u svom programerskom radu. Knjiga pokriva nijanse Go-a, s detaljnim vodičima o tipovima i strukturama, paketima, konkurentnosti, mrežnom programiranju, dizajnu kompajlera, optimizaciji i još mnogo toga. Svako poglavlje se završava vežbama i resursima kako biste u potpunosti utvrdili svoje novo znanje. Ovo drugo izdanje sadrži potpuno novo poglavlje o mašinskom učenju u Go, vodeći vas od tehnika osnovne statistike preko jednostavne regresije i klasterisanjem do klasifikacije, neuronskih mreža i detekcije anomalija. Ostala poglavlja su proširena sa ciljem da pokriju upotrebu Go sa Dockerom i Kubernetesom, Git, WebAssembly, JSON i još mnogo toga. Ako programski jezik Go shvatite ozbiljno, drugo izdanje ove knjige je osnovni vodič za ekspertske tehnike.
Drugo izdanje bestseler vodiča za napredno Go programiranje je prošireno i obuhvata mašinsko učenje, više Go paketa i niz savremenih tehnika razvoja
Kompletira edukaciju Go programera sa vodičima iz realnog sveta kako bi se izgrađivali produkcioni sistemi visokih performansi
Prepuno praktičnih primera i obrazaca za primenu u vlastitom razvojnom radu
Jasno objašnjava Go nijanse i osobine kako bi se uklonila frustracija iz Go razvoja
Sadržaj
1 Go i operativni sistem Istorija Go Kuda ide Go? Prednosti Go Kompajliranje Go koda Izvršavanje Go koda Dva Go pravila Preuzimanje Go paketa UNIX stdin, stdout i stderr O ispisu izlaza Korišćenje standardnog izlaza Dobijanje korisničkog unosa O izlazu grešaka Pisanje u log datoteku Rukovanje greškama u Go Korišćenje Dockera Vežbe i linkovi Rezime
2 Razumevanje Go komponenti Go kompajler Sakupljanje smeća Pozivanje C koda iz Go Pozivanje Go funkcija iz C koda Ključna reč defer Panic i recover Dva praktična UNIX alata, Vaše Go okruženje Naredba go env Go assembler Čvorovi stabla Saznajte više o Go build Kreiranje WebAssembly koda Opšti savet za kodiranje u Go Vežbe i linkovi Rezime
3 Rad s osnovnim tipovima Go podataka Numeric tipovi podataka Go petlje Go nizovi Go kriške Go mape Go konstante Go pokazivači Vremena i datumi Merenje vremena izvršavanja Veb linkovi i vežbe Rezime
4 Korišćenje složenih tipova
O složenim tipovima Strukture Tuples Regularni izrazi i podudaranje uzoraka Stringovi Iskaz switch Izračunavanje Pi s velikom preciznošću Izrada spremišta ključ-vrednost u Go Go i JSON format Go i YAML format Dodatni resursi Vežbe i linkovi Rezime
5 Kako poboljšati Go Code sa strukturama podataka
O grafovima i čvorovima Složenost algoritma Binarna stabla u Go Hash tabele u Go Povezane liste u Go Dvostruko povezane liste u Go Redovi čekanja u Go Stekovi u Go Paket container Generisanje slučajnih brojeva Generisanje sigurnih slučajnih brojeva Izvođenje računanja s matricama Rešavanje Sudoku zagonetki Dodatni resursi Vežbe Rezime
6 Ono što možda ne znate o Go paketima i funkcijama
O Go paketima
O Go funkcijama
Razvoj vlastitih Go paketa
Kreiranje dobrih Go paketa
Paket syscall
Paketi go/scanner, go/parser i go/token
Tekst i HTML predlošci
Dodatni resursi
Vježbe
Rezime
7 Reflection i interfejsi za sva godišnja doba
Metode tipa
Go interfejsi
Pisanje vlastitog interfejsa
Refleksija
Objektno orijentisano programiranje u Go Uvod u git i GitHub Debugging sa Delve Dodatni resursi Vežbe Rezime
8 Naložiti UNIX sistemu šta da radi O UNIX procesima Paket flag Paket viper
Paket cobra
Interfejsi io.Reader i io.Writer Paket bufio Čitanje text datoteka Čitanje specifične količine podataka Prednosti binarnih formata Čitanje CSV datoteka Pisanje u datoteku Učitavanje i pohranjivanje podataka na disk Revidirani String paket O paketu bytes
Dozvole za datoteke Rukovanje UNIX signalima Programiranje UNIX cevi u Go O syscall.PtraceRegs Praćenje sistemskih poziva Korisnički ID i ID grupe Docker API i Go Dodatni resursi Vežbe
Rezime
9 Istovremenost u Go - Goroutines, kanali, i cevovodi O procesima, nitima i goroutinama Goroutines Čekanje da goroutines završe Kanali Cevovodi Race uslovi Poređenje modela istovremenosti Go i Rust Poređenje modela istovremenosti Go i Erlang Dodatni resursi Vežbe Rezime
10 Istovremenost u Gou - Napredne teme Revidiran planer programa
Ključna reč select Istek vremena goroutine Revidirani Go kanali Deljena memorija i deljene varijable Revidiranje Go iskaza Catching uslova trke Paket context Dodatni resursi Vežbe Rezime
11 Testiranje koda, optimizacija i profilisanje O optimizaciji Optimizacija Go koda Profilisanje Go koda Uslužni Go alat za praćenje
Testiranje Go koda Testiranje HTTP servera s bazom podataka u pozadini Benchmarking Go koda Jednostavni primer Benchmarkinga Benchmarking baferisanog zapisivanja Pronalaženje nedostupnog Go koda Poprečno kompajliranje Kreiranje primera funkcija Od Go koda do mašinskog koda Generisanje dokumentacije Korišćenje Docker slika Dodatni resursi Vežbe
Rezime
12 Osnove mrežnog programiranja u Go
O net/http, net i http.RoundTripper O TCP/IP O IPv4 i IPv6 Uslužni program naredbenog reda nc(1) Čitanje konfiguracije mrežnih interfejsa Izvođenje DNS pretraživanja Izrada web servera u Go HTTP praćenje Kreiranje web klijenta u Go
Istek vremena HTTP veze Alati Wireshark i tshark gRPC i Go Dodatni resursi Vežbe Rezime
13 Mrežno programiranje - izgradnja vlastitih servera i klijenata Rad s HTTPS saobraćajem Standardni Go paket net TCP klijent TCP server UDP klijent Razvijoj UDP servera Istovremeni TCP server Izrada Docker slike za Go TCP/IP server Pozivanje udaljene procedure (RPC) Izvođenje mrežnog programiranja niskog nivoa Dodatni resursi Vežbe Rezime
14 Mašinsko učenje u Go Proračun jednostavnih statističkih osobina Regresija Klasifikacija Grupisanje Detekcija anomalija Neuronske mreže Outlier analiza Rad sa TensorFlow Razgovor sa Kafkom Dodatni resursi
Vežbe
Rezime Kuda dalje?
Detaljni podaci o knjizi
Naslov: GO od početnika do profesionalca Izdavač: Kompjuter biblioteka Strana: 798 (cb) Pismo: latinica Format: 16,8 x 23,5 cm Godina izdanja: 2020 ISBN: 978-86-7310-554-3