[{"data":1,"prerenderedAt":301},["ShallowReactive",2],{"article-hu-sportklub-ujrairas-helyett-modernizacio":3,"articles-hu-all":245},{"id":4,"title":5,"body":6,"date":228,"description":229,"extension":230,"icon":231,"locale":232,"meta":233,"metaDescription":234,"navigation":235,"order":236,"path":237,"readingTime":228,"relatedServices":238,"seo":241,"slug":242,"stem":243,"updated":228,"__hash__":244},"articles\u002Farticles\u002Fsportklub-ujrairas-helyett-modernizacio.md","Újraírás helyett modernizáció - egy sportklub oldal átvétele",{"type":7,"value":8,"toc":218},"minimark",[9,26,31,34,37,41,44,48,51,76,79,82,85,97,101,104,107,111,131,134,138,141,144],[10,11,12,13,25],"p",{},"Egy működő rendszer teljes lecserélése ritkán a legjobb lépés.\nJoel Spolsky már 2000-ben, a Netscape példáján mutatta meg a világnak, mibe kerülhet a teljes újraírás: a két főverzió között közel 3 év telt el, és ezidő alatt a cég piaci részesedése elolvadt.",[14,15,16],"sup",{},[17,18,24],"a",{"href":19,"ariaDescribedBy":20,"dataFootnoteRef":22,"id":23},"#user-content-fn-1",[21],"footnote-label","","user-content-fnref-1","1"," Az ok azóta is ugyanaz: az új rendszernek praktikusan mindent tudnia kell, amit a régi tudott, a soha le nem írt kivételeket és üzleti szabályokat is, ugyanis a rendszer határa nem a kódbázis, hanem a viselkedése.",[27,28,30],"h2",{"id":29},"amikor-egy-rendszer-gazdát-cserél","Amikor egy rendszer gazdát cserél",[10,32,33],{},"Gyakori, hogy egy másik csapat által készített szoftvert öröklünk meg. Ilyenkor ritkán a kód minősége a fő kihívás. Sokkal inkább a hiányzó kontextus: miért születtek bizonyos döntések, mi kritikus, és hol vannak rejtett függőségek. Minden rendszer a saját kora terméke, a korábbi csapat az akkori követelmények, határidők és technológiai lehetőségek között dolgozott.",[10,35,36],{},"Amikor egy sportegyesület digitális platformjának karbantartására szerződtünk, egy nagyjából 100 000 soros, Symfony 3 alapú PHP-rendszert vettünk át. Egyszerre szolgálta ki a klub híreit, a mérkőzés- és tabellaadatokat, az élő közvetítéseket és a mobilalkalmazás API-jait. Egy ilyen rendszert nem lehet lekapcsolni hónapokra, és ráérősen újraépíteni: az átvétel alatt is működnie kell.",[27,38,40],{"id":39},"ahonnan-indultunk","Ahonnan indultunk",[10,42,43],{},"Az átvételkor több probléma egyszerre volt jelen. Az adatbázisszerver terhelése kritikus szinten volt, mérkőzésnapokon pedig a szokásosnál nagyságrendekkel nagyobb forgalmat kellett kiszolgálni. A keretrendszer verziója már nem kapott biztonsági frissítéseket, és a függőségek között is akadt elhagyott vagy ismert sérülékenységű csomag. Emellett több funkció és külső integráció hibásan működött, köztük a mobilalkalmazás API-kapcsolatai és a közösségimédia-csatlakozások.",[27,45,47],{"id":46},"először-megérteni-utána-változtatni","Először megérteni, utána változtatni",[10,49,50],{},"Mielőtt bármihez hozzákezdtünk volna, a következő kérdésekre keressük a választ:",[52,53,54,61,66,71],"ol",{},[55,56,57],"li",{},[58,59,60],"strong",{},"Mit csinál valójában a rendszer?",[55,62,63],{},[58,64,65],{},"Hol van a valódi kockázat?",[55,67,68],{},[58,69,70],{},"Mi működik jól, amit érdemes megtartani?",[55,72,73],{},[58,74,75],{},"Mit kell változtatni, és milyen ütemben?",[10,77,78],{},"A sportegyesületi projektben erre egy nagyjából három hónapos, intenzív stabilizációs és modernizációs szakasz épült. Az alkalmazás mellett az infrastruktúrát és a hálózati oldalt is átvizsgáltuk és optimalizáltuk.",[10,80,81],{},"A keretrendszer frissítése önmagában nem cél, de egy biztonsági javításokat már nem kapó alapra hosszú távon nem lehet építeni. A mechanikus átírás nagy részét eszköz végezte, a valódi munka ott kezdődött, ahol az eszköz már nem tudott dönteni: azokon a pontokon, ahol a régi és az új verzió eltérően viselkedik. Ugyanebben a szakaszban váltottuk ki a nem karbantartott csomagokat, és állítottuk helyre azokat a kapcsolatokat, amelyeken keresztül a platform a mobilalkalmazással és a közösségi médiával kommunikál.",[10,83,84],{},"Minden komponensnél a megfelelő stratégiát kellett választani: néhány komponens nehezen volt módosítható, de a rendszer sok pontja támaszkodott rá. Ezeket nem írtuk újra azonnal, hanem izoláltuk és stabilizáltuk őket. Ahol viszont a meglévő megoldás már nem tudta követni az igényeket és jól körülhatárolható volt, ott az újratervezés volt az észszerű döntés.",[10,86,87,88,96],{},"Minden változtatási egység ellenőrizhető volt, mert egy legacy rendszerben egy apró módosítás is több komponensre hathat. Ugyanez a logika működik nagyobb léptékben is: Martin Fowler „strangler fig” mintájában az új részek fokozatosan épülnek a régi köré, a régi elemek pedig egyenként vonulnak vissza.",[14,89,90],{},[17,91,95],{"href":92,"ariaDescribedBy":93,"dataFootnoteRef":22,"id":94},"#user-content-fn-2",[21],"user-content-fnref-2","2"," A modernizáció így nem egyetlen nagy átállási nap, hanem folyamat.",[27,98,100],{"id":99},"két-másodpercről-indultunk","Két másodpercről indultunk",[10,102,103],{},"A dinamikus oldalakon válaszidő az átlagos 2 másodpercről a negyedére csökkent, a szerverterhelés jelentősen mérséklődött, és a felesleges komplexitások eltávolításával a kód is átláthatóbbá vált. És folyamat alatt a platform végig működött.",[10,105,106],{},"A projekt jól mutatta, hogy a legtöbb problémát nem érdemes nyers erővel megoldani. Rövid távon a gyorsabb, olcsóbb kerülőút csábító, de ha a megfelelő megoldás költségét és hasznát sikerül világosan bemutatni a megrendelőnek, az hosszabb távon mindkét félnek jobban megéri.",[27,108,110],{"id":109},"mit-változtat-ezen-az-ai","Mit változtat ezen az AI?",[10,112,113,114,122,123],{},"Ebben a projektben a rendszer működését rögzítő utólagos specifikáció és a tesztek még jelentős részben kézzel készültek. Egy legacy rendszer átvételének régen épp a megértés volt a legdrágább része, és az AI itt hozott érdemi változást. A Thoughtworks Technology Radar 2025 novemberében „Adopt” besorolást adott a GenAI használatának legacy kódbázisok megértésére, vagyis bevett gyakorlatnak tekinti.",[14,115,116],{},[17,117,121],{"href":118,"ariaDescribedBy":119,"dataFootnoteRef":22,"id":120},"#user-content-fn-3",[21],"user-content-fnref-3","3"," A Morgan Stanley saját eszköze nagyjából 9 millió sor örökölt kódot alakított olvasható specifikációvá, becslésük szerint mintegy 280 000 fejlesztői órát megtakarítva.",[14,124,125],{},[17,126,130],{"href":127,"ariaDescribedBy":128,"dataFootnoteRef":22,"id":129},"#user-content-fn-4",[21],"user-content-fnref-4","4",[10,132,133],{},"Ma egy hasonló átvételnél már AI alapú megoldásokat használjuk a kódbázis feltérképezésére, a dokumentáció elkészítésére, és arra, hogy még a módosítások előtt teszteket írjunk, amelyek rögzítik a rendszer jelenlegi működését. A feltárt összefüggéseket fejlesztő ellenőrzi, és arról, hogy mit tartunk meg és mit cserélünk, továbbra is ember dönt. Mivel az AI az újraírást is olcsóbbá teszi, a jó döntés nem veszít a jelentőségéből. Épp ellenkezőleg: fontosabb, mint valaha.",[27,135,137],{"id":136},"nem-kell-az-elejéről-újrakezdeni","Nem kell az elejéről újrakezdeni",[10,139,140],{},"Egy régi kódbázis, egy gazdátlan rendszer nem feltétlenül menthetetlen. Ami jól működik, azt megtartjuk, amit modernizálni kell, azt pedig fokozatosan korszerűsítjük, és ha egy rész valóban kiváltásra szorul, annak megtervezzük a biztonságos módját. Ha nálatok is van egy rendszer, ami a működés fontos része, de már kevesen értik, hogyan, kezdjük azzal, hogy megértjük, mit csinál valójában. Utána döntsük el közösen, mi marad, mi változik, és milyen ütemben.",[142,143],"hr",{},[145,146,149,154],"section",{"className":147,"dataFootnotes":22},[148],"footnotes",[27,150,153],{"className":151,"id":21},[152],"sr-only","Footnotes",[52,155,156,177,194,209],{},[55,157,159,160,169,170],{"id":158},"user-content-fn-1","Joel Spolsky: ",[17,161,165],{"href":162,"rel":163},"https:\u002F\u002Fwww.joelonsoftware.com\u002F2000\u002F04\u002F06\u002Fthings-you-should-never-do-part-i\u002F",[164],"nofollow",[166,167,168],"em",{},"Things You Should Never Do, Part I",", Joel on Software, 2000. április. ",[17,171,176],{"href":172,"ariaLabel":173,"className":174,"dataFootnoteBackref":22},"#user-content-fnref-1","Back to reference 1",[175],"data-footnote-backref","↩",[55,178,180,181,188,189],{"id":179},"user-content-fn-2","Martin Fowler: ",[17,182,185],{"href":183,"rel":184},"https:\u002F\u002Fmartinfowler.com\u002Fbliki\u002FStranglerFigApplication.html",[164],[166,186,187],{},"Strangler Fig Application",", martinfowler.com. ",[17,190,176],{"href":191,"ariaLabel":192,"className":193,"dataFootnoteBackref":22},"#user-content-fnref-2","Back to reference 2",[175],[55,195,197,198,203,204],{"id":196},"user-content-fn-3","Thoughtworks Technology Radar, 33. kötet, 2025. november – ",[17,199,202],{"href":200,"rel":201},"https:\u002F\u002Fwww.thoughtworks.com\u002Fradar\u002Ftechniques\u002Fusing-genai-to-understand-legacy-codebases",[164],"„Using GenAI to understand legacy codebases”",". ",[17,205,176],{"href":206,"ariaLabel":207,"className":208,"dataFootnoteBackref":22},"#user-content-fnref-3","Back to reference 3",[175],[55,210,212,213],{"id":211},"user-content-fn-4","Morgan Stanley DevGen.AI, a vállalat 2025-ös nyilatkozatai alapján. ",[17,214,176],{"href":215,"ariaLabel":216,"className":217,"dataFootnoteBackref":22},"#user-content-fnref-4","Back to reference 4",[175],{"title":22,"searchDepth":219,"depth":219,"links":220},2,[221,222,223,224,225,226,227],{"id":29,"depth":219,"text":30},{"id":39,"depth":219,"text":40},{"id":46,"depth":219,"text":47},{"id":99,"depth":219,"text":100},{"id":109,"depth":219,"text":110},{"id":136,"depth":219,"text":137},{"id":21,"depth":219,"text":153},null,"Egy 100 000 soros, működő rendszert vettünk át, és újraírás helyett fokozatosan korszerűsítettük.","md","article-sportklub","hu",{},"Átvettünk egy 100 000 soros Symfony 3 rendszert, újraírás helyett lépésenként korszerűsítettük: a válaszidő negyedére csökkent, a platform végig működött.",true,"8","\u002Farticles\u002Fsportklub-ujrairas-helyett-modernizacio",[239,240],"regi-rendszerek-modernizacioja","uzemeltetes-es-support",{"title":5,"description":229},"sportklub-ujrairas-helyett-modernizacio","articles\u002Fsportklub-ujrairas-helyett-modernizacio","3ZNcONFWHl1zI9QQdUwsFxw0wUbCNykb1R5YoTNUwsI",[246,255,262,270,278,285,292,299],{"title":247,"slug":248,"description":249,"readingTime":228,"relatedServices":250,"order":252,"date":253,"icon":254},"Szemlélet - A kód kész. Most kezdődik a munka.","a-kod-kesz-most-kezdodik-a-munka","Az AI-jal épített alkalmazások kockázata jellemzően nem a kódban van, hanem körülötte. Mit érdemes végiggondolni élesítés előtt?",[251,239,240],"fejlesztoi-tanacsadas","0","2026-10-29","article-kod-kesz",{"title":256,"slug":257,"description":258,"readingTime":228,"relatedServices":259,"order":24,"date":228,"icon":261},"Szemlélet - A szabályok változnak, a szoftvernek nem kell","a-szabalyok-valtoznak-a-szoftver-nem","Amikor a szabályok gyorsabban változnak, mint a szoftver",[260],"egyedi-szoftverfejlesztes","article-szabalyok",{"title":263,"slug":264,"description":265,"readingTime":228,"relatedServices":266,"order":121,"date":228,"icon":269},"Szemlélet - Egy adatforrás, több felület","egy-adatforras-tobb-felulet","Nem újabb felületre van szükség, hanem arra, hogy az adatnak egyetlen gazdája legyen.",[260,267,268],"mobilalkalmazas-fejlesztes","weboldal-fejlesztes","article-adatforras",{"title":271,"slug":272,"description":273,"readingTime":228,"relatedServices":274,"order":130,"date":228,"icon":277},"Célunk a fenntartható WordPress","fenntarthato-wordpress","Költséghatékony az a megoldás, amelyért nem kell kétszer fizetni; fenntartható az, amelyet évek múlva is biztonságosan lehet frissíteni.",[268,240,275,276],"support-es-it-tamogatas","kampanyok-es-nyeremenyjatekok","article-wordpress",{"title":279,"slug":280,"description":281,"readingTime":228,"relatedServices":282,"order":283,"date":228,"icon":284},"Évtizedes együttműködés - weboldaltól közösségi platformig","kozossegi-program-weboldal-platform","Amikor egy weboldalból online platform lesz",[260,239,240],"5","article-kozosseg",{"title":286,"slug":287,"description":288,"readingTime":228,"relatedServices":289,"order":290,"date":228,"icon":291},"Tapasztalat - Központi rendszerek, helyi igények","kozponti-rendszerek-helyi-igenyek","A jó rendszer nem a központot választja a helyiek helyett, hanem mindkettőt kiszolgálja.",[260,240,275,267,276,268],"6","article-kozpont",{"title":293,"slug":294,"description":295,"readingTime":228,"relatedServices":296,"order":297,"date":228,"icon":298},"Szemlélet - Vibe codingtól éles termékig","vibe-coding-tol-eles-termekig","A prototípusból nem kell kidobni semmit: rendbe tehető, ami már megvan, és ráépíthető, ami még hiányzik.",[239,260],"7","article-vibe",{"title":5,"slug":242,"description":229,"readingTime":228,"relatedServices":300,"order":236,"date":228,"icon":231},[239,240],1793728956178]