Я не мог понять цель clojure. specЧто такое спецификация Clojure?
Какие проблемы он разрешает?
Почему мы должны использовать его?
Я не мог понять цель clojure. specЧто такое спецификация Clojure?
Какие проблемы он разрешает?
Почему мы должны использовать его?
спецификация позволяет создавать спецификации для данных и функций. Спецификации находятся в их основном предикате (на основе существующих предикатов Clojure) и структурных, а не на основе типов, как вы можете видеть на статически типизированном языке. Основываясь на предикатах, вы можете писать спецификации, которые гораздо более выразительны, чем большинство систем типов, и используют тот же язык, что и ваш код.
Характеристики, определенные в функции, специфицируют спецификации для аргументов, возвращаемого значения и функции аргументов и. Последнее позволяет проверять гораздо больший диапазон вещей (легко), чем можно проверить в большинстве типов или контрактных систем.
После того, как вы определили спецификации, вы можете использовать их для:
Вы можете использовать спецификации для улучшения вашего развития (путем разъяснения и документирования намерения, ловя недействительные вызовы и утверждения достоверности данных), ваше тестирования (уловы недействительных звонков, утверждают validit y, генерировать данные примера и генерировать автоматические тесты для ваших функций spec'ed) и ваше производство (используя соответствие для деструктурирования).
Кроме того, использование спецификаций ядра Clojure приведет к улучшению сообщений об ошибках и расширенной проверке использования ядра для расширенного времени разработки, чтобы найти ошибки раньше.
Эти вопросы о библиотеке спецификаций немного шире, особенно часть «почему мы должны использовать это». Вы читали следующее?
Мне очень понравилось видео Стюарта Хэллоуя по спецификации Clojure: https://www.youtube.com/watch?v=nqY4nUMfus8 –