Почему библиотеки clojure повторно используют часто встречающиеся имена функций, вынуждая вас пространство имен определяет их? Например, clojure.zip использует следующий, заменить и удалить которые уже существуют в ядре clojure, а «заменить» уже существует в clojure.string.
Теперь разработчик, вероятно, будет использовать какую-то аббревиатуру для пространства имен clojure.zip. поэтому в коде одного разработчика clojure.zip/next будет пространством имен, обозначенным как z/next, в коде другого человека как w/next и т. д.Это заставит вас оглянуться назад, чтобы увидеть что на самом деле представляет собой аббревиатура пространства имен, потому что разработчик мог создать свою собственную библиотеку, которая также использует функцию «далее»
. Почему бы не использовать zip-next, zip-replace и zip-remove, str-replace? Или что-то в этом роде
Тогда в коде людей будет непротиворечивая «квалификация пространства имен» и будет ясно, к чему относятся эти функции.
Между библиотеками не бывает сотен конфликтов имен. Я обычно вижу только два или три . Неужели так сложно явным образом сделать эти имена уникальными для библиотеки?