"Канонічна" ідея є всеосяжною у програмному забезпеченні; такі моделі , як Canonical Model , Canonical Schema , Canonical Data Model тощо, здаються, знову і знову з'являються у розвитку.
Як і багато розробників, я часто некритично дотримувався загальноприйнятої думки про те, що вам потрібна канонічна модель, інакше ви зіткнетеся з комбінаторним вибухом картографів та перекладачів. Або, принаймні, я раніше це робив до пари років тому, коли я вперше прочитав дещо сумнозвісний EF Vote of Not Confidence :
Гіпотези, які колись підтримували здійснення канонічних моделей даних, не включали і не могли включати чинників, які були б виявлені, як тільки ідея була втілена в життя. Через роки спроб та помилок ми виявили, що використання окремих моделей для кожного окремого контексту, в якому може використовуватися канонічна модель даних, є найменш складним підходом, є найменш затратним підходом, і той, що призводить до більшої ремонтопридатності та розширюваності додатків і кінцевих точок, що використовують контекстні моделі, і це підхід, який не заохочує ентропію програмного забезпечення, яку роблять канонічні моделі.
У рефераті немає жодних доказів, які б підтверджували його твердження, але все-таки змусило мене поставити під сумнів підхід щодо МЧР досить довго, щоб спробувати альтернативу, і отримане програмне забезпечення не вибухнуло ні в прямому, ні в переносному значенні. Але це не означає, що дуже багато ізольовано; Мені могло просто пощастило.
Тож мені цікаво, чи було проведено якесь серйозне дослідження практичних, довготермінових наслідків наявності канонічної моделі порівняно з контекстними моделями в програмній системі чи архітектурі?
Або, якщо про це ще рано запитувати, чи не писали будь-які розробники / архітектори про особистий досвід переходу з CDM на незалежні контекстуальні моделі, або навпаки, і які практичні ефекти мали такі речі, як продуктивність, складність чи надійність?
А як щодо відмінностей на різних рівнях, тобто використання однієї і тієї ж моделі в одній програмі порівняно з її використанням у системі програм або цілому підприємстві?
(Будь-які факти, будь ласка; історії війни вітаються, але не догадуються.)