Как описать проект?
От: dmitry_npi Россия  
Дата: 20.05.24 05:39
Оценка:
Всем привет.

Попал на большой проект. Несколько сервисов, у них есть плагины, есть горизонтальное масштабирование (реплики, баланс), свои утилиты, интеграция с внешними системами. Сложная система развертывания, частично ansible, частично свои скрипты. Базы данных: есть Postgres, есть MongoDB, есть S3. REST, gRPC.
В общем, много всего, как "в ширину", так и "в глубину".

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

Есть, конечно, вики на проекте, но она не покрывает всё, сведения отрывочные, да и написано так, что помочь она может в основном тому, кто уже всё знает, но что-то забыл. Например, заходишь в раздел с каким-то достаточно общим названием — а там несколько скриптов для консоли, и всё.

Вот как бы структурировать это всё в документации? Может быть, есть шаблоны описания архитектуры с разделами и подразделами (ну кроме ГОСТа на информационные системы )?
Или какие-то книги известных авторов с описаниями похожих по сложности систем, из которых можно было позаимствовать оглавление?
Атмосферная музыка — www.aventuel.net
Re: Как описать проект?
От: gandjustas Россия http://blog.gandjustas.ru/
Дата: 20.05.24 06:45
Оценка: +1
Здравствуйте, dmitry_npi, Вы писали:

_>Вот как бы структурировать это всё в документации? Может быть, есть шаблоны описания архитектуры с разделами и подразделами (ну кроме ГОСТа на информационные системы )?


C4 же https://habr.com/ru/articles/778726/

_>Или какие-то книги известных авторов с описаниями похожих по сложности систем, из которых можно было позаимствовать оглавление?

Проблема в том, что линейное описание для системы не подходит. В линейном описании сложно выразить глубокую структуру и связи между элементами. Фактически роль линейного описания выполняет сам текст программ. А то что невыразимо в тексте нужен графический инструмент.
Re: Как описать проект?
От: gyraboo  
Дата: 20.05.24 07:09
Оценка:
Здравствуйте, dmitry_npi, Вы писали:

_>Вот как бы структурировать это всё в документации? Может быть, есть шаблоны описания архитектуры с разделами и подразделами (ну кроме ГОСТа на информационные системы )?

_>Или какие-то книги известных авторов с описаниями похожих по сложности систем, из которых можно было позаимствовать оглавление?

Скормить всё ChatGPT (коммерческому, у него больше контекст и кол-во токенов), попросить дать новое оглавление и реструктуризацию.
Re[2]: Как описать проект?
От: Буравчик Россия  
Дата: 20.05.24 07:10
Оценка: +1
Здравствуйте, gandjustas, Вы писали:

G>C4 же https://habr.com/ru/articles/778726/


С4 позволяет описывать только структуру (статику). Нужно добавить описание динамики, очень верхнеуровнево.
В виде списка функциональных требований и sequence или dataflow diagram основных процессов
Best regards, Буравчик
Re: Как описать проект?
От: velkin Удмуртия https://kisa.biz
Дата: 20.05.24 11:14
Оценка:
Здравствуйте, dmitry_npi, Вы писали:

_>Есть, конечно, вики на проекте, но она не покрывает всё, сведения отрывочные, да и написано так, что помочь она может в основном тому, кто уже всё знает, но что-то забыл. Например, заходишь в раздел с каким-то достаточно общим названием — а там несколько скриптов для консоли, и всё.


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

База знаний.
1. Личная.
2. Коллективная.

Личная база знаний имеет одного автора. Коллективная база знаний состоит из множества фрагментов каждый из которых имеет одного автора.

В коллективной базе знаний разные люди могут вносить правки во фрагменты до высокой степени смешения, но всё равно у каждого нового символа есть автор. Скопированные символы сохраняют старого автора.

Условно можно разделить содержимое именованных глав и подглав, статей, веб-страниц на.
1. Навигационные структуры.
2. Полезное содержимое.

Пример.
категория-1 / категория-10 / содержимое-7548

тег-45, тег-89

Оглавление
0. Категории.
1. Раздел-1.
2. Раздел-2.
3. Литература.

Категории
 признак 1
  содержимое-7597
  содержимое-9499
 признак 2
  содержимое-3574
  содержимое-5692

Раздел 1.

Содержимое содержимое содержимое содержимое содержимое гиперссылка-5976 содержимое содержимое.

Раздел 2.

Содержимое содержимое содержимое гиперссылка-3569 содержимое содержимое.

Литература
 признак 1
  гиперссылка-4629
  гиперссылка-6396
 признак 2
  гиперссылка-8539
  гиперссылка-8469

предыдущее / следующее


1. Внешняя навигация уже открытых категорий.
2. Внешняя навигация тегами.
3. Внутренняя навигация оглавлением.
4. Внешняя навигация перехода на категории.
5. Внутреннее содержимое по разделам с внешней или внутренней навигацией по гиперссылкам.
6. Внешняя навигация очерёдностью.

Смысл здесь в том, что не получится сразу создать подходящую навигационную последовательность, понадобятся правки. Причём как и содержимое навигация имеет автора.

Отсюда же вытекает вывод, что тем же веб-страницам выгоднее присваивать номера, чтобы при смене названий не бились ссылки.

А дальше многократно заполняешь примерно такой шаблон попутно наращивая знания.

Что касается баз знаний, то это обширный вопрос. Кто-то даже зарабатывает большие деньги обучая других.

Другое дело практика. По сути чтобы признать идею успешной нужна реально работающая система на изложенных авторами принципах.
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.