We need doers in our movement

19. 11. 2012 21:07 (aktualizováno) Petr Blahoš

V reakcích na můj předchozí příspěvek se objevily názory (za které tímto děkuji), že bych měl spíš všude v kódu promítnout tu změnu, která se stala na úrovni databáze, čili přejmenovat si sloupce i ve své aplikaci. Já jsem se původně vůbec nechtěl pouštět do jakéhokoliv popisu situace, ani toho, co mě vedlo k tomu, dělat to tak, jak to dělám. Mě ta reakce vlastně překvapila natolik, že jsem ani hned nedokázal patřičně reagovat, a vysvětlit proč to tak dělám. No, aspoň jsem si to v hlavě utřídil.

Databáze je nějaký koncový bod. Když se změní databáze, tak jediné, co chci říct aplikaci je: Data bereš odtud. Případně, tady k tomu ještě máš pár parametrů. Pokud musím něco měnit v té vlastní aplikaci, tak je to (podle mého názoru) blbě. Neboli, mám vrstvu (řekněme driver), která se stará o to, abych od databáze dostal data. Různé drivery pro různé databáze. Když si představím, že ta aplikace není nějaká vnitropodniková záležitost, ale něco co prodáváme, a něco co podporuje různé konfigurace jistého ERP, tak nebudu mít několik verzí kódu pro různé konfigurace toho ERP a různé databáze. Jediné co budu měnit, bude connection string, a možná pár parametrů. To vidím jako jedinou správnou cestu, a nevidím důvod, proč by to mělo být jinak jenom proto, že nikdy žádná druhá instalace toho software nevznikne.

Přece dám jednomu komentujícímu za pravdu v tom, že když už jsem empiricky o té databázi, nebo spíš o tom ERP zjistil, že používá ten prefix t$ nebo t_, tak bych měl správně ze všech míst ze svého kódu tyto prefixy vyhodit. Protože prefix je dost pravděpodobně konfigurační parametr toho ERP. O překlad jména sloupce mezi aplikací (bez prefixu) a databází (s prefixem) by se měl postarat driver.

Sdílet