tgoop.com/data_days/348
Last Update:
🐘 Nimble Elephant — книга про паттерны моделирования данных
в этот раз потребовалось даже меньше двух лет, чтобы прочитать купленную книгу!
почему-то ожидал, что будет больше про аналитику, но оказалось в основном про большие энтерпрайз системы на сотни сущностей. Но в целом полезно; автор — консультант с большим стажем и технической насмотренностью, а ещё пишет просто и с юмором.
⌘
понравилась идея про дата паттерны: 50% ваших моделей — можно брать готовые из сборников; 30-40% — надо чуток подкрутить. А вот оставшиеся надо будет готовить с нуля — и вот на это уже уйдёт 80% от всего отведённого времени на проектирование.
автор подробно разобрал паттерн Party/Role на примере базы данных для школы. Есть ученики, учителя и родители. В теории вроде всё несложно. На практике вылазят интересные особенности, когда у ученика количество родителей != 2; или учитель является чьим-то родителем; или у учителя нет классов активных в данный момент, но были раньше.
в целом, в процессе чтения начал задумываться какие же сложные бывают системы и какие проблемы встречаются при проектировании модели данных для них. Для меня это была неизвестная доселе сложность.
⌘
осторожно! побочные эффекты — во время чтения невольно можно задуматься о том как спроектирована модель данных на текущем проекте. Возможно, что никак
⌘
и прикладной пример про проект, где применение паттернов помогло закончить в срок отстающий проект: автор пришёл на новый проект когда до дедлайна оставалось 8 месяцев, а уже понятно что они не укладываются.
проект готовы передавать в реализацию — начинать писать, собственно, код. Уже есть готовая модель данных, на которую потратили несколько месяцев. Она включает в себя 600 сущностей О_о
удалось убедить заказчиков поменять план: вместо немедленной реализации оставшиеся 8 месяцев поделили пополам. Первую половину времени переделывали модель данных, а вторую — на реализацию и внедрение.
за счёт использования паттернов удалось упростить модель с 600 до 120 сущностей. За оставшиеся 4 месяца команда из трёх синьёров (вдвоe меньше запланированной) реализовала проект по упрощённой модели. Где-то пришлось сущности генерализировать и повысить уровень абстракций, поэтому планка сложности стала выше.
простой пример силы предварительного и тщательного проектирования, а так же демонстрация сил матёрых синьёоров.
⌘
автор неоднократно упоминает, что его книга это как введение в тему паттернов. Он приводит в пример несколько из них и рассказывает несколько историй из своей консалтинговой практики о них, но отсылает как к словарю к книгам других авторов, где можно найти исчерпывающий список всех паттернов
____
несколько книг из того списка:
- The Data Model Resource Book, Vol. 3: Universal Patterns for Data Modeling by Len Silverston (Author)
- Analysis Patterns: Reusable Object Models by Martin Fowler
- Data Model Patterns: Conventions of Thought by David C. Hay
- Building the Agile Database: How to Build a Successful Application Using Agile Without Sacrificing Data Management by Larry Burns
BY data будни
Share with your friend now:
tgoop.com/data_days/348