Ty první dva body jsou poněkud v rozporu s bodem třetím...
a) Záleží na situaci. Můžu mít M zdrojů a N zpracovatelů. Model 1:N je výhodnější se zpracováním na vstupu, N:1 u zpracovatele, zbytek někde mezi.
b) Pokud data předávám jako strukturu dat daných typů, provedu její naplnění při validaci (kdy stejně do dat sahám). Za předpokladu, že interně mám jako "flags" pole 32 bitů, nedává přece smysl interně jednou posílat string "acd" pro bity {0, 2, 3} a podruhý pro stejnou situaci číslo 13. Takže definováno je to na jednom místě - definice struktury. Pak je to definováno pro parsování vstupu ( to je pro OOP ideální - podle typu vstupu a typu dat si vyberu parser). Rozdíl je v tom, že v kontroléru pak taky neřeším typ dat - je prostě vždycky pro stejnou položku stejný, tak s s tím nezalamuju.
Prostě furt nevidím výhodu toho, že mám data a nevím, jak jsou zabalený.
Ve skutečnosti však ta tvá první možnost vypadá takhle..
Houbeles, nechápeš princip. U dynamickýho typování víš maximálně ty, co ti přijde za data. Většinou ani ty ne. A kompilátor/interpret se musí rozhodovat za běhu - mít připravený všechny varianty a kontrolní mechanismus na všechno. Takže mám menší a rychlejší kód.
Po zkompilování už se typ neřeší, je natvrdo zadrátovaný. A není ani důvod. Takže assert před vůbec není. Je řev kompilátoru, pokud se pokusím při parsování nacpat string do intu. Pak už to hlídat nemusím a za běhu nepadá "nevím co se stringem v proměnné", maximálně se ozve parser na vstupu, že se mu něco nelíbí.
A díky přetěžování funkcí vlastně ani nemusím řešit, čím to parsuju - podle toho, jaký typ chci, vybere kompilátor sám příslušnou parsovací funkci na vstupu.
Jenom si prostě při deklaraci interních řad řeknu, do čeho mají být zabalený a jak zabalený mají být vstupy/výstupy funkcí. Pokud to změním, dostanu při buildu echo, co jsem zapomněl nebo mám zkontrolovat. Ten boj proti nechápu - pokud teda dotyčný zná základy (jak se ukládá int, jak strimg, jak float, co je to pointer,...) a tuší, jaký typy jsou k dispozici a co se pro jeho data hodí.