Этап
Открыта
Тип
Задача
Приоритет
Обычный
Трудоемкость
Обычная
Создана
Дата создания
3 года назад
Назначена
Обновлена
7 месяцев назад

Этап 1: Список ссылок и сущностей

Зависит от введения redis в проект - tndt-196.

Система в нем будет хранить:

  • wiki:links Большой хешмеп ссылок вида
    • linkKey = project:objectType:no
    • linkKey -> metadataObject
      • metadataObject сожержит:
        • route до объекта
        • routeParams - параметры
        • count - сколько раз ссылка упомянута (возможно отдельным объектом, чтобы можно было делать incr/decr
  • wiki:linked_from Для каждой сущности список объектов в которых есть ссылка на неё
  • wiki:linked_to Для каждой сущности, список ссылок, которые в ней упомянуты (project:objectType:id -> set:linkKey) (счетчик для поиска потерянных объектов, актуально в целом только документам, и наверное не в этой задаче, но начать вести его можно)

objectType - enum, сейчас их три: Project, Task, Doc, определяется по написанию (\w) - проект, (\w-\d) - задача, (\w#\d) - документ (\w#\w) альтернативный способ указать документ

При отрисовке ссылки, она ищется в списке ссылок

  • если не находится рисуется красным и ведет по типу объекта на создание оного (если это разрешено, иначе не видет никуда).
  • если находится, по метадате определяется объект и путь до него

Появляются бизнес-методы вызываемые системами, кто считает, что добавляет новую ссылку, или удаляет её, они аффектят списки ссылок. link add( who, where либо target, owner)

  • создает если не было ссылку wiki:links - linkKey
  • добавляет её wiki:link_owners с указанием где она расположена

Так же здесь консьюмер для индексации, он вызывается или из крона, или по вышеозначенным методам, берет какой-то кусок и проверяет, валидность сылок. (это уже тяжко и тянет на отдельную задачу, хотя с другой стороны, а кто будет заполнять эти списки?)

Панель управления

Комментарии могут оставлять только авторизованные пользователи
 demius 7 месяцев назад

Наши метания, к чему относится NAS, к дому или hsrv создало задачи и документы по нему в разных проектах

 demius 3 года назад

В общем тут нужно даже с терминологией разобраться, и схемы нарисовать, хотя бы псевдокодом в Система гипертекста для wiki

 demius 3 года назад

И вновь мы потеряли задачу и сделали её копию. У нас уже есть задача нулевого этапа создания вики tndt-9. Давайте её поднимем наверх, и назовем этапом 0, а эту отправим в v0.4 и назвовем этапом 1.

 demius 3 года назад

Так же тут все таки подумать считать своимитегами [\w+] или [[\w+]] вроде бы мы начали с первого, но ушли ко второму. Так же нам бы в будущем дополнить его автокомплитом, т.е. после набора [ (или [[) открыть выпадашку с саггестами, и по мере набора предлагать разные задачи и документы) Но это конечно же отдельной задачей