Ви краєм вуха чули про нову мову програмування Go, але не знаєте, що вона є насправді? Відповіді на всі ваші запитання ви отримаєте у цій книзі. Вона допоможе вам познайомитися з мовою ближче, дізнатися про її призначення та переваги, і про те, як писати програми цією мовою (причому це будуть програми не початківця, але професійного програміста - ефективні та ідеоматичні).
Книжку написано двома професіоналами — як у галузі програмування, так і в галузі написання книг на програмістські теми. Так що якщо ви хочете бути в курсі останніх досягнень у програмуванні - не сумнівайтеся, взявши цю книгу, ви звернули на вірний шлях професійного оволодіння мовою Go.
Книга призначена в першу чергу для програмістів, які вже впевнено володіють якоюсь мовою програмування.
Ця книга є важливим та авторитетним джерелом знань для тих, хто хоче вивчити мову програмування Go. Вона розповідає про те, як писати ясні та ідіоматичні програми мовою Go для вирішення реальних практичних завдань. Книга не передбачає ні наявність деяких попередніх знань мови Go, ні досвіду в роботі з якоюсь конкретною мовою програмування, так що вона буде доступна для вас, з якою б мовою ви раніше не працювали - JavaScript, Ruby, Python, Java або C++.
Перший розділ є довідником основних концепцій мови Go, показаних на прикладі програм файлового вводу-виводу та обробки текстів, найпростішої графіки, а також веб-клієнтів та серверів.
Перші розділи охоплюють структурні елементи програм мовою Go: синтаксис, управління потоком виконання, типи даних, і організація програм як пакетів, файлів і функций.
Приклади, що наводяться, ілюструють безліч пакетів стандартної бібліотеки і показують, як створювати власні пакети. У наступних розділах механізм пакетів буде розглянутий докладніше, і ви дізнаєтесь, як будувати, тестувати та підтримувати проекти, використовуючи інструментарій go.
У розділах, присвячених методам та інтерфейсам, описується нестандартний підхід мови Go до об'єктно-орієнтованого програмування, в якому методи можуть бути оголошені для будь-якого типу, а інтерфейси – неявно задоволені. У цих розділах пояснюються ключові принципи інкапсуляції, композиції та замінності з використанням реалістичних прикладів.
Два розділи, присвячені паралелізму, представляють поглиблений підхід до цієї важливої теми. Перший розділ охоплює основні механізми go-підпрограм та каналів, ілюструє стиль, відомий як взаємодія послідовних процесів, яким відомий Go. Друга охоплює більш традиційні аспекти паралелізму із спільно використовуваними змінними. Ці розділи забезпечують міцний фундамент для програмістів, які вперше трапляються з паралельними обчисленнями.
Два останні розділи розглядають низькорівневі можливості мови Go. Одна з них присвячена мистецтву метапрограмування за допомогою рефлексії, а інша показує, як використовувати пакет unsafe для виходу за межі системи типів у особливих випадках, а також як використовувати cgo для зв'язку Go з бібліотеками C.
У книзі наведено сотні цікавих та практичних прикладів добре написаного коду мовою Go, які охоплюють всю мову, її найважливіші пакети, та мають широкий спектр застосування. У кожному розділі містяться вправи для перевірки вашого розуміння та вивчення можливих розширень та альтернатив. Вихідні тексти вільно доступні для скачування з адреси http://gopl.io/ і можуть бути легко отримані, побудовані та інстальовані за допомогою команди go get.
Про авторів
Алан А. А. Донован є членом команди розробників мови Go у Google, у Нью-Йорку. Він отримав вчений ступінь у галузі інформатики в Кембриджі та в МТІ, і займається програмуванням з 1996 року. Починаючи з 2005 року, він працює в Google над проектами в галузі інфраструктури і був одним із розробників патентованої системи побудови Blaze. Їм створено безліч бібліотек та інструментів для статичного аналізу програм мовою Go, включаючи oracle, godoc -analysis, eg та gorename.
Браян У. Керніган - професор факультету інформатики в Прінстонському Університеті. З 1969 по 2000 рік він працював у дослідному центрі в Bell Labs, де займався мовами та інструментами для Unix. Він є співавтором низки книг, включаючи такі, як Мова програмування C, 2-е видання (пер. з англ., ВД "Вільямс", 2006) та Практика програмування (пер. з англ., ВД "Вільямс", 2005).