Webfejlesztés. Ami mögötte van.
Szoftverarchitektként dolgozom, ezért a webfejlesztésben leginkább azok a részletek érdekelnek, amelyek elsőre jelentéktelennek tűnnek, mégis egy egész rendszer működésére hatással lehetnek. Egy HTTP-fejléc, egy böngészőben automatikusan működő mechanizmus, egy adatbázis-kapcsolat állapota vagy egy kényelmes Git-kapcsoló mögött gyakran több van annál, mint amit a neve vagy egy rövid dokumentációs példa elárul.
A JSBlog azért született, hogy ezekre a részletekre felhívja a figyelmet. Nem az a célom, hogy minden technológiai hírt feldolgozzak, és nem is az, hogy újabb általános bevezetőket írjak olyan témákról, amelyekről már száz hasonló cikk elérhető. Inkább azt keresem, mi az a konkrét működés, korlát vagy mellékhatás, amelyet egy gyakorló fejlesztőnek érdemes ismernie, mielőtt productionben találkozik vele.
A részlet önmagában nem elég
Egy technikai megoldás ritkán csak annyi, hogy „használd ezt az API-t” vagy „állítsd be ezt az opciót”. A fontos kérdés általában az, hogy milyen garanciát ad valójában, hol vannak a határai, és hogyan viselkedik a rendszer többi részével együtt. A force-with-lease például biztonságosabbnak hangzik a sima force pushnál, de egy háttérben lefutó fetch megváltoztathatja azt, amit a Git elfogadható távoli állapotnak tekint. A Response.clone() kényelmes másolatnak látszik, miközben egy lassú olvasó korlátlan memóriapuffert építhet. A PgBouncer tranzakciós poolingja pedig nemcsak több kapcsolatot szolgál ki, hanem azt is megváltoztatja, mit jelent egy adatbázis-session.
Ezek nem feltétlenül hibák. Többnyire tudatos tervezési döntések, amelyek csak akkor okoznak meglepetést, ha más mentális modellel használjuk őket. A cikkekben ezt a távolságot próbálom csökkenteni: a dokumentációban leírt működés és a fejlesztői gyakorlat között.
Miről írok?
A témák a web teljes technikai rétegét érintik. JavaScript és TypeScript, böngésző API-k, HTML és CSS, Node.js, backend, HTTP, biztonság, teljesítmény, adatbázisok, Git, Docker, CI/CD és webes infrastruktúra egyaránt előkerül. Nem azért, mert mindenből teljes kézikönyvet szeretnék készíteni, hanem mert egy valódi webes rendszerben ezek a területek nem külön dobozokban élnek. Egy frontenddöntésnek lehet cache-hatása, egy proxybeállítás okozhat alkalmazásszintű hibát, egy adatbázis-pooling stratégia pedig biztonsági problémává válhat.
A témaválasztásnál ezért nem a frissesség az első szempont. Egy régebb óta létező, de kevéssé értett mechanizmus sokszor hasznosabb, mint egy új verzió marginális újdonsága. Olyan cikkeket szeretnék írni, amelyek után az olvasó nemcsak egy új API-nevet visz magával, hanem egy pontosabb kérdést is, amelyet a következő tervezésnél, hibakeresésnél vagy code review-nál fel tud tenni.
Hol jön képbe az AI?
A cikkek elkészítéséhez AI-eszközöket is használok. Segítenek nagyobb forrásanyagot átnézni, kérdéseket és ellenpéldákat keresni, teszteseteket összeállítani, valamint egy témát több nézőpontból körbejárni. Ettől gyorsabban el lehet jutni ahhoz a ponthoz, ahol már nem az alapinformációk összegyűjtése, hanem a lényeg kiválasztása a feladat.
A lényeg kiválasztása viszont szakmai döntés. Az AI nem helyettesíti a forrásellenőrzést, a kód futtatását vagy annak mérlegelését, hogy egy technikai részletnek van-e valódi gyakorlati jelentősége. A verziószámokat, API-viselkedéseket és hivatkozásokat elsődleges források alapján ellenőrzöm, a bemutatott példákat pedig lehetőség szerint ténylegesen kipróbálom. Ha egy állítást nem lehet megbízhatóan alátámasztani, annak nincs helye a kész cikkben.
Az AI számomra itt nem téma és nem önigazolás, hanem egy új eszköz a műhelyben. Abban segít, hogy több érdekes részletet találjak meg és alaposabban vizsgáljak meg; az én felelősségem pedig az, hogy ezek közül mi kerül az olvasó elé, milyen következtetéssel és milyen bizonyítékokkal.
Kinek szól a JSBlog?
Elsősorban gyakorló webfejlesztőknek és műszaki döntéshozóknak. Azoknak, akik már tudnak kódot olvasni, ismerik az alapokat, és arra kíváncsiak, mi történik egy absztrakció alatt, egy kényelmes alapbeállítás mellett vagy két rendszer határán. Igyekszem közvetlenül, felesleges körök nélkül írni, de annyi háttérrel, hogy a bemutatott jelenség önmagában is érthető és kipróbálható legyen.
A JSBlog végső soron figyelemről szól: észrevenni azt az egy sort a dokumentációban, azt a ritka állapotot a hálózaton vagy azt a rejtett összefüggést az architektúrában, amely később sok időt és kellemetlen hibát takaríthat meg. Ha egy cikk után valaki pontosabban érti a saját rendszerét, vagy még időben feltesz egy fontos kérdést, akkor az oldal elérte a célját.
Ha pontatlanságot találsz, más tapasztalatod van, vagy van egy téma, amelynek szerinted érdemes lenne a felszíne alá nézni, örömmel veszem a jelzést.