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