Mit kell megépíteni, ha nincs WordPress?
Ezen az oldalon nincs adatbázis, nincs adminfelület és nincs bővítmény. A munka ettől nem tűnt el: átkerült futásidőből építésidőbe.
Kezdem azzal, ami nem érv: WordPress-oldalakat építek és tartok karban, és a legtöbb megbízásnál az a helyes válasz. Ez a döntés ehhez az egy oldalhoz szól — ahhoz, aminek egyetlen szerkesztője van, és az a szerkesztő kódszerkesztőben dolgozik.
Ami a rendszerrel együtt eltűnik
Nincs adatbázis, tehát nincs mit menteni és nincs mit visszaállítani. Nincs admin, tehát nincs belépő, amit törni lehetne. Nincs bővítmény, tehát nincs frissítési ág, ami magától elmozdulhatna.
Ezekkel együtt eltűnik a szerkesztőfelület is. Aki rajtam kívül írni szeretne erre a lapra, annak a forrást kell megnyitnia. Ez a legdrágább tétel a listán, és a legtöbb oldalon ez zárja is le a kérdést.
Mi kerül a helyére
Amit egy tartalomkezelő ingyen ad, azt itt meg kell írni. Kereső, megosztási kép, webhelytérkép, ellenőrzés, élesítés — mindegyik saját eszköz a repóban.
- ami az oldalra kikerül6 575 sorstíluslap és szkript
- ami a repóban marad7 137 sorkereső-index, megosztási kép, webhelytérkép, ellenőrzés, élesítés
az eszközökből egyetlen sor sem fut a kiszolgálón
Az arány az érdekes: az eszközök nagyjából annyi kód, mint maga az oldal — és egyetlen soruk sem kerül ki a kiszolgálóra. Ezt a tételt egy tartalomkezelő elrejti: ugyanez a munka ott is megvan, csak futásidőben végzi el, minden egyes kérésnél.
A kereső a legjobb példa
Egy tartalomkezelőben a keresés adott: van hozzá űrlap, és a kiszolgáló lekérdezi az adatbázist. Enélkül két dolgot kell megépíteni. Az egyik egy index-építő, ami a lapok szövegéből szótöveket állít elő; a másik egy kliens, ami ezt az indexet a keresés első megnyitásakor tölti le.
Az eredmény tud valamit, amit az adatbázisos keresés nem: a válaszhoz nem kell kiszolgáló. Cserébe a szótövezést magyarra és angolra külön kell megoldani, és az indexnek együtt kell mozognia a tartalommal — ha elfelejtem újraépíteni, a kereső a tegnapi oldalt találja meg.
Amit a látogató ebből lát
Semmit. Ez a helyes válasz, és egyben a mérce is. Ami mérhető: a kezdőlap negyvenháromezer bájt körül van, a válasz tizedmásodpercben, és a megjelenítéshez a böngésző egyetlen idegen kiszolgálót sem keres meg.
Mikor rossz választás
Ha a tartalmat nem az írja, aki a kódot. Egy klinikánál, ahol az árlista hetente változik és többen szerkesztik, ez az egész felállás használhatatlan — ott a szerkesztőfelület maga a termék, és egy tartalomkezelő pontosan azt adja.
A döntés tehát egyetlen kérdésen múlik: ki szerkeszti a tartalmat, és milyen gyakran? Erről szól az amivel dolgozom lap, és az az írás is, ami a build-lépés hiányát veszi végig.
Kérdések a témáról
Miért nem WordPress-en van a saját oldalad, ha WordPress-oldalakat építesz?
Mert a döntés egyetlen kérdésen múlik: ki szerkeszti a tartalmat, és milyen gyakran. Ennek a lapnak egy szerkesztője van, és az a szerkesztő kódszerkesztőben dolgozik — itt a szerkesztőfelület nem hiányzik. Egy megbízásnál, ahol a szöveget az ügyfél írja, ugyanez a kérdés a másik válaszhoz vezet.
Mit veszít egy oldal, ha nincs mögötte tartalomkezelő?
Elsősorban a szerkesztőfelületet, és ez a legdrágább tétel: aki írni akar rá, annak a forrást kell megnyitnia. Emellett a bővítmény-ökoszisztémát is: ami egy kattintással bekapcsolható lenne, azt itt meg kell írni. Cserébe nincs adatbázis, nincs belépő és nincs frissítési ág, ami magától elmozdulna.
Mennyi munka egy tartalomkezelő funkcióit kézzel megépíteni?
Ezen az oldalon mérhető: a kereső, a megosztási képek, a webhelytérkép, az ellenőrzés és az élesítés eszközei együtt nagyjából annyi kód, mint amennyi az oldalra kikerül. A különbség az, hogy ebből egyetlen sor sem fut a kiszolgálón — az egész építésidőben dől el.
Biztonságosabb-e egy adatbázis nélküli oldal?
Kevesebb a támadható felület: nincs belépő, nincs adatbázis-lekérdezés, nincs bővítmény, aminek a hibáját meg kellene várni. Ettől viszont nem lesz sérthetetlen — a tárhely, a DNS és a levelezés ugyanúgy ott van, és a legtöbb valós baj ma ezeken keresztül érkezik.