Egészen a múlt hét elejéig nem tudtam elhinni, hogy tényleg vannak emberek akik copy-paste-tal programoznak. Aztán átkerült a szerverünkre egy honlap és megkértek, hogy vegyem át a webmesteri feladatokat is. Egyik ámulatból a másikba estem. Ennyire igénytelen kódot én még nem láttam!
Az egy dolog, hogy valaki tanul programozni. Még azt mondom, hogy ha talál egy balekot aki finanszírozza neki a tanulást akkor még ügyes üzleti húzásai is vannak. Értem ezalatt, hogy bevállal egy projektet úgy hogy elképzelése sincs róla, hogy hogyan is kell megcsinálni, de összeheggeszti innen-onnan és aztán jó pénzért eladja valakinek. Nem mondom, hogy az én stílusom, de ok van ilyen is. De ezt amit láttam az jobban megviselt mint 13 éves koromban a Ragyogás éjszakai olvasgatása.

A story

Az első dolog ami feltűnt, hogy az emberünk úgy oldotta meg, hogy a fejléc és az oldalsáv ne gördüljön amikor a user görget, hogy a tartalmi részt betette egy iframe-ba. Gondoltam elég nyakatekert megoldás, de nekem csak életre kell keltenem a mi szerverünkön, mi közöm hozzá.

Persze nem kelt életre a drága muszáj volt beletúrni a kódba.

A második dolog ami fura volt, az az, hogy majdnem minden fileban volt valamiféle JavaScript. Nézegettem az oldalt és nem tudtam rájönni, hogy tulajdonképpen minek is. Volt egy függvény ami azt hivatott elkerülni, hogy az iframe magában megnyitható legyen a fejléc és az oldalsáv nélkül. Volt még 1-3 másik JS függvény ami semmit se csinált csak ott figyelt a kódban.

A következő meglepetés akkor ért amikor felfedeztem, hogy ugyanazok a konstansok 5-6 különböző fileban is le vannak definiálva. Minden PHP-val foglalkozó könyv még az elején elmondja, hogy az ilyesmiket tegyük bele egy fileba és include-oljuk be azt az egyet. Úgy néz ki emberünk nem jutott el eddig a tanulásban.

Ennél a pontnál már határozott rossz érzések kerülgettek a kóddal kapcsolatban, de még mindig nem akart életre kelni tovább kellett boncolni.

Mondanom sem kell, hogy a karakterkódolások össze-vissza voltak utf8 és iso-8859-2 között. Na ezeket viszonylag gyorsan összeberháltam.

Gyanús volt, hogy a weblap működése igényli a register_globals-t és láss csodát tényleg! Kedves programozó barátom! Ez a beállítás kb 5 éve hanyagolandó, erőteljes biztonsági rés, és szerencsére az új PHP verziókban már egyáltalán nem is lehet bekapcsolni. Persze nem támaszkodott erre az emberünk csak foltokban. Itt már kissé hisztérikussá kezdtem válni, de remélhetőleg nagyjából beazonsítottam, hogy hol használta és kicseréltem amire kellett. Zárójelben jegyzem meg, hogy egyik ismerősöm megrendelt egy webes alkalmazást egy másik cégtől ami szintén register globals-ra alapult. Meddig tart még amíg ez eltűnik a PHP programozók fejéből?

Aztán következett ez a csoda:

$GLOBALS['cfg']['BASE_PATH'] = str_replace($_SERVER['PHP_SELF'],"",$_SERVER['PATH_TRANSLATED']);
require($GLOBALS['cfg']['BASE_PATH']."/_admin/includes/config.php");

Meresztgettem a szemem egy darabig, próbáltam kitalálni, hogy ennek ugyan mi értelme van, de nem sikerült. Rákerestem a $GLOBALS['cfg']['BASE_PATH'] változóra, máshol nincs használva csak itt a require-nál. Emberünk úgy látszik még nem halott a relatív útvonalakról, mindenestre én már igen, szóval ezt az egész hókuszpókuszt kicseréltem egy . (pont) karakterre, merthogy igazából ennyi kellett ide.

Ezen a ponton már azt hittem, hogy láttam minden szörnyűséget amit lehetett, de sajnos tévedtem. A mi szerverünk más időzónában van, ezért át kellett állítanom pár sql lekérést. Na ekközben találtam pár filet amiben totálisan össze-vissza voltak, már ahol éppen voltak, behúzások. Ilyet ember se nem lát át sem nem programoz, az biztos. Egy eset van amikor ez így néz ki, az pedig amikor valaki copy-paste-ol egy kódrészt máshonnan.

Amikor átjött a weblap arra kértek, hogy nézzem meg az egyik admin menüpontot, mert az ahhoz tartozó sql lekérés 50%-ban 2 perc! alatt fut le 50%-ban pedig hibát dob. Az előző renszergazdi szerint azért mert túl sok adat van benne. Hát megnéztem és 6.000 rekord az nem igazán számít túl soknak. Meglepő módon a mi szerverünkön a 2 perces lekérési idő 0.3mp-re esett vissza. Csak nem egy szerver félrekonfig odaát?

Megfizethető igénytelenség

A kis storymról az jutott eszembe, hogy egyszer egy fórumon olvastam, hogy valaki szerint nincs idő szép kódot írni, mert a weblapokat futószalagon készítik, nincs idő az igényességre, minden gyorsan és olcsón kell. Nevezzük ezt az elvet a megfizethető igénytelenség elvének. Ebből a szempontból is megvizsgáltam a honlapot – ugyan nem tudom, hogy mennyi idő alatt hozták össze – és arra a megállapításra jutottam, hogy ahhoz képest, hogy hányféle funkciót valósított meg kb 1/3 árat kérte el árban. Ahhoz képest, hogy milyen összegányolt megoldásai voltak meg kb 5-ször annyit kért mint amennyit ildomos lett volna.

Ha kicsit elvonatkoztatunk a programozói gondolkodástól a megrendelőt és a végső felhasználót a legmesszebbmenőkig hidegen hagy mindenféle technikai háttér. Nem érdekli őket, hogy olvasható, átlátható-e a kód, nem érdekli őket, hogy az sql táblák megfelelően vannak-e indexelve, nem érdekli őket, hogy használunk-e valamilyen keretrendszert. Egy dolog érdekli őket, hogy a kapott áru működjön.

A másik probléma ami miatt elhozták a weblapot a korábbi szerverről, az az, hogy hetente volt egy-egy 4-5 órás leállás. Ez egy weblap amire folyamatosan futnak be megrendelések. El tudjátok képzelni? 5 órás leállás! A válasz az volt, hogy túl van terhelve a szerver. Jó kis szerver lehet, hogy napi 2-300 látogató leterheli.

Most akkor feltették nekem a nagy kérdést, hogy vannak új igényeik, le tudom-e kódolni. Húzom a számat a fenének sincs kedve egy ilyen kódban turkálni. Miért? Mert nem logikus, nem összefüggő nyakatekert, idejétmúlt és gusztustalan. Újra kéne írni és kész.

Tanulság

Na ezzel jutottam el a bejegyzés igazi mondanivalóihoz.

(1) Kedves weblapra áhítozó cégek! Fontolják meg a következő gondolatot: “A minőséget meg kell fizetni.”
Egy webalkalmazás felé támasztott igények BIZTOSAN változni fognak. Egy minőségi szinten megírt kódban könnyű, gyors és olcsó minden módosítás, fejlesztés. Vagyis magasabb a kezdeti költség és arányaiban alacsonyabb a fejlesztési költség.
Egy “óccsó” típusú honlap esetében alacsony kezdeti költség és igen magas fejlesztési költség lesz a jellemző. Összességében az összes költség akár a duplája is lehet az első változat költségének.

(2) Kedves programozók! Az általatok írt kódot BIZTOSAN előbb vagy utóbb egy másik emberi lény is a kezébe kapja. Sőt ti is fogtok mások kódjában turkálni. Írjatok igényes kódot. Ha több időbe kerül, kérjetek érte többet. Ennyi. És ne vállaljatok olyat amiről gőzötök sincs, hogy hogyan kell megcsinálni. Mert több idő lesz kitalálni mind gondolnátok és az eredmény megint csak egy összegányolt borzalom lesz.

Nem is szaporítom tovább a szót, mert úgy néz ki, hogy a kódban valahol volt valami turpisság és most megfektette az sql szerverünket.

A drágább az olcsóbb
Cimke:     

9 thoughts on “A drágább az olcsóbb

  • 2008. április 30. at 10:21:18
    Permalink

    Mélységesen egyetértek (programozói és megrendelői szemből is). Pár hónapja kellett felfrissítenem egyik első munkámat (internetes katalógusból webáruházzá), de gyakorlatilag a dizájnt leszámítva (meg az adatokat) nem használtam fel semmit újra. Igaz 3 év alatt nem csak a technológia, hanem én is rengeteget fejlődtem. Aztán odaadtam kollégáimnak, hogy applikálják egy másik projektben a legújabb kódot, és pár nap alatt – kábé 1 órányi magyarázás után – meg is tudták oldani. Jól átláthatóan, kommentálva és logikusan kell programozni. Nekem mondjuk muszáj, mert többnyire csoportmunkában veszek részt, és az ezek nélkül lehetetlenség. Viszont sokkal hatékonyabb, gyorsabb.
    Másrészt a megrendelők rendszerint mindig többet akarnak kapni, mint amennyit adni tudsz az adott összegért. Egy jól megtervezett, de legalábbis átlátható kódot később könnyű átalakítani és így újra értékesíteni másik vevőnek is. Ezzel megint csak lejjebb lehet nyomni az árakat, és gyorsabbá tenni a munkát. De ezt (sajnos) kevés programozó látja be. Ezek aztán kétszer annyit dolgoznak, fele annyi pénzért…

    Válasz
  • 2008. április 30. at 16:31:03
    Permalink

    REGISTER_GLOBALS: php6-ból kivették, úgyhogy egy jövőbeli átállás során sokan találják magukat munkanélkül! 😀

    Válasz
  • 2008. április 30. at 16:33:07
    Permalink

    “És ne vállaljatok olyat amiről gőzötök sincs, hogy hogyan kell megcsinálni.”

    Egyszer láttam egy interjút egy gazdag emberről. Ő mondta azt, hogy úgy kezdte el a karierjét, hogy bármit elvállalt amiről még nem is hallott. Mindenhol improvizált. Mára milliárdos. Próbálom követni 😉

    ui.: nem programozó az illető.

    Válasz
  • 2008. május 05. at 10:23:52
    Permalink

    Rrd csak remélni merem, hogy jól átnézted a Hactivity kódot :-).

    Ki kéne lépni a sufnituningolás bűvköréből. Viszont amíg a kedves megrendelők ugráló és zenélő kütyüket kérnek a funkcionalitás javára (ala NagyTeco áron), ráadásul azt is hegesztőktől mindig lesznek ilyenek.

    *.gif animációk nem voltak benne? 🙂

    Válasz
  • 2008. május 12. at 00:59:13
    Permalink

    “A drágább az olcsóbb”
    Kedves Rendszergizda Barátom!
    Nem tudom mi az a blog, meg PHP, meg Javascript, meg SQL, de azért vettem a bátorságot és mindenféle oskolai végzettség nélkül, tisztán szórakozásból készítettem a saját szórakozásomra honlapot.
    Szerintem az egész honlapkészítés men egy nagy tudomány. Szemfényvesztés az egész. Tudnám értékelni a tudományodat, ha az én swf kódomat átírnád (Ha kell megadom a weblapom belépési adatait, hogy ezzel ne kelljen kinlódanod.)
    Mélységes üdvözlettel: egy öreg paraszt

    Válasz
  • 2008. május 13. at 11:26:25
    Permalink

    Róbert: Saját szórakoztatásodra csinálj amit akarsz. Ez a bejegyzés arról szólt, hogy ne adjunk el sok pénzért szemetet.

    Válasz
  • 2008. augusztus 29. at 13:07:14
    Permalink

    Ma reggel 10-kor futottam bele a webmania -oldalba.

    Bravó!
    Nem, egyáltalán nem értek a webhez.
    Sikerélményeim között könyvelhetek el egy-egy tag-ekkel készített táblázatot, amit a böngésző tényleg parcellázott. Hurrá!- gondoltam, aztán jöttek az egyéb elfoglaltságok, és mindahányszor bele-bele szagoltam a HTML-be konstatáltam. Egész embert kíván, vagy iszonyatos erőn felüli teljesítményt.
    DTP- amiben dolgozom. Este érek haza, és a család a legfontosabb. Így sajnos nem marad esélyem egy picinyke sem tovább lépni, de még felidézni sem azokat, melyekbe valamennyire beleástam magam.
    Szóval reggel 10 óta (mivel nem nálunk van a labda, várok) nem váltottam át másik weblapra. Jó látni ezt az összefogottságot. És a tudás amit a honlap mögött lakozik tiszteletet érdemel. A tudás hiánya, és az amellett való érvelés…csak megerősíti ezt a remek, oldalt.

    Minden jót kívánok, és sok sok barátot, akik ugyancsak ilyen barátokat tudhatnak magukénak.

    Válasz
  • 2008. augusztus 29. at 15:04:57
    Permalink

    Spinne: Köszi. Mondjuk a magam részéről nem értek egyet azzal, hogy a DTP-ből a web az előrelépés lenne. De 3 órát eltölteni egy weblapon az szerintem rekord. Gyakran csinálsz ilyet? 😉

    Válasz
  • 2008. szeptember 01. at 16:58:02
    Permalink

    3 órát?, nem nem jellemző, hogy annyit veszteglek egy helyen. De az sem, hogy üres fejjel lapozgatok ebéd közben egy-egy műsorfüzetet. Látom, hogy valami zaklatottság, vagy nyugtalanság folytán sokan ezt teszik. Így a hálón hömpölygő híráradatra sincs szükségem.
    Egy reklámban – általában – nagyon sok a vágás, de sok kérészéletű “kasszasikergyanús” filmre is ez érvényes.
    El kell dönteni, mire pocsékolja az ember az idejét az alatt míg itt a földön van. Nem mindegy. Ezért választottam inkább az itt fellelhető cikkeket és véleményeket tanulmányozásra.

    Amiért a Web-et előrelépésnek tekintem a DTP-vel szemben,
    az az a kráter, amit egy becsapódó izé okozott a szakmán belül. Persze az izé mindenre kihatással van, a webesekre is.
    Egy ismerősöm aki egy nagyobb webes portálnál van azzal erősítette meg ezt a vélekedésemet, hogy Skandináviában x%-al volt magasabb a web alapú hirdetésekre a megrendelés, mint a nyomtatott médiára.
    Persze én nem láthatok egy web-szerkesztő szemével, és fordítva. Csupán mint lehetőség tekintünk által a folyó túloldalára, gondolván, hogy talán a web egy kiút lehet. Hisz igen csak lemaradnék a cementes zsákok pakolásában egy-két srác mögött, és a repce vetéshez is kell szakértelem, no meg terület is.
    Ajaj hová kalandoztam ezen a szaklapon.

    Válasz

Vélemény, hozzászólás?

Az e-mail címet nem tesszük közzé. A kötelező mezőket * karakterrel jelöltük