Разработка сервиса динамических расчётов
Java 17.
Архитектурные требования:
Ядро системы должно разрабатываться по ООП и TDD - требование к coverage 80-90%. Архитектурный слои: доменная модель, сервисы, контроллеры, DTO, ДАО. Хранение данных осуществляем в БД postgres Фреймворк Spring boot/ Spring test / Junit5 / testcontainers(для базы) - ожидается классическое spring boot приложение покрытое unit-тестами (тест должен быть у каждого класса), помимо классических тестов ожидается компонентные и микросервисные (ожидаю глобальный интеграционный тест на весь процесс) тесты. (см. аннотации @DataJdbcTest, @Testcontainers, @WebMvcTest) Описание ядра системы:
Задается сущность «формула». Формула - это строка, которая передается с клиента. Строка вычислимая, может иметь параметры. Примеры таких строк смотрите в вариантах.
Приложение должно уметь хранить созданные формулы и производить расчёты по ним. Все расчёты сохраняются в базу и пользователь в любой момент времени может получить результат расчётов.
Разработать механизмы обмена информацией с внешним миром с помощью SOAP - синхронные вычисления.
Работа с базой через Spring JDBC Data.
Для проверок использовать Been Validation.
Варианты для разработки формул. Требуется разработать калькулятор строковой формулы. У формулы могут быть параметры (если это предусмотрено вариантом). Тогда параметров может быть неограниченное количество. Проработать поведение, если параметры не указаны или формула некорректна.
Формула - это дробное число, результат вычисления - строка, где это число записано по-русски. В качестве дополнительного параметра можно указать количество знаков после запятой. Пример, 6234.23 -> "шесть тысяч двести тридцать четыре целых двадцать три сотых"
При реализации ядра запрещено использовать регулярные выражения, javascript-engine и прочие аналогичные технологии. Ожидается, что строки разбираются на символы и анализируется алгоритмически.