can3p (can3p) wrote,
can3p
can3p

Category:

Временной аспект

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

Любая система живет во времени. В таблицах хранятся актуальные сущности. Вот у вас пользователь, у него такие-то свойства - имя, теги какие-нибудь. Допустим есть еще другие сущности - покупатели, продавцы, товары. Но есть еще и артефакты, которые эти сущности производят - транзакции, товары и т.д. И для них внезапно оказывается важно знать, в каком состоянии были эти сущности в момент создания артифката. Была ли скидка у пользователя, когда он купил товар? Был ли этот товар в продаже в ринципе?

Второй временной аспект заключается в том, что к компьютерным системам отлично подходит срванение с едущим на полном ходу автомобилем, который на ходу доделывают его пассажиры, мало того, сервис развивается в жесткой связке с данными. Если взять код годовалой давности, он просто не заведется с текущей моделью данных. Обычно изменения делают по очередь - то код, то данные, чтобы не сломать обратную совместимость. Следствие из этого - и в коде, и в данных постоянно есть части находящиеся в переходном состоянии. Какие-то пользователи еще используют ваше старое api, какие-то пользователи не смигрировали со старого аккаунта на новый.

Из этого два следствия - нельзя программировать только для нового состояния, всегда нужно прикидывать, что будет с существующей системой. Второе - при планировании изменений нужно продумывать, как сделать так, чтобы они не затянулись на бесконечность. Пример с api хороший - если оно публичное, то вообще мало шансов, что его получится отключить. Можно просто выключить, но что, если ваши клиенты - банки? Что, если ваши клиенты - не it компании, и интеграцию сделали контракторы, которых уже и след простыл?

Tags: coding
Subscribe

  • Про cl-journal, все части

    Спустя две недели все части появились в блоге, теперь можно читать весь опус про cl-journal.

  • Про cl-journal, часть три

    Продолжаю срывы покровов, опубликовал третью часть. В этот раз триллер про самое важное, т.е. загрузку всех ранее написаных постов, борьбу за…

  • Про cl-journal, часть два

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

  • Post a new comment

    Error

    Anonymous comments are disabled in this journal

    default userpic

    Your reply will be screened

    Your IP address will be recorded 

  • 1 comment