Сотрудник и я Clojure новички. Мы начали проект пару месяцев назад, но быстро обнаружили, что у нас было трудное время, связанное с нашей базой кода - на 500 LOC мы в принципе понятия не имели, с чего начать с отладки, когда все пошло не так (что часто было). Вместо пар функции получали списки, цифры или что-то-вы.
Теперь мы начинаем новый, но связанный с ним проект и переносим много старого кода. Но мы снова ударяем о стену.
Нам интересно, как мы эффективно управляем проектом Clojure, тем более что мы вносим изменения в существующий код?
Что мы придумали:
- либеральное использование модульных тестов
- либеральное использование пре-, пост-условий
- объявления неформального типа в комментариях функций
- используйте defrecord/defstruct/defprotocol для реализации модели данных, которая действительно упростит тестирование.
Но post-, pre-conditions, кажется, не используются очень часто. Модульное тестирование + комментарии помогут только так. И похоже, что программисты Clojure обычно не реализуют формальные модели данных.
Мы просто не получаем Clojure? Как программисты Clojure знают, что их код надежный и правильный?