Skip to content
 
 

Latest commit

 

History

3 Commits

Folders and files

NameName
Last commit message
Last commit date
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Тестовое задание инженеру отдела автоматизации бизнес процессов.

Описание

Задание проверяет понимание технической и программной архитектур: оценивается выбор подхода к хранению данных и организации кода исходя из условий и ограничений, а также аргументация принятых решений.

Детальная имплементация каких-либо сложных методов не требуется.

Задание расчитано на 1 час.

Вводная информация

Вам нужно спроектировать микросервис, который будет хранить данные о сотрудниках, формировать выборки и обновлять данные, при необходимости.

Интерфейс миросервиса описан в файле index.ts и называется IHRApp. Этот интерфейс является ориентиром того, что должен уметь делать микросервис. Фактический набор методов для имплементации будет значительно шире: каждая сущность будет задействована во многих методах.

В файле index.ts находятся образцы входных данных, с которыми вам придется работать. Код импорта данных писать не нужно, достаточно будет описать в типах как данные будут храниться в БД. При желании или необходимости можно сделать вспомогательные структуры, методы, обертки.

Для хранения данных используется документоориентированная база данных. Интерфейс к ней описан в файле db.ts. Этот интерфейс считаем неизменным.

Контекст

Контекст подразумевает, что:

  1. СУБД мы изменить не можем.
  2. Количество операций по обновлению данных мало.
  3. Количество операций по выборкам и чтению - очень больше.
  4. Узкое место в производительности - база данных.

Нам нужно спроектировать решение лучшее по производительности насколько это возможно.

Задача

  1. Организуйте структуру кода, вспомогательные элементы (если нужно), и имплементируйте интерфейс IHRApp за исключением метода update.
  2. Опишите, аргументируйте сделанные решения, предположения, выбранные методы и подходы. Опишите в файле SOLUTION.md.
  3. Изменится ли ваше решение, если контекст будет подразумевать редкие операции чтения и на порядок большее количество операций записи? Если да, то как? Опишите в файле SOLUTION.md.

About

No description, website, or topics provided.

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages