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