Проект

Общее

Профиль

Stage-1 » История » Версия 2

Александр Александров, 04.03.2019 10:03

1 1 Александр Александров
h1. Предварительная подготовка к выполнению задания
2
3
h2. Что нужно знать для того что бы выполнить тестовое задания:
4
5
# Понимать что такое REST-сервисы, знать принципы реализации данных сервисов.
6
# Знать и уметь работать с фреймворком Spring, в частности знать что такое Spring MVC и способы реализации REST-сервисов при помощи Spring
7
# Знать и понимать принципы работы с реляционными БД (как минимум уметь работать с СУБД postgres).
8 2 Александр Александров
# Знать и понимать технологию ORM, в частности уметь работать с Hibernate. (Как вариант, вместо ORM, обращаться к БД и получать от туда данные на более низком уровне через JDBC)
9 1 Александр Александров
10
h2. Сама задача, как понял и какие могут быть дополнительные вопросы
11
12
# Какой должен быть вид графа? C условием того что не должны быть циклические связи между узлами графа, возможно граф может быть деревом, (простым бинарным деревом). Так же есть вопрос, граф должен быть ориентированным или нет?
13
# Помимо свойств узла, который описан в задачи, должны быть связи этих узлов. По тем же условиям задачи, в БД должно быть две таблицы, таблица №1 в которой хранятся узлы графа, таблица №2 связи вершин графа. Есть несколько вопросов:
14
## Во входных данных в формате JSON что должно быть описано? Как минимум должны быть перечислены просто все узлы, без связей (так как в условиях задачи не сказано что помимо перечисленных параметров, должен быть список соседних узлов, с кем контактирует текущий узел).
15
## В условиях сказано, что POST запрос setNodes должен отправить на сервер список узлов, отсюда вопрос - программа сама должны создавать граф с автоматическим созданием связей между узлами? Возможно да, так и должно быть. Значит возникает другой вопрос, как строить граф и устанавливать связи между узлами, на основании чего устанавливать связи? Ответ скорее всего будет такой - граф строится из уникальных имён узлов, возможно вариант такой, что уникальным именем будет числовой идентификатор, а значит можно строить граф так: в корне должен быть идентификатор с минимальным значением и далее по логике строительства бинарного графа.
16
## Что значит уникальное имя узла? Возможно это порядковый номер узла, который был занесён в БД и автоматически назначен номер, но с другой стороны возможно уникальное имя должно быть приходить из вне.
17
## Что значит вероятность отказа? Возможно это число, которое зависит от счётчика посещения узлов, рандомное значение. Как только количество посещения сравняется со значением вероятности отказа, запускается нужный механизм. Отсюда вопросы: счетчик после сбоя должен быть сброшен? Вероятность отказа узла должна быть сгенерирована заново? Возможно ответы на эти вопросы одинаковы, Да - счётчик посещений должен быть сброшен. Да - заново должен быть перезапуск вероятности отказа.
18
## С какой БД можно работать? Можно ли например использовать СУБД http://hsqldb.org/ ? Или нужно использовать например postgresql или oracle?
Go to top