Мне интересно, как люди структурируют свой исходный код Clojure.
Я привык к Java, я хорошо знаком с парадигмой одного класса для исходного кода, связывая все определения данных и методов с соответствующими комментариями и комментариями и т.д.
Однако Clojure предлагает гораздо большую гибкость, и я не уверен, как я должен структурировать свой проект (скорее всего, это приложение среднего размера, возможно, 5000 строк с тремя или четырьмя различными подсистемами)
В частности, я борюсь с:
- Какие рекомендации следует использовать для определения того, должен ли код находиться в одном пространстве имен или разделен на разные пространства имен?
- Должен ли каждый протокол/тип данных иметь собственное пространство имен + исходный файл с соответствующим набором функций?
- Когда мне нужно vs. использовать другие пространства имен?