Что означает Clojure Соглашения об именах?
Может кто-нибудь объяснить или указать мне, где я могу найти соглашения об именах clojure для:
- Имена файлов
- Функции (из того, что я понимаю, имена функций - это просто разделенные символом значения)
- Переменные
Ответы
Ответ 1
Возможно, вам стоит взглянуть на Clojure стандарты кодирования библиотек на разработчике Wiki - это, вероятно, самый полный список, мы видели.
К вашим конкретным моментам:
- Имена файлов строчные и хранятся в структуре каталогов для соответствия пространству имен и заканчиваются на .clj, например. "Мой/специальный/namespace.clj
- Функции представляют собой разделенные штрихами слова с нижним регистром, идеально ориентировочно выбираемые так, чтобы ваш код был понятным и самодокументированным. Не бойтесь повторно использовать хорошие имена функций в разных пространствах имен (это пространство имен для!).
- Переменные (с помощью которых я предполагаю, что вы имеете в виду параметры, связанные переменные и т.д.) также обычно разделены штриховыми буквами. Поскольку код-данные-данные, я думаю, что уместно, чтобы функции и данные имели одно и то же соглашение об именах: -)
Ответ 2
Возможно, вы захотите взглянуть на это неофициальное руководство по стилю.
Ответ 3
Есть несколько интересных рекомендаций по наименованию, написанных Stuart Sierra, которые предполагают, что:
- чистыми функциями должны быть существительные, описывающие возвращаемое значение (
age
вместо calculate-age
)
- побочные эффекты должны быть глаголами, описывающими действие (
create-
для построения и get-
для извлечения), сохраняя привязку swap!
к изменяемым ссылкам.
- глаголы, которые также могут быть существительными, следует отличать как фразы глагола (
send-message
вместо message
)
- принуждения должны указывать тип вывода без префикса стрелки (
connection
вместо ->connection
), за исключением случаев, когда тип ввода должен быть явным (input-type->output-type
)
- псевдонимы пространства имен могут сэкономить на повторении (
products/price
вместо products/product-price
) и предотвратить локальные конфликты в привязках привязок
- функции возврата функций должны иметь суффикс
-fn
Ответ 4
Даже если вы не просили об этом явно, я объясню, что я видел для соглашений об именах протоколов.
Как правило, имя начинается с прописной буквы "I", а затем остальное - это верблюжьей кейс, где первая буква каждого слова заглавная, а остальное - в нижнем регистре. Например, я хочу определить протокол для ракетных кораблей, я бы использовал имя IRocketShip
Я также видел "А" вместо "Я", возможно, чтобы представить слово "абстрактное".