strangeraven (strangeraven) wrote,
strangeraven
strangeraven

Про первичность данных

Представьте себе, что вам нужно что-то запрограммировать. Какой-то продукт или фичу. С чего же начать?

Ну понятно, что сначала надо вытрясти все требования, продумать user stories. Этап конечно важный, но в данном случае речь не об этом, пропустим. Будем считать, что первые требования уже собраны и надо браться за непосредственно разработку. Итак, что теперь?

Обычно в таких случаях говорят: ну надо сделать архитектуру. Без архитектуры никуда. Но что именно под этим подразумевается? И обычно дальше под этим подразумевают что-то типа: надо разбить программу на модули. Надо продумать иерархию классов. А какие будут сервисы. А какие интерфейсы. А давайте применим вот этот паттерн. Наверное, с этого и надо начинать?

А вот нифига.

Вообще говоря, любая программа - это всего навсего инструмент по перелопачиванию данных. Данные на входе, данные на выходе. Данные где то хранятся. По сути то.

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

Вот и получается, что данные первичны и начинать надо с них.

  1. Где происходит ввод данных?

  2. Где отображаются?

  3. Какие у нас есть еще данные и где они живут?

  4. А какое у них время жизни и кто отвечает за их удаление?

  5. Как обеспечивается корректное состояние данных?

  6. Есть ли дублирующиеся данные? А точно ли оно надо и нельзя ли без? Если нельзя, то как обеспечить синхронность?

  7. Где какие данные нужны? Как они попадают из точки A в точку B? Какова логистика системы?

  8. Что с потоками? Какие потоки что могут трогать и почему от этого ничего не сломается?

Это в общем то основное - разложить данные по полочкам и обеспечить их корректность. После этого обернуть данные в сахарные обертки уже несложно. Это конечно тоже важно, но все-таки вторично.
Tags: programming
Subscribe
  • 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 

  • 0 comments