В Go, как и везде в IT, действуют шаманские заклинания. Самые важные собраны — в основном со слов Роба Пайка — на особой страничке. Вот их вольный перевод:
- Избегайте коммуникаций через общую, разделённую память. Наоборот, делитесь данными в памяти через сообщения.
- Конкурентность и параллелизм — это не одно и то же.
- Каналы для взаимодействия, мьютексы для разобщения.
- Чем сложнее интерфейс, тем ненадёжней абстракция.
- Нулевые значения полезны не меньше других.
- Пустой интерфейс
interface{}
не о многом скажет. - У всех есть свой годный стиль форматирования кода, стандартное форматирование
gofmt
— годное для всех. - Копирование лучше зависимостей.
- Защищай системные вызовы в коде тегами сборки.
- Защищай кросс-вызовы cgo к коду C тегами сборки.
- Cgo — это не Go.
- Применяя пакет
unsafe
, не рассчитывай на какие-либо гарантии. - Лучше ясно, чем красиво.
- Интроспекция ясной не бывает.
- Значения ошибок — это тоже значения.
- Недостаточно отлавливать ошибки, нужно их обрабатывать.
- Полируй архитектуру, внятно называй компоненты, документируй детали.
- Документация — для пользователей.
- Не паникуй.
📂 Go | Последнее изменение: 11.08.2024 23:15