Привет, ребята: В java у всех нас был опыт использования нашего ide для «прохождения» глубины сложного типа данных:
dog.getCollar().getCollarTag().getName();
Однако в Clojure это становится нетривиальным, из-за отсутствия статической типизации.Как мы можем «защищать» или Clojure от комплексных объектов, которые могут поступать из вложенных структур данных?
1) Рекомендуемое «ограничение» глубины структур данных Clojure?
и
2) Распространенная идиома для работы со структурой аббревиатур с глубоко вложенными данными, которая предотвращает ошибки, такие как ошибочный выбор списка для карты или неправильный нижний / верхний регистр имени переменной?
Простите, если я немного озвучиваю здесь парадигму ... Возможно, такие ошибки эффективно ограничиваются постоянным тестированием в REPL. Однако мне было интересно, есть лиЕсть ли другие способы убедиться, что во время компиляции этот код является максимально корректным (например, модульные тесты, плагины IDE / emacs и т. д ...)