голанг

Рецензия на книгата Програмиращият език Go

Рецензия на книгата Програмиращият език Go
Езикът за програмиране Go, от Алън А. A. Донован и Брайън Керниган са разгледани в тази публикация. Брайън Керниган е добре известен като съавтор на езика за програмиране C и самата книга е отделена като стандартен текст за поколения инженери. Go често е наричан 21-ви век C и езикът за програмиране Go може да бъде стандартният справочен текст за него.

Началото

Книгата започва силно с 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 философията, използвайки прост, модерен език с мисъл за производителността и не се колебая да препоръчам тази книга на всеки от гимназист до старши софтуерен инженер с десетилетия опит.

Пристанища с отворен код на търговски игрални машини
Безплатни разширения на играта с отворен код и междуплатформени игри могат да се използват за възпроизвеждане на стари, както и някои от доста скорошн...
Най-добрите игри за команден ред за Linux
Командният ред не е само най-големият ви съюзник при използване на Linux - той може да бъде и източник на забавление, защото можете да го използвате, ...
Най-добрите приложения за картографиране на геймпад за Linux
Ако искате да играете игри на Linux с геймпад вместо типична система за въвеждане на клавиатура и мишка, има някои полезни приложения за вас. Много ко...