Publikováno Zář 25 2009 autorem Petr Soukup

Jak se časem komplikuje vývoj webových aplikací

Trochu jsem uklízel na disku a objevil staré verze eshopu. Vcelku jsem se pobavil, když jsem koukal například na databázi. Zároveň jsem ale pochopil, proč si spousta lidí myslí, že eshop je hračka, která jde naprogramovat za víkend.

Když se nad tím zamyslíte, tak je eshop skutečně velmi jednoduchá aplikace. Co vlastně potřebujete? Tabulku na zboží, kategorie, objednávky, položky košíku. To je vše. Takže 4 tabulky, pár tříd. Práce na chvilku. Jenže pak zjistíte, že chcete mít zboží ve více kategoriích. Není problém, přidáme tabulku. Pak zjistíte, že chcete textové stránky editovat nějak hezky – šup, další tabulka. A co parametry zboží? To je přece hezká funkce – šup dalších cca 6 tabulek. Začínáme prodávat trička a je potřeba vést velikosti – hopla další tabulka. A trička mají každé vlastní cenu – hop tabulka a překopat celý systém. Expandujeme na Slovensko, jsou potřeba jazykové verze. Takže ke každé tabulce ještě jednu s texty. Eshop dohromady nic moc neumí a už jsme na tabulkách zhruba dvaceti.

Je spousta věcí, které ještě chci v eshopech Simplia mít a přitom už jsme stovku tabulek v databázi překročili před několika měsíci. Jsem docela zvědav na kolika se zastavíme. Ale myslet si, že vývoj někdy skončí je čistá naivita. Pořád přichází něco nového a pořád se musí vylepšovat.

Ano, je mi jasné, že porovnávat schopnosti aplikace podle počtu tabulek je nesmysl. Ale pobavilo mě, když jsem objevil prapůvodní pre-alfa verzi se čtyřmi tabulkami :)



11 komentářů k “Jak se časem komplikuje vývoj webových aplikací”

  1. eMan
    16:54 on Září 25th, 2009

    Z jakého data pochází pre-alfa verze ?

  2. Petr Soukup
    17:01 on Září 25th, 2009

    Řekl bych, že tak 4-5 let

  3. head
    22:45 on Září 25th, 2009

    Normalne by som chcel zo zvedavosti vidiet tu DB schemu a asi aj celkovy navrh aplikacie, cez 100 tabuliek nie je malo ;).

  4. Petr Soukup
    22:50 on Září 25th, 2009

    head: Tak to samozřejmě ukazovat nebudu :o)

  5. head
    23:21 on Září 25th, 2009

    Vsak to mi je jasne ;)

  6. Rammi
    15:33 on Září 26th, 2009

    No 100 tabulek uz mi prijde docela hodne, ale na druhou stranu, pokud maji vsichni klienti jednu databazi, tak asi ano. Vetsinou se projekty komplikuji tim, ze vsichni chteji aby to bylo univerzalni, databaze normalizovana, atd.
    Popravde jsem se na tohle u nasich projektu vytetntil. Protoze kdybych mel vsechno psat tak jak se to „spravne ma“, tak bych nektere projekty nespustil doted, nebo o nekolik mesicu pozdeji. Za tech nekolik mesicu ale uz muzou klidne vydelat na preprogramovani od zacatku, jenze to uz se nikomu nechce, kdyz uz to jede. ;)
    A tak se to bastli od zacatku do konce… teda zatim asi zadny nas projekt neskoncil, tak nevim ;)

  7. Petr Soukup
    15:43 on Září 26th, 2009

    Radim: Všichni mají stejnou strukturu, pokud jsi to tak myslel.
    U nás se naštěstí od začátku podařilo udržet, že se všechno píše poměrně univerzálně a kupodivu jde všechno dělat rychle. Sláva OOP a dobrému návrhu. Ale když jsem tuhle vrtal v databázi ručně, tak jsem se docela zapotil, než jsem si dal dohromady jak je všechno se vším propojené.
    A k tomu přepisování. Je pravda, že se eshop přepisuje neustále. Ale ne že by se stará verze nahradila novou, ale funguje to za běhu. Po dvou letech se zkrátka přijde k nějaké části a řekne se „Tohle by šlo udělat jinak. Teď už víme, že není moc zájem o to o co jsme původně mysleli“. Některé části, jako třeba třída pro práci s databázi ale zůstávají prehistorické, protože tam zkrátka není co vymýšlet.

    Onoje taky něco jiného, pokud máš projekt jeden (resp několik různých) nebo jeden nasazuješ vícekrát. Tam je paknejvětší zabiják, když je každá instalace v jiné verzi a časem se od sebe jen vzdalují

  8. Patrik
    21:52 on Září 26th, 2009

    Souki: víš co vám závidím? že to znáte od začátku a znáte to jak své boty. Já teď předělával nákupní proces v eshopu. Hrůza, nejvíce času zabralo vůbec zjišťování jak a co je kde propojeno. Tolik nadávavek jsem už dlouho nepoužil.
    Vlatní úprava pak byla už docela snadná.

    K databázi: koukal jsem do svýho, ten má 146 tabulek, ale spoustu funkcí eshopu jeste nevyužívám takže leží ladem.

  9. Petr Soukup
    04:36 on Září 27th, 2009

    Patrik: Když jsem psal, kolik máme tabulek (teď jsme tuším někde na 115), tak jsem si říkal: „kolik asi má zencart“. A hlavně: „kolik jich asi má jen proto, že je navržený debilně“ :)

    A k těm úpravám. Abych pravdu řekl, tak databázi už nezná asi nikdo. Už je to prostě moc velká. Všichni jednoduše používají $zbozi->nazev = „Kočárek 1″, a že tenhle příkaz způsobí dotaz přes 10 tabulek už nějak nikdo neřeší. To řeší systém a všichni jsme líní. Ale když je potřeba něco vysledovat, tak to je nářez. Nejlepší by bylo asi házet drobečky :)
    Dřív třeba šlo hledat problém tak, že se vzalo id zboží a vypsalo se z tabulky zbozi. Teď tam vidím kulové, protože název je v jiné (podle jazyka), cena taky v jiné (podle kódu) a tak dále. Lidským okem už se zkrátka pozná prdlajs. Samozřejmě – daly by se použít pohledy apod. Ale to už většinou svádí ke zkratkám, které nejsou příliš efektivní

  10. Patrik
    00:11 on Září 30th, 2009

    No, naštěstí nemám zencart.-))

  11. Frances
    10:17 on Říjen 5th, 2009

    Musim rict ze moje upravena presta mam 126 tabulek a krom affilu ji nechybi nic. A co se tyce struktury myslim ze docela hodne slusna.

Přidat komentář