TGStat
TGStat
Введите текст для поиска
Расширенный поиск каналов
  • Язык сайта
    flag Russian flag English flag Uzbek
  • Вход на сайт
  • Каталог
    Каталог каналов и чатов Региональные подборки Тематические подборки Платные каналы Поиск каналов
    Добавить канал/чат
  • Рейтинги
    Рейтинг каналов Рейтинг чатов Рейтинг публикаций
    Рейтинги брендов и персон
  • Аналитика
  • Поиск по публикациям
  • Мониторинг Telegram
  • Продвижение
    Реклама через Яндекс Бизнес Реклама в каналах через TGStat Agency Реклама на сайте TGStat.ru
myStack

26 Feb 2025, 00:04

Открыть в Telegram Поделиться Пожаловаться

Почему в го "приняты" имена пакетов в одно слово и однобуквенные названия переменных

Судя по всему причина для этого - личные предпочтения Rob Pike, которые он описывает в своей заметке Notes on Programming in C от 1989г.

Мне нравится мысль, что длина имени переменной зависит от скоупа её использования. То есть, чем в большем числе мест используется переменная, тем более обоснованно ее длинное имя и наоборот, если это обычный цикл на пару строк, то имя должно быть короче.

Пайк тоже говорит об этом и приводит в пример цикл, где индекс обозначется буквой i. Как по мне это сразу некое исключение, ибо я бы назвал переменную i даже в большом цикле т.к. это устойчивое обозначение индекса в математике. И поэтому после i идет j, а потом k.

Дальше Пайк говорит, что ему больше нравится maxphysaddr, а не MaximumPhysicalAddress и причины для этого:
1. Второе название дольше печатать (Неактуально для современных редакторов кода)
2. Затрудняет восприятие вычислений (Вычислений в Си может быть и то спорно, но не энтерпрайзного кода точно)
3. Цитата: "Я избегаю встроенных заглавных букв в именах; для моего глаза, привыкшего к текстам, они слишком неудобны для чтения. Они режут взгляд." (Определение слова "вкусовщина")

Видимо поэтому мы имеем рекомендацию в го делать имена пакетов в одно слово, а не CamelCase или snake_case.

Возможно пакет с названием "strconv" еще читаем, но всякие veryimportantdocumentuploader - нет.

Также Пайку больше нравится название переменной np, а не NodePointer. И в целом это может быть нормально в приложении вся суть которого крутится вокруг связного списка или внутри либы для его реализации, но в чем-то большем это создаст трудности.

Мысль, с который я 100% согласен - если переменная названа maxphysaddr не называйте её «соседа» lowestaddress. То есть консистентность должна быть.

В общем, после этой заметки мне будет легче не винить себя да то, что не пишу названия пакетов в го в одно слово т.к. хочу получить что-то более читаемое.

Про такие темы принято говорить, что это "вкусовщина", что от части так, но всё же не надо оправдывать этим словом отсутствие дисциплины. А чтобы посмотреть какие-то аргументированные мнения есть отличная книга Стива МакКоннелла - Совершенный Код (2004). Она конечно не самая новая и некоторые примеры будут неактуальны сегодня, но многие подходы применимы. Моя "вкусовщина" основана по большей части на этой книге.

1.9k 6 18 3 28
Каталог
Каталог каналов и чатов Подборки каналов Поиск каналов Добавить канал/чат
Рейтинги
Рейтинг каналов Telegram Рейтинг чатов Telegram Рейтинг публикаций Рейтинги брендов и персон
API
API статистики API поиска публикаций API Callback
Наши каналы
@TGStat @TGStat_Chat @telepulse @TGStatAPI
Почитать
Академия TGStat Исследование Telegram 2019 Исследование Telegram 2021 Исследование Telegram 2023
Контакты
Справочный центр Поддержка Почта Вакансии
Всякая всячина
Пользовательское соглашение Политика конфиденциальности Публичная оферта
Наши боты
@TGStat_Bot @SearcheeBot @TGAlertsBot @tg_analytics_bot @TGStatChatBot