Оригінал: «Effective Go»
- Вступ
- Форматування
- Коментарі
- Найменування
- Крапки з комою
- Керуючі структури
- Функції
- Дані
- Ініціалізація
- Методи
- Інтерфейси та інші типи
- Порожній ідентифікатор
- Вкладення
- Конкурентність
- Помилки
- Вебсервер
Go — це нова мова. Запозичуючи ідеї з наявних мов, вона має й свої незвичайні властивості, які роблять ефективні програми на Go відмінними за характером від програм, написаних на подібних їй. Прямий переклад програм, написаних на C++ або Java, на Go навряд чи дасть задовільний результат — програми на Java написані на Java, а не на Go. З іншого боку, обдумування проблеми з перспективи Go може призвести до створення успішної, але зовсім іншої програми. Іншими словами, щоб добре писати на Go, важливо розуміти її властивості та ідіоми. Також важливо знати встановлені конвенції для програмування на Go, такі як найменування, форматування, побудова програм і так далі, щоб програми, які ви пишете, були зрозумілими для інших програмістів на Go.
Цей документ містить поради щодо написання зрозумілого, ідіоматичного коду мовою Go. Він доповнює специфікацію мови (англ.), «Тур із Go» (укр.) та «Як писати код на Go» (англ.), які вам слід прочитати першими.
Примітка, додана у січні 2022 року: Цей документ було написано до випуску Go у 2009 році, і відтоді він суттєво не оновлювався. Хоча це хороший посібник для розуміння того, як користуватися самою мовою, завдяки стабільності мови, в ньому мало сказано про бібліотеки й нічого про значні зміни в екосистемі Go з моменту написання, такі як система збірки, тестування, модулі та поліморфізм. Ми не плануємо її оновлювати, оскільки змін було багато, а велика кількість документів, блогів та книг, що постійно зростає, чудово описують сучасне використання Go. Цей документ продовжує бути корисним, але ви повинні розуміти, що тут викладено далеко не всю інформацію. Додатковий контекст дивіться у питанні 28782.
Вихідні коди пакетів Go призначені не лише для використання у якості основної бібліотеки, але і як приклади використання мови. Щобільше, багато пакетів містять робочі, самодостатні виконувані приклади, які ви можете запустити безпосередньо з вебсайту go.dev, наприклад, цей (якщо потрібно, натисніть на слово «Приклад», щоб відкрити його). Якщо у вас є питання про те, як підійти до проблеми або як щось можна реалізувати, документація, код і приклади в бібліотеці можуть надати відповіді, ідеї та підказки.