Началото
Книгата започва силно с a Урок глава, която ви дава проста програма „Здравей, свят“ и също така показва някои от предимствата на използването на Go. Минимализмът непременно ще се хареса на програмисти, които са го имали с раздути библиотеки. Не можете да декларирате променлива и да не я използвате в останалата част от вашата програма Go. Не можете да импортирате библиотека и да не я използвате в кода си. Той просто няма да се компилира. Не е нужно да спорите относно формата на вашия код. Например вековната битка между:
func main ()//И
func main ()
Урежда се от компилатора, който приема само първия, но не и втория. Други нюанси се уреждат с инструменти като gofmt, който взема вашия изходен файл Go и го форматира по стандартизиран начин. Така че всички програми Go следват една и съща конвенция, което от своя страна подобрява четливостта на кода.
Първата глава подчертава тези точки на продажба и прави наистина добра работа, като дава на читателите вкус на това, което всъщност е Go: език с общо предназначение, създаден за генериране на статични двоични файлове с възможно най-малко подуване.
Краткост
Опитните програмисти са уморени да научават за едни и същи понятия като for цикъл, if-else инструкции и т.н. отново и отново за различни езици. Първата глава се промъква в цялата тази досадна информация, като насърчава потребителите да пишат прости Unix-y програми (какъвто беше случаят с езика за програмиране C).
Един недостатък на това бързо въвеждане е фактът, че новите читатели ще бъдат напълно объркани от синтаксиса. Програмите бързо започват да използват точковите оператори и различни обектно-ориентирани концепции за програмиране след два или три примера надолу в първата глава. Това е важно за поддържане на бързина и краткост на цялостното четене и е много съзнателен избор от страна на авторите.
Книгата също така предполага, че читателите са запознати с поне един език за програмиране, преди да вземат тази книга. Това може да бъде Python, JavaScript, Java, C или друг език с общо предназначение.
Придружаващ уебсайт
Книгата се предлага с придружаващ уебсайт. Можете директно да импортирате програмите, дадени в книгата, от този уебсайт и да го стартирате, без да се налага да пишете (или копирате паста от вашето приложение Kindle). Можете дори да разгледате безплатно първата глава (която между другото ми е любима) на този уебсайт и да решите дали тази книга е за вас или не.
Авторите са обърнали внимание на болката на програмист, който се опитва да научи нов език. Разсейването е сведено до минимум, като уеб връзката на всяка програма е спомената отгоре. Така че можете да вземете кода, да го стартирате, да го ощипвате и да надграждате, ако искате.
Изчерпателен списък с грешки също се поддържа на този уебсайт и можете да го препратите, ако смятате, че нещо не е наред.
Сериозен бизнес
Ако очаквате просто ръководство за причинно-следствени сценарии, това не е книгата за вас. Причината е, че първо се покрива много земя и след това се попълват подробностите, докато напредваме към следващите глави.
Тази книга е за хора, които искат да разберат конструкциите, подробностите за това как Go работи. Ще създавате GIF файлове, ще пишете уеб сървъри и ще начертавате Mandelbrot Sets и много много повече, но нищо от това няма да има смисъл, освен ако не сте обърнали внимание на по-фините точки, изложени предишните глави (като Глава 1 е донякъде изключение, тъй като това е предназначено като преглед на езика).
По-голямата част от останалата част от книгата се фокусира върху различни подробности за Go, свързани със синтаксиса, включително контури за управление на нещата, променливи, функции, методи, Go подпрограми и много други. Всичко това е илюстрирано, като накара читателя да премине през полезни програми, а не измислени идеалистични сценарии.
Дори ако искате да пропуснете повечето глави от средата на книгата, силно препоръчвам да разровите глава 5 за разбиране на паника, обработка на грешки и анонимни функции. Въпреки това, силно препоръчвам да преминете през всички глави последователно, преди да стигнем до короната на Go-Concurrency.
Акцент върху паралелността
Езикът Go е проектиран от нулата, като се има предвид едновременността. Повечето съвременни процесори са многоядрени и многопоточни, но програмистите презират усложненията, пред които са изправени, когато пишат програми за изпълнение на такава архитектура. Тъй като облачните изчисления се насочват към разпределени системи, едновременният код скоро ще бъде единственият добре работещ код там.
Главата за едновременността е написана, за да избие от ума си страха от едновременния дизайн. Сложно е, да, но не и безнадеждно. Книгата върши чудесна работа като предава как Go може да ви помогне да развиете правилното мислене от това.
Заключение
Опитът на Kernighan от ранните UNIX дни все още е много жизнеспособен в съвременната ера на настолни компютри в облак, графични процесори, IOT, облак и всичко, което ще последва след това. Той и Донован са свършили чудесна работа, за да предадат тази мъдрост на дизайна на приложенията и UNIX философията, използвайки прост, модерен език с мисъл за производителността и не се колебая да препоръчам тази книга на всеки от гимназист до старши софтуерен инженер с десетилетия опит.