Проект

Общее

Профиль

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

Редакция 1 (Александр Александров, 04.03.2019 02:26) → Редакция 2/6 (Александр Александров, 04.03.2019 10:03)

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

 

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

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

 

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

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



Go to top