Budeme-li brát v úvahu i "Vícevrstvé architektury", jsou podobné principy návrhu architektury systémů známy již desítky let. Věřím, že drtivá většina studovaných programátorů se jimi řídí a již desítky let se snaží vrstvy oddělovat. V oboru jsem skoro už dvacet let. Pracuji převážně na velkých informačních systémech, které dané principy dodržují/dodržovaly.
Zatím jsem nezažil, že by si někdo troufnul vyměnit jednu z těch vrstev v obalu té cibule s tím, že zbytek se nechá skoro beze změny. Např. výměna prezentační vrstvy ve velkém systému je skoro nemožná, hlavně proto, že prakticky je i v prezentační vrstvě spousta business logiky (např. "pokud zaškrtnu tenhle checkbox, tak schovej tyhle dvě políčka" - v informačních systémech takováhle pravidla tvoří troufnu si říct vlastně většinu všech business rules). Nebo pokud někdo napíše danou aplikaci pro konkretní databázi (např DB2), tak i kdyby jste měli všechna DML a DDL v SQL standardu, tak vám to s jinou databázi prostě fungovat nebude (respektive ono se to rozjede, ale dáte ruku do ohně za to že to funguje naprosto stejně? :)).
Z mojí zkušenosti se ke starším systémům buď začal přilepovat kód v nové technologii (např souběh dvou prezentačních vrstev) a nebo se celý systém vzal a přepsal se komplet do nových technologií. Pokud někdo někdy zažil něco jiného prosím napište níže - mám na mysli systémy velikosti řádově statisíců řádek, fungujících mnoho let.
Takže s článkem souhlasím, s vrstvením souhlasím, ale pouze pro účely snadnějšího porozumění systému jako celku. Vrstvení za účelem možné "snadné" výměny nějaké části je teorie, kterou jsem v praxi opravdu nezažil a nemyslím si že je možná.
Čím jsem starší, tím víc mám pocit, že se stačí držet SOLID principů (https://en.wikipedia.org/wiki/SOLID) nejenom v návrhu tříd, ale i v návrhu modulů či integrace systémů... zbytek tak nějak vyplyne sám...
24. 1. 2020, 08:28 editováno autorem komentáře