digital-garden/_inbox/Анализ данных проекта.md
2024-06-13 21:01:37 +03:00

46 lines
4.2 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

---
aliases:
tags:
- зрелость/🌱
date:
- - 2024-03-19
zero-link:
- "[[00 Архитектура ПО]]"
parents:
linked:
---
Нам нужно выяснить всё о данных в вашем проекте. Всё - это вообще всё.
Примеры вопросов:
- Какие есть данные?
- Как они связаны друг с другом?
- Сколько данных каждого типа?
- Какие минимальные, максимальные и средние размеры у данных каждого типа?
- Сколько актуальных данных?
- Как определяется актуальность данных?
- Как быстро растёт объём данных?
- Как часто данные читаются?
## Какие у нас есть данные?
Нам нужно составить схему движения данных внутри вашего проекта. Простой пример - пользователь публикует текстовый пост в френдленту. Вопросы, ответы на которые вы должны получить у менеджера проекта (или прикинуть самим, мы обычно прикидываем сами и предлагаем менеджеру или заказчику конкретное значение):
- Какого размера может быть пост? Минимальный, максимальный и средний размер? / Кстати, ограничениедолжно быть, ограничения есть всегда и это не спроста /
- Сколько постов может быть у одного пользователя?
- Сколько в среднем у пользователя постов?
- Как часто пользователь может публиковать посты?
- Сколько постов публикуется в день?
- Сколько всего постов в системе?
- Как долго должны храниться посты?
- Можно ли прочитать архивные посты?
- Сколько всего пользователей в системе?
- Сколько в среднем у пользователя друзей?
- Сколько максимум у пользователя друзей?
- Как быстро пользователь должен увидеть свой пост?
- Как быстро пользователь должен увидеть пост друга в своей френдленте?
- Как сортируются посты в френдленте друзей?
В сухом остатке, вы должны точно понимать, что у вас есть за данные, какие эти данные, как эти данные изменяются.
## Как данные будут использоваться?
Знать всё о своих данных, предполагает также знание о том, как эти данные будут использоваться. Причём обо всех вариантах использования. Написать такую систему хранения, которая позволит любое использование и обработку данных в высоконагруженной системе, строго говоря, невозможно.
Показ данных пользователю - это тоже использование, причём использование, которое обладает одним критичным свойством - в случае, если мы проектируем с вами веб-систему, то показ данных пользователю должен быть максимально быстрым. Пользователь не будет ждать. Мы должны придумать такую схему хранения данных, которая позволит максимально быстро обработать ЛЮБОЙ запрос пользователя.