Проект

Общее

Профиль

Действия

Stage-1 » История » Редакция 2

« Предыдущее | Редакция 2/6 (Разница(diff)) | Следующее »
Александр Александров, 04.03.2019 10:03


Предварительная подготовка к выполнению задания

Что нужно знать для того что бы выполнить тестовое задания:

  1. Понимать что такое REST-сервисы, знать принципы реализации данных сервисов.
  2. Знать и уметь работать с фреймворком Spring, в частности знать что такое Spring MVC и способы реализации REST-сервисов при помощи Spring
  3. Знать и понимать принципы работы с реляционными БД (как минимум уметь работать с СУБД postgres).
  4. Знать и понимать технологию ORM, в частности уметь работать с Hibernate. (Как вариант, вместо ORM, обращаться к БД и получать от туда данные на более низком уровне через JDBC)

Сама задача, как понял и какие могут быть дополнительные вопросы

  1. Какой должен быть вид графа? C условием того что не должны быть циклические связи между узлами графа, возможно граф может быть деревом, (простым бинарным деревом). Так же есть вопрос, граф должен быть ориентированным или нет?
  2. Помимо свойств узла, который описан в задачи, должны быть связи этих узлов. По тем же условиям задачи, в БД должно быть две таблицы, таблица №1 в которой хранятся узлы графа, таблица №2 связи вершин графа. Есть несколько вопросов:
    1. Во входных данных в формате JSON что должно быть описано? Как минимум должны быть перечислены просто все узлы, без связей (так как в условиях задачи не сказано что помимо перечисленных параметров, должен быть список соседних узлов, с кем контактирует текущий узел).
    2. В условиях сказано, что POST запрос setNodes должен отправить на сервер список узлов, отсюда вопрос - программа сама должны создавать граф с автоматическим созданием связей между узлами? Возможно да, так и должно быть. Значит возникает другой вопрос, как строить граф и устанавливать связи между узлами, на основании чего устанавливать связи? Ответ скорее всего будет такой - граф строится из уникальных имён узлов, возможно вариант такой, что уникальным именем будет числовой идентификатор, а значит можно строить граф так: в корне должен быть идентификатор с минимальным значением и далее по логике строительства бинарного графа.
    3. Что значит уникальное имя узла? Возможно это порядковый номер узла, который был занесён в БД и автоматически назначен номер, но с другой стороны возможно уникальное имя должно быть приходить из вне.
    4. Что значит вероятность отказа? Возможно это число, которое зависит от счётчика посещения узлов, рандомное значение. Как только количество посещения сравняется со значением вероятности отказа, запускается нужный механизм. Отсюда вопросы: счетчик после сбоя должен быть сброшен? Вероятность отказа узла должна быть сгенерирована заново? Возможно ответы на эти вопросы одинаковы, Да - счётчик посещений должен быть сброшен. Да - заново должен быть перезапуск вероятности отказа.
    5. С какой БД можно работать? Можно ли например использовать СУБД http://hsqldb.org/ ? Или нужно использовать например postgresql или oracle?

Обновлено Александр Александров около 5 лет назад · 2 изменени(я, ий)

Go to top