~/NeonXP.log

Google Go Style Guide

Стиль Go

Оригинал: https://google.github.io/styleguide/go

Руководство по стилю Go и сопутствующие документы кодифицируют современные наилучшие подходы к написанию читаемого и идиоматичного кода на Go. Следование Руководству по стилю не является абсолютным требованием, и эти документы никогда не будут исчерпывающими. Наша цель — минимизировать неопределённость при написании читаемого кода на Go, чтобы новички в языке могли избежать распространённых ошибок. Руководство по стилю также служит для унификации рекомендаций по стилю, даваемых любым рецензентом кода Go в Google.

Документ Нормативный Канонический
Руководство по стилю Да Да
Решения по стилю Да Нет
Лучшие практики Нет Нет

Документы

  1. Руководство по стилю описывает основы стиля Go в Google. Этот документ является окончательным и служит основой для рекомендаций в «Решениях по стилю» и «Лучших практиках».

  2. Решения по стилю — это более подробный документ, который суммирует решения по конкретным вопросам стиля и, где уместно, обсуждает обоснование этих решений.

    Эти решения могут иногда меняться на основе новых данных, новых возможностей языка, новых библиотек или возникающих паттернов, но не ожидается, что отдельные программисты Go в Google должны следить за актуальностью этого документа.

  3. Лучшие практики документируют некоторые паттерны, которые развивались со временем для решения общих задач, хорошо читаются и устойчивы к потребностям поддержки кода.

    Эти лучшие практики не являются каноническими, но программистам Go в Google рекомендуется использовать их там, где это возможно, для сохранения единообразия и согласованности кодовой базы.

Эти документы призваны:

Эти документы не призваны:

Всегда будут существовать различия между разными программистами Go и между кодовыми базами разных команд. Однако в интересах Google и Alphabet, чтобы наша кодовая база была как можно более согласованной. (Подробнее о согласованности см. руководство). В связи с этим не стесняйтесь вносить улучшения стиля по мере необходимости, но вам не нужно придираться к каждому нарушению Руководства по стилю, которое вы обнаружите. В частности, эти документы могут меняться со временем, и это не повод вызывать лишнюю суету в существующих кодовых базах; достаточно писать новый код, используя новейшие лучшие практики, и со временем устранять проблемы поблизости.

Важно понимать, что вопросы стиля по своей природе субъективны и всегда сопряжены с компромиссами. Большая часть рекомендаций в этих документах субъективна, но, как и в случае с gofmt, в обеспечиваемом ими единообразии есть значительная ценность. Поэтому рекомендации по стилю не будут меняться без должного обсуждения, и программистам Go в Google рекомендуется следовать руководству по стилю, даже если они с чем-то не согласны.

Определения

Ниже приведены определения следующих слов, которые используются во всех документах по стилю:

Дополнительные ссылки

Данное руководство предполагает, что читатель знаком с Effective Go, поскольку оно обеспечивает общую основу для кода на Go во всём сообществе Go.

Ниже приведены некоторые дополнительные ресурсы для тех, кто хочет самостоятельно изучить стиль Go, и для рецензентов, желающих предоставить в своих отзывах дополнительный контекст с ссылками. От участников процесса проверки читаемости Go не ожидается знакомства с этими ресурсами, но они могут упоминаться в качестве контекста при таких проверках.

Внешние ссылки

Соответствующие статьи Testing-on-the-Toilet

Дополнительные внешние материалы

Руководство по стилю Go

Руководство по стилю Go (Go Style Guide)

Оригинал: https://google.github.io/styleguide/go/guide

Примечание: Это часть серии документов, описывающих Стиль Go (Go Style) в Google. Данный документ является нормативным (normative) и каноническим (canonical). Подробнее см. в обзоре.

Принципы стиля

Существует несколько основополагающих принципов, которые суммируют подход к написанию читаемого кода на Go. Ниже перечислены атрибуты читаемого кода в порядке важности:

  1. Понятность (Clarity): Цель и обоснование кода ясны читателю.
  2. Простота (Simplicity): Код достигает своей цели наиболее простым способом.
  3. Лаконичность (Concision): Код имеет высокое отношение сигнала к шуму.
  4. Поддерживаемость (Maintainability): Код написан так, чтобы его было легко поддерживать.
  5. Согласованность (Consistency): Код согласуется с более широкой кодобазой Google.

Читать дальше...

Решения

Решения по стилю Go

Оригинал: https://google.github.io/styleguide/go/decisions

Примечание: Это часть серии документов, описывающих Стиль Go в Google. Этот документ является нормативным, но не каноническим и подчиняется основному руководству по стилю. Подробнее см. в обзоре.

Об этом документе

В этом документе содержатся решения по стилю, призванные унифицировать и дать стандартные рекомендации, пояснения и примеры для советов, которые дают наставники по читаемости Go.

Этот документ не является исчерпывающим и будет пополняться со временем. В случаях, когда основное руководство по стилю противоречит приведенным здесь рекомендациям, руководство по стилю имеет приоритет, и этот документ должен быть обновлен соответственно.

Читать дальше...

Лучшие практики

Лучшие практики стиля Go (Go Style Best Practices)

Оригинал: https://google.github.io/styleguide/go/best-practices

Примечание: Это часть серии документов, описывающих Стиль Go (Go Style) в Google. Данный документ не является ни нормативным (normative), ни каноническим (canonical), а является вспомогательным документом к основному руководству по стилю. Подробнее см. в обзоре.

О документе (About)

В этом документе представлены рекомендации о том, как наилучшим образом применять Руководство по стилю Go. Эти рекомендации предназначены для типичных ситуаций, возникающих часто, но могут не применяться в каждом случае. По возможности обсуждаются несколько альтернативных подходов, а также соображения, которые учитываются при решении о том, когда их применять, а когда нет.

Читать дальше...

Google Go Style Guide — Руководство

О руководстве

Руководство по стилю Go и сопутствующие документы кодифицируют современные наилучшие подходы к написанию читаемого и идиоматичного кода на Go. Следование Руководству по стилю не является абсолютным требованием, и эти документы никогда не будут исчерпывающими. Наша цель — минимизировать неопределённость при написании читаемого кода на Go, чтобы новички в языке могли избежать распространённых ошибок. Руководство по стилю также служит для унификации рекомендаций по стилю, даваемых любым рецензентом кода Go в Google.

Читать дальше...