Co teď řešíme v Simplii?

Posted 17. 01. 2010 / By Petr Soukup / Simplia

Poslední dobou je tu nějak moc chlubících článků, tak zase na chvíli otočíme :) V Simplii to teď žije čím dál tím víc a aktuálně se řeší hned několik věcí najednou. Něco je ještě tajné, ale spíš než představovat projekty bych chtěl uvést, s čím teď jsou problémy. No problémy… spíš komplikace.

Zdrojové kódy

On to není úplně problém, jako spíš přirozený vývoj. Hned na začátku jsem tu popisoval, jak kdysi (ono už to pár let je) systém pro eshopy, dnes známý jako Simplia, vznikal. Ve stručnosti bych řekl, že ve spěchu. A tím nemyslím, že bylo nutné do konce roku něco dodělat. Ani do měsíce. V začátku se muselo dost věcí vyřešit do zítra či do hodiny. V takovém časovém presu si těžko budete hrát s frameworky, porovnávat šablonovací systémy, testovat platformy, vybírat nejlepší volby. Zkrátka se vzalo co bylo a jelo se. Kupodivu se později ukázalo, že většina těchto rychlých voleb byla správná. Celý objektový systém vznikal stylem “ať to zvenčí vypadá hezky a dobře se s tím dělá a vnitřek se přepíše až bude čas”.

Tento postup určitě neberu jako chybu. Perfektně to splnilo účel a skutečně se pak problémové části, které byly spíchnuté narychlo přepsaly. Některé dokonce zůstaly, protože se kupodivu ukázalo, že už jsou optimální.

Postupně se tedy přepisovalo a částečně se přepisuje do teď. Když systém vznikal, tak ještě nebyly krásné frameworky a PHP bylo taky dost hloupé. Takže například javascriptová část sice fungovala dobře, ale další vývoj byl komplikovaný. Tak se vzalo jQuery a přepsal se kus eshopu, aby s tím fungoval. Paráda, jsme zase o kus dál. Nedávno přišel zase moc pěkný driver pro databázi dibi. Jupí, budeme používat dibi. Sice se už předtím používala naše vlastní třída, která řešila escapování, skládání dotazů apod., ale dibi je zkrátka hezčí. Ikdyž jsme do ní nejdřív zakomponovali pár šikovných věcí z té naší :)

Nepředstavujte si ale zdrojáky jako nějaký splácený zencart. Právě naopak. Když se objeví nějaká nová možnost (dibi, nové php, …), tak se zjistí, zda by přineslo zavedení nějaký užitek a jde se na to. Celý model eshopu je postaven tak (díky prvotnímu vodopádovému systému), aby šly jednotlivé části aktualizovat nezávisle.

Není to úplně klasický přístup, ale líbí se mi. Rozhodně nejde aplikovat všude a dostali jsme se k němu spíš omylem. Díky němu je ale náš systém technologicky neustále na špičce. Pořád se vyvíjí, pořád se mění. Teď byste na první pohled řekli, že byl napsán nedávno přímo pro PHP 5.3 a přitom první řádky vznikaly někde kolem verze 4.3.

Šablony

Kdysi dávno byl systém určen jen pro jeden eshop. A protože se spěchalo, tak se neřešil šablonovací systém a používalo se PHP. A používá se do teď. Je to jedna z částí, u které lituji, že se nepřepsala dříve.

V původní praverzi se přímo v šabloně volali sql dotazy a celkově byla fuj. V té současné (resp teď už předposlední) už je logika krásně oddělena od prezentační vrstvy a šablony jsou opravdu hezké a přehledné. Jenže jsou pořád v PHP. A k PHP nemůžete pustit každého. Obrovskou výhodou šablon v PHP je, že máte velké možnosti. Obrovskou nevýhodou ale je, že máte velké možnosti.

Zavedly se tedy šablony. Nepatrně se snížil výkon, protože při každé její změně je potřeba šablonu “překompilovat” do PHP. Větší problém ovšem je, že nějakých 80 šablon eshopů je vedeno v PHP. Řešení? Přepsat. Zhruba 90% zvládl skript, ale stejně na nás zbylo dost práce. Je to jedna z těch činností, co se zkrátka musí udělat a pak bude klid :)

Znáte to, když chcete doma přidělat poličku a nakonec rovnou i vymalujete? Podobné to bylo s šablonami. Když už jednou vrtáte v šabloně, tak vám to prostě nedá. Takže jsem vlezl do šablony, abych upravil drobnost, kterou nezvládl skript a vidím “a hele H2ko, kde ty ses tady vzala? Bude lepší, když tohle přehodím sem, ať se to líp indexuje. Jé, ještě opravit styly. A hele, tady je to nevalidní, když je zrovna Saturn s Merkurem v zástinu. Opravíme, přepíšeme.” Nakonec se z poměrně “jednoduché” změny stala kompletní revize šablon. A je to dobře. Opravily se rovnou místa, která se klientům povedlo rozvrtat, kód se zeštíhlil. Generální úklid.

Jednoduchý šablonovací systém ale dává i nové možnosti. Přístup se může dát komukoliv, takže mě napadla taková myšlenka. Zvažuji, že bych do ceníku zařadil tarif Kutil. Klient by dostal přístup k (asi) FTP, kde by bylo vzorová šablona, odkaz na dokumentaci a vyrobil by si eshop sám. Pokud umí kódovat (cílovka je tedy webtrh) a má PSD, tak to určitě není problém. Budoucí úpravy by si v šabloně taky dělal sám (což je pro dost lidí plus). Takový tarif by samozřejmě byl cenově zvýhodněn, protože by ulevil naší podpoře. Co myslíte?

Nové projekty

Dost technických řečí.

Během následujících dvou měsíců nás čeká velký projekt – přestavba eshopu malvik.cz. Nemyslím novou grafiku, ale kompletní přestavbu grafiky i celé struktury obchodu. Dost se na to těším, protože jsem zase jednou dostal rozpočet i čas, takže se můžeme trochu předvést a všechno nemusí být kopromis. Určitě se tu ještě pochlubím. Na druhou stranu neočekávám, že se výsledek bude lidem z oboru líbit, protože musí být zachována firemní paleta – růžová a modrá. To se pak můžeme snažit s optimalizací výběru produktů a nákupu, když pak pupkatí programátoři na první pohled řeknou - “je to hnusně růžový a tudíž hrozný” :)

Pak mě taky čeká affil.simplia.cz. Teď přes víkend se tam zavádí nové funkce, takže se tu zase pochlubím a hlavně se s vámi poradím, zda jsou k něčemu dobré. Příští týden taky strávím objížděním klientů a domlouváním affilů, takže se zase rozšíří nabídka. Jako první chci získat hlavně ty netypické. Dárky prodává každý, ale zkoušeli jste propagovat autobaterie? Možná ani netušíte, jak sympatický je tam trh :)

Taky mě čeká dodělání nového webu Simplie. To mě čeká už někde od října. Znáte to o kovářově kobyle? Ale už je to vážně potřeba. Nejsou lidi…

Chtěl jsem toho napsat ještě spoustu, ale už jsem se nějak moc roztáhl. Takže si to nechám na příště. A jaký budete mít týden/leden vy? :)


O blogu
Blog o provozování eshopů a technologickém zázemí.
Aktuálně řeším hlavně cloud, bezpečnost a optimalizaci rychlosti.

Rozjíždím službu pro propojení eshopů s dodavateli.