Řada jednoduchých aplikací může šťastně existovat s úrovní izolace READ UNCOMMITED, a nevyžadují ani ostatní ACID vlastnosti. Příkladem může být diskuze tady na rootu, nebo většina triviálních webových udělátek. Ovšem jakmile se začneme bavit o trochu vážnějším použití DB, je situace úplně jiná. Představte si třeba databázi zákazníků na call centru, a do té buší dvacet (nebo také dvě stě) operátorek. Velmi lehko se stane, že jich bude více editovat ten stejný záznam. Co se stane u jednoduché aplikace? Přijdete o změny. Je to akceptovatelné? V žádném případě, to byste z toho udělal ca-ll-sino.
Problém je v tom, že aplikace (a zvláště ty webové) píší často lidé bez základních znalostí a schopností. Doma jim ten eshop fungoval, zákazník si to také zkusil, tak co. Jenže jak uváděl kolega Stěhule, až přijde vánoční špička, může majitel mít shopu vrásky na telefonu rozzlobené zákazníky, a na čele hluboké vrásky. Proto je pro zákazníka lepší pracovat s profesionály, a ne s garážovými firmami.
Nebyl také Microsoft dlouho garážová firma? Co odlišuje garážovou firmu od profesionálů? I tak velká firma jako je Microsoft např. neručí za škody, které vzniknou chybnou funkcí jejich sw. Takže záruky to nejsou. Já osobně bych si určitě raději objednal sw od svého profesora, který mne učil programovat, než od leckteré profi firmy (jeho přístup ke kvalitě je nepochybně lepší než Leninův).
Osobně bych se na profesionalitu profesionálů až tak moc nespoléhal. Zvláště v IT - ty zásadní chyby jsou odstraněné cca až v druhé, třetí verzi (např. u ekonomických aplikací Oraclu se na některé chyby narazí dodnes). Problémy (výkonnostní) bývají také s docela starými aplikacemi, které mají vlastní systém zamykání záznamů, vlastní systém synchronizace, a moderní databázi používají jen jako nosič.
Určitě už je situace o dost lepší než třeba před deseti roky, kdy byla tristní, ale že by se psaly perfektní aplikace (na první pokus) - hmm, tak o tom nic nevím. I velké firmy zaměstnávají jenom lidi - a jen minimum firem má tak nastavený testovací proces, že třeba chyby souběhu dokáže včas zastavit. Nemluvě o bezpečnostních chybách.
MS samozřejmě byla garážová firma, jako velké procento dnešních velkých firem. Ovšem zakladatelé měli slušné znalosti.
Garážová firma nemusí nutně dělat věci špatně. Ovšem dobrá garážová firma se z té garáže dostane (byť asi neskončí tak vysoko, jako MS), kdežto patlalové v garáži typicky zůstanou (i z toho existují výjimky). U garážové firmy má nezkušený zákazník veliké riziko, že se spálí.
Profesor nemusí být automaticky vhodná osoba. Když budu potřebovat něco svařit na stavbě, profesor ze stavební fakulty může být tím nejhorším kandidátem. Podobně teoretický informatik může být pro tvorbu eshopu ztracený případ. A když vidím některé profesory, jak zápasí se zasunutím klíčenky a spuštěním PPT prezentace... Třikrát se nestrefí do USB konektoru, minutu hledá soubor v Exploreru, pak na něj klikne, zamyslí se, jde do menu File, a vybere položku Open. Přednášet problematiku ze sedmdesátých let zvládne v podstatě stejně úspěšně, jako udržet vlastní moč, ale rozhodně bych si ho nenajmul. Uživatele Lenin POWER! osobně neznám, ale pokud by měl kvalifikaci a reference (což asi má), tak bych mu vývoj dost možná svěřil.
Svět IT má svá specifika, díky kterým perfektní aplikace na první pokus dost možná nebudeme psát nikdy. Ovšem to nijak neospravedlňuje patlání bez znalosti základů řemesla.
Myslim si to stejne. Kdyz v praxi vidim co dodavaji za silenosti velke "profesionalni" firmy. Kolikrat nemaji o DB zadnou paru. Vedi ze tam jsou nejake tabulky kam se ukladaji data a nejake indexy aby to rychle vyhledavalo. To je bohuzel nekdy vse. :-( Pak staci v nejakem super nastroji naklikat objektovy datovy model a ejhle. Super profesionalni aplikace je na svete. :-) Jen od ni nikdo nesmi chtit aby bezela v zatezi. ;_)
ja vidim ten nejvetsi problem v IT v takovych lidech, jako jste vy. Takovi, kteri melou neustale ty IT-pravdy, ktere se naucili v nejakem kurzu nebo co pochytili na skole od nejakeho profesora, ktery v zivote nemusel projit ruznorodym softwarovm prostredim.
Ale mozna, ze jste chlap s gulema, a mozna treba i inzenyr a ne nejaka IT-slecinka, tak se nestydte a hodte sem ty statistiky tech kolizi v beznych softwarovych systemech rozdelene podle velikosti systemu, poctu uzivatelu, branze apod. Vypravejte nam o tech call centrech, kde delaji telefonistky na tech samejch zaznamech. (ano, takovy nesmysl je mozno zakaznikovi prodat, ale musi to navrhnout asi nekdo jako vy - samozrejme, ze budou dodrzeny normalni formy :-) )
Ale jestli ty statistiky nemate, tak vam rikam, ze kseftujete s citronama.
Aha. Takže vy při návrhu aplikace vůbec neuvažujete o tom, že operace bez transakcí nejsou atomické. Díky tomu zřejmě může dojít ke ztrátě dat, když se věci "vhodně" sejdou. Ale ten špatný je člověk, který si je problému vědom, a umí mu předejít. Naopak ten, kdo zprasí aplikaci tak, že může díky vadnému designu bez varování ztrácet data, je vlastně ten hodný a pracovitý hoch. Potom samozřejmě gratuluji, protože "jste ten hodný a pracovitý".
Hlavně se snažte vyvíjet někde hodně daleko od mě, a nedělejte nic, na čem opravdu záleží. Ti lepší patlalové se časem doučí (ti nejlepší se učí celý život). Ti horší patlají, dokud je nedostihne dost velký průšvih.
Ještě na okraj. Jeden takový patlal zabil 5 lidí, když si nevšiml race conditions u SW pro ozařovač Therac-25. Možná také čekal na statistiku počtu mrtvých pacientů podle jejich velikost, počtu ozařování a lokace nemocnice ;)