1113 Я не эксперт. Но в любом случае:
- Держитесь подальше от
God
функций. Если у вас есть большая функция, разбейте ее на более мелкие функции, и каждая из этих функций выполняет одно и делает это хорошо. - Если вы обнаружите использование массивов Java (и их не нужно использовать), преобразуйте их в последовательности Clojure.
- Объятия
defrecord
и defprotocol
. - Держитесь подальше от макросов, если вы действительно не можете продолжить без написания макроса.
- Когда это возможно, отдавайте предпочтение ленивым последовательностям, а не рекурсии.
- При создании службы поместите контракт в собственное пространство имен, а реализацию - в собственное пространство имен.
- Добиться внедрения зависимости как передачи функций в качестве параметров другим функциям.
- Используйте деструктуризацию для arglist функции, когда это возможно. Это облегчит понимание реализации функции.
- Рассмотрите возможность использования проекта Prismatic Schema.
Также взгляните на CursiveClojure. Я думаю, что это действительно многообещающе.
Я не создатель CursiveClojure.
ответ дан 28 November 2019 в 17:26
поделиться