Tárhelyváltás

Oké, akkor most megosztok veletek egy tanulságos történetet, ami részben az üzemeltetők, részben a fejlesztők részben pedig a megrendelők nem mindig megfelelő döntéseiknek köszönhetően plusz több órányi munkát okozott.

Adott a szitu: egy félig-meddig rosszul meghozott döntés miatt tárhelyet kell változtatni. Szerencsére nem a teljes tárhelyszolgáltatót, pusztán a tárhelyszolgáltatón belül egy fizikailag másik helyre, új felhasználó alá kell költözni. Ezzel nincs is gond, a szolgáltató párezer forintért elvégzi a műveletet.

Ideális világban (ahol már alapból a váltás sem lenne szükséges, hangsúlyozom, rossz döntések): üzemeltető beír három sort, esetleg négyet a terminálba, gyakorlatilag másol-beilleszt szinten odébb mozgatja a dolgokat, éjszaka átírjuk a doménekre és egyebekre vonatkozó beállításokat, reggelre már az új helyen van a szoftver, változatlanul, leállás nélkül.

Sajnos nem így történt.

Adott az első probléma: FUNCTION és VIEW használata a MySQL-ben. Sajnos, a MySQL-nél érezni a határokat, ha programozni akarunk. Nem egy Oracle a cucc, de még csak nem is egy PostgreSQL; egyszerűen vannak dolgok amik nem a legjobbak. De persze lehet, hogy ez nem is a MySQL baja, egyszerűen a PHPMyAdminé. FUNCTION-ök, de főként VIEW-ok exportálása lehetetlen. Ha valaki rájött hogyan kell, dobja az okosságot. Az alap szcenárió az, hogy a VIEW-ból egyszerűen egy üres tábla lesz. A leírótáblákból még ki lehet nagyjából olvasni a forráskódját, de ha ezt megpróbáljuk lefuttatni, tuti lesz benne valami elcsúszás, amire hibát dob.

Első jótanács: a VIEW-ok és egyebek forráskódja mindig legyen meg, hogy csak egy mozdulat legyen újra létrehozni.

Aztán folytatódik a történet, tesztelném a szoftvert, bejelentkezek, nem történik semmi. A bejelentkezes.phpfájl egyszerűen visszaugrik saját magára, és még a hibás adatok üzenet sem jelenik meg. Gyorsan belenézünk az éles fájlba, var_dump(); és társai. Persze az ember rögtön tippel pár dologra (én arra tippeltem, hogy nem írták át az adatbázis-elérést, ez lehet a gond, de ez annyira triviális, hogy nem is néztem): fájlok betöltése, .htaccess, jogosultságok stb. A fájl egészen egyszerűen eldobta a $_POST tartalmát. Mi lehet a baj? További nyomozás után látom, hogy a beallitasok.php a ludas. Létrehozok egy teszt.php fájlt, behívom benne a beállításokat, minden hibajelzés bekapcsolva. Megnyitom, hopp, átugrik a bejelentkezésre. Mi lehet a baj?

Kellett hozzá kis idő, de kibogoztam: van egy modul, ami ügyesen ha hiba van, és éles környezetben működünk, egy szomorú szmájlit mutat a júzernek, közben naplózza a létező összes környezeti változót, és ürít minden szuperglobált. A bejelentkezésre azért irányítódunk át, mert ha nem vagyunk bejelentkezve, semmilyen modul nem elérhető, egyszerűen zongorázunk a bejelentkezéshez. Ami azonban a hiba miatt nem működőképes.

A hibát mondanom sem kell, az okozta, hogy az adatbázis-elérés nem volt átírva, egyszerűen nem sikerült csatlakozni a szerverhez, és hopp, máris nem működik az oldal. Persze, arra kínosan ügyelek, hogy a júzer ne kapjon ötméteres hibaüzenetet, ez a része rendben volt.

Mely elemek voltak rosszak, hibásak, gyengék?

  • A megrendelő nem egyeztetett informatikussal, így szükséges volt a tárhelyváltoztatás;
  • elrontottam a tervezést, és egy soha nem futunk bele hibába futottam bele;
  • az üzemeltető nem ismerte a kódot, így nem tudta, hol és mit kell átírnia.

Hogyan lehet ezeken javítani?

  • Mint megrendelő, minden a szoftverrel akár minimálisan is kapcsolatos témát azonnal egyeztetünk a szoftverért felelős informatikussal. Mindent, mindig.
  • Ennél sokkal jobban átgondolni. Megtervezni, lerajzolni, lefuttatni gondolatban, tesztelni, akármi. Mindent, mindig.
  • Lehetőleg avassunk be mindenkit, aki fontos lehet a kód működésébe. Dokumentáljunk, még ha regényt is kell írni, hogyan működik a folyamat, mi jön miből. (Ha egy olyan fejlesztőnek kellett volna belenyúlnia, aki nem ismeri a működést, ötször ennyi időbe telt volna megtalálnia a problémát.) Mindent, mindig.

Egyszóval figyeljünk oda, dolgozzunk egymással és egymásnak, legyünk igényesek magunkkal szemben, és ami a legfontosabb: ha elrontunk valamit, akkor merjük leírni és azt mondani, hogy én voltam a hülye, legközelebb erre kell odafigyelnem. Senki sem tökéletes, mindenki vét hibákat. A jó munkaerőt nem a hibátlan munkavégzés, hanem az arra való törekvés, és a saját hibáinak felismerése, azokból való okulása jellemzi.

Zuhanyfüggöny.

« »

mefiblog logó

Írja és rendezi Mefi, avagy Nádai Gábor © 2005-2024

A blogot büszkén pörgeti a WordPress motorja, Anders Norén sablonjának átbuherált változatával.