Skip to content

antoluk/JavaWorkshop

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

9 Commits
 
 

Repository files navigation

JavaWorkshop

Project is located in main branch

TASK

  1. Сервис должен принимать два параметра (начало отрезка, конец отрезка) и вернуть результат интегрирования sin(x)dx методом трапеций для предоставленного отрезка
  • Intro
    • Создать и запустить локально простой веб/REST сервис, используя любой открытый (например, в открытом доступе в сети интернет) пример с использованием Java stack: Spring (Spring Boot)/maven/gradle/Jersey/ Spring MVC.
    • Добавить GET ендпоинт, принимающий входные параметры в качестве queryParams в URL и возвращающий результат в виде JSON согласно варианту.
  • Error logging/handling
    • Добавить валидацию входных параметров с возвращением 400 ошибки
    • Добавить обработку внутренних unchecked ошибок с возвратом 500 ошибки
    • Добавить логирование действий и ошибок
    • Написать unit test
  • Collections intro, project structure
    • Добавить простейший кэш в виде in-memory Map для сервиса. Map должна содержаться в отдельном бине/классе, который должен добавляться в основной сервис с помощью dependency injection механизм Spring
  • Concurrency
    • Добавить сервис для подсчёта обращений к основному сервису. Счётчик должен быть реализован в виде отдельного класса, доступ к которому должен быть синхронизирован.
    • Используя jmeter/postman или любые другие средвста сконфигурировать нагрузочный тест и убедиться, что счётчик обращений работает правильно при большой нагрузке.
  • Functional programming with Java 8
    • Преобразовать исходный сервис для работы со списком параметров для bulk операций используя Java 8 лямбда выражения.
    • Добавить POST метод для вызова bulk операции и передачи списка параметров в виде JSON
  • Functional filtering and mapping
    • Добавить аггрегирующий функционал (подсчёт макс, мин, средних значений) для входных параметров и результатов с использованием Java 8 map/filters функций. Расширить результат POST соотвественно.
  • Data persistence
    • Добавить возможность сохранения всех результатов вычислений в базе данных или файле, используя стандартные persistence фреймворки Java (Spring Data/Hibernate/MyBatis)
  • Asynchronous calls
    • Добавить возможность асинхронного вызова сервиса используя future, возвращать статус вызова REST сервиса не дожидаясь результатов подсчётов. Результаты подсчётов должны быть представлены в БД по предопределённой ID

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published