Skip to content

abused-by-github/XrmTestTask

Repository files navigation

Тестовое задание №1 с http://xrm.ru/job/test_task.

Напишите приложение, собирающее резюме с раздела «Работа в Екатеринбурге» портала E1, сохраняющее их в базу данных и предоставляющее возможности по просмотру и поиску резюме.

Если Вам по каким-то причинам не нравится сайт e1.ru, можете выбрать любой другой широко известный портал с объявлениями – от доски объявлений о животных zoo-zoo.ru до доски объявлений по продаже монет на www.monetki.su.

Допущения и ограничения

  • Приложение собирает последние 10 добавленных на портал резюме
  • Приложение ограничено самым минимальных набором полей - только заголовок резюме и дата добавления.
  • Приложение не отображает содержимое резюме, однако предоставляет ссылку на портал e1.ru.

Комментарии по реализации.

Документированного API у портала найдено не было, однако внутри портал использует HTTP API по адресу http://rabota.e1.ru/api/v1/. Запросы передаются через URL query string, результаты возвращаются в формате JSON (Для работы с JSON будет использован JSON.NET). Это API и было выбрано для решения задачи. Проект имеет типичную многослойную структуру: Web UI - Business Logic - Data Access. Дополнительно имеется слой адаптеров для API e1.ru (E1Client). Каждый слой представлен двумя компонентами-сборками - одна содержит API, вторая - реализацию. Такая структура обеспечивает слабую связность между компонентами. Для интеграции компонентов используется IoC container Autofac. Решение полностью построено на принципах Inversion of Control / Dependency Injection - все компоненты создаются исключительно контейнером, что обеспечивает полностью автоматическое разрешение зависимостей и управление жизненным циклом. Data access layer реализован на основе ORM [Entity Framework] (https://msdn.microsoft.com/en-us/data/ef.aspx) (code-first подход). СУБД - MSSQLServer 2012.

Намеренно не было реализованно (с целью экономии времени):

    1. Логирование. Базовое логирование легко реализуется через [Autofac type interceptors] (http://docs.autofac.org/en/latest/advanced/interceptors.html).
    1. Обработка ошибок. Исчерпывающее решение для web-приложения - Application_Error обработчик в Global.asax.
    1. Модульные тесты. Любой популярный фреймворк + Fluent Assertions.

Разработка заняла 3 часа.

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages