Názor k článku Cibulová architektura aneb jak nepřipravovat špagety od wajtr - Budeme-li brát v úvahu i "Vícevrstvé architektury", jsou...

  • Článek je starý, nové názory již nelze přidávat.
  • 24. 1. 2020 8:25

    wajtr

    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žo­valy.

    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