В продуктовой разработке используются согласованные внутри команды паттерны. Это не только известные паттерны проектирования, но и, например, паттерны обработки ошибок внутри системы, форматы запросов и ответов в межсистемном взаимодействии и прочее. Так же при индивидуальной разработке не все повторяющиеся по логике и структуре куски можно завернуть в методы, что тоже не способствует читабельности и простоте кода.
С ростом количества систем и их размеров при малейшем изменении паттернов приходится рефакторить кучу мест для приведения кода к заданному шаблону.
После исследования альтернативных языков на jvm мы остановились на clojure. Вот небольшой пример реализации паттерна обработки ошибки на нем.
Допустим, мы оформляем обработку ошибок в джаве следующим образом:
С ростом количества систем и их размеров при малейшем изменении паттернов приходится рефакторить кучу мест для приведения кода к заданному шаблону.
После исследования альтернативных языков на jvm мы остановились на clojure. Вот небольшой пример реализации паттерна обработки ошибки на нем.
Допустим, мы оформляем обработку ошибок в джаве следующим образом: