Показаны сообщения с ярлыком комментарии в Go. Показать все сообщения
Показаны сообщения с ярлыком комментарии в Go. Показать все сообщения

четверг, 28 февраля 2019 г.

Go Code Review Comments: комментарии к документу, panic, строки ошибок, примеры

Комментарии к документу (Doc comments)

Все экспортируемые имена верхнего уровня должны иметь комментарии к документу, как и нетривиальные объявления неэкспортированных типов или функций.

Не используйте panic напрасно

Не используйте панику для нормальной обработки ошибок. Используйте ошибку и несколько возвращаемых значений.

Строки ошибок

Строки ошибок не должны начинаться с заглавной буквы (если только они не начинаются с собственных имен или аббревиатур) или заканчиваться пунктуацией, поскольку они обычно печатаются в другом контексте. То есть используйте fmt.Errorf("something bad") , а не fmt.Errorf("Something bad"), так что log.Printf("Reading %s: %v", filename, err) форматируется без ложной заглавной буквы в середине сообщения. Это не относится к сообщениям журнала (logging), которые ориентированы на использование сообщения как отдельной строки и не объединяются внутри других сообщений.

Обработка ошибок

Не отбрасывайте ошибки, используя пустые переменные _. Если функция возвращает ошибку, проверьте ее, чтобы убедиться, что функция выполнена успешно. Обработайте ошибку, верните ее или, в действительно исключительных ситуациях, используйте panic.

Примеры

При добавлении нового пакета включайте примеры предполагаемого использования: работоспособный пример или простой тест, демонстрирующий полную последовательность вызовов.


Читайте также:


суббота, 23 февраля 2019 г.

Go Code Review Comments: комментируйте предложениями

Комментарии, документирующие декларации, должны быть полными предложениями, даже если это кажется немного излишним. Такой подход делает их хорошо отформатированными при извлечении в документацию Godoc. Комментарии должны начинаться с названия описываемой вещи и заканчиваться точкой:

// Request представляет запрос на выполнение команды.
type Request struct { ...

// Encode записывает JSON кодированый req в w.
func Encode(w io.Writer, req *Request) { ...


Читайте также: