golang

Bokanmeldelse The Go Programming Language

Bokanmeldelse The Go Programming Language
The Go Programming Language, av Alan A. EN. Donovan og Brian Kernighan, blir anmeldt i dette innlegget. Brian Kernighan er kjent som medforfatter av The C Programming Language, og selve boken har blitt avskåret som en standardtekst i generasjoner av ingeniører. Go har ofte blitt referert til som det 21. århundre C og The Go Programming Language kan veldig godt være standard referansetekst for det.

Begynnelsen

Boken starter sterkt med en Opplæringen kapittel som gir deg et enkelt “Hello, World” -program og viser også fordelene ved å bruke Go. Minimalismen vil garantert appellere til programmerere som har hatt det med oppblåste biblioteker. Du kan ikke erklære en variabel og ikke bruke den i resten av Go-programmet ditt. Du kan ikke importere et bibliotek og ikke bruke det i koden din. Det vil rett og slett ikke kompilere. Du trenger ikke å krangle om formatet på koden din. For eksempel den eldgamle kampen mellom:

func main ()

//Og
funk main ()

Avgjøres av kompilatoren som bare aksepterer førstnevnte og ikke sistnevnte. Andre nyanser avgjøres av verktøy som gofmt som tar Go-kildefilen din og formaterer den på en standardisert måte. Så alle Go-programmene følger samme konvensjon, noe som igjen forbedrer lesbarheten til koden.

Det første kapitlet legger vekt på disse salgsargumentene og gjør en veldig god jobb med å gi leserne en smakebit på hva Go egentlig handler om: Et språk for generelle formål designet for å generere statiske binærfiler med så lite oppblåsthet som mulig.

Brevity

Erfarne programmerere er lei av å lære om de samme konseptene som for løkker, if-else utsagn osv. Igjen og igjen for forskjellige språk. Det første kapitlet sniker seg inn i all denne kjedelige informasjonen ved å oppmuntre brukerne til å skrive enkle Unix-y-programmer (som tilfellet var med C-programmeringsspråket).

En ulempe med dette rask introduksjon er det faktum at nye lesere vil bli helt forvirret av syntaksen. Programmer begynner raskt å bruke prikkoperatørene og forskjellige objektorienterte programmeringskonsepter etter to eller tre eksempler helt i første kapittel. Dette er viktig for å opprettholde hastigheten og kortheten til den samlede leseopplevelsen, og er et veldig bevisst valg fra forfatterens side.

Boken forutsetter også at leserne er kjent med minst ett programmeringsspråk, før de plukket opp denne boka. Dette kan være Python, JavaScript, Java, C eller andre språk for generell bruk.

Companion nettsted

Boken kommer med et ledsagende nettsted. Du kan importere programmene gitt i boken direkte fra dette nettstedet og kjøre den uten å måtte skrive (eller kopiere og lime inn fra Kindle-appen din). Du kan til og med sjekke ut første kapittel (som forresten er min favoritt) gratis på dette nettstedet og bestemme om denne boka er for deg eller ikke.

Forfatterne har lagt merke til smertene til en programmerer som prøver å lære et nytt språk. Distraksjoner holdes på et minimum med hvert programs nettlink som er nevnt på toppen av det. Så du kan hente koden, kjøre den, tilpasse den og bygge videre på den, hvis du vil.

En omfattende liste over feil er også vedlikeholdt på dette nettstedet, og du kan henvise det hvis du tror noe er galt.

Seriøs virksomhet

Hvis du forventer en enkel guide for kausal skripting, er dette ikke boka for deg. Årsaken er at mye bakke dekkes først, og deretter fylles detaljene etter hvert som vi utvikler oss mot senere kapitler.

Denne boken er for folk som ønsker å forstå konstruksjonene, detaljene om hvordan Go fungerer. Du vil lage GIF-er, skrive webservere og plotte Mandelbrot-sett og mye mye mer, men ingenting av det vil være fornuftig med mindre du har tatt hensyn til de finere punktene som er gitt i de foregående kapitlene (med kapittel 1 som noe av et unntak, som det er ment som en oversikt over språket).

Flertallet av resten av boken fokuserer på forskjellige syntaksrelaterte detaljer om Go, inkludert ting som kontrollløkker, variabler, funksjoner, metoder, Go-rutiner og mye mye mer. Alt dette illustreres ved å få leseren til å gå gjennom nyttige programmer og ikke sammensatte idealistiske scenarier.

Selv om du ønsker å hoppe over de fleste kapitler fra midten av boka, vil jeg på det sterkeste foreslå å grave gjennom kapittel 5 for å forstå Panikk, Feilhåndtering og anonyme funksjoner. Imidlertid vil jeg sterkt anbefale å gå gjennom alle kapitlene sekvensielt før vi kommer til kronjuvelen til Go - Concurrency.

Vekt på samtidighet

Go språk er designet, fra bunnen av med tanke på samtidighet. De fleste moderne prosessorer er flerkjernede og flertrådede, men programmerere forakter komplikasjonene de møter når de skriver programmer for å kjøre på en slik arkitektur. Med cloud computing på vei mot distribuerte systemer, vil samtidig kode snart være den eneste godt fungerende koden der ute.

Kapittelet om samtidighet er skrevet for å slå frykten for samtidig design ut av hodet vårt. Det er komplisert, ja, men ikke håpløst. Boken gjør en god jobb med å formidle hvordan Go kan hjelpe deg med å utvikle riktig tankesett ut fra dette.

Konklusjon

Opplevelsen av Kernighan fra de tidlige UNIX-dagene er fremdeles veldig levedyktig i den moderne tidsalderen med sky-skrivebord, GPU-er, IOT, sky og hva som vil følge neste. Han og Donovan har gjort en god jobb med å formidle denne visdommen i applikasjonsdesign og UNIX-filosofi ved å bruke et enkelt, moderne språk med tanke på ytelse, og jeg nøler ikke med å anbefale denne boka til alle fra en videregående student til en senior programvareingeniør med tiår med erfaring.

Topp Oculus App Lab-spill
Hvis du er Oculus-hodesettinnehaver, må du være klar over sideloading. Sidelading er prosessen med å installere ikke-butikkinnhold på hodesettet. Side...
Topp 10 spill å spille på Ubuntu
Windows-plattformen har vært en av de dominerende plattformene for spill på grunn av den enorme andelen spill som utvikles i dag for å støtte Windows ...
5 beste arkadespill for Linux
I dag er datamaskiner seriøse maskiner som brukes til spill. Hvis du ikke kan få den nye høye poengsummen, vil du vite hva jeg mener. I dette innlegge...