Logotip HuTor Tech HuTor Tech
← Svi članci

· hutor.tech

Kako napraviti reviziju starijeg PHP koda

Kako napraviti reviziju starijeg PHP koda

Revizija odgovara na tri pitanja: što će se pokvariti, što će stajati novca i što se može popraviti jeftino. Sve ostalo je mišljenje. Reviziju držimo u otprilike tjedan dana i zaključujemo je dokumentom po kojem može postupati i netehnički vlasnik.

Počnite činjenicama koje prikuplja stroj. Verzije PHP-a i frameworka naspram datuma kraja podrške; broj datoteka i redaka; najveće klase; koliko je koda u vendoru, a koliko vašeg; postoje li testovi i prolaze li. `composer audit` i `npm audit` u nekoliko minuta daju poznate ranjivosti, a PHP bez podrške obično je najskuplji nalaz cijelog izvještaja.

Zatim tražite oblike koji najavljuju nevolju:
— SQL složen spajanjem stringova s podacima iz zahtjeva;
— lozinke raspršene md5 ili sha1 algoritmom, ili nikako;
— pristupni podaci commitani u repozitorij;
— učitavanje datoteka koje vjeruje MIME tipu s klijenta;
— jedna datoteka od nekoliko tisuća redaka o kojoj ovisi sve ostalo;
— mapa `vendor` mijenjana ručno — `composer install` bi te ispravke izbrisao.

Aplikaciju pokrenite, nemojte je samo čitati. Uključite log upita na stvarnoj stranici i prebrojite ih: N+1 je najčešća greška performansi u naslijeđenom kodu i najlakše se pokazuje. Pratite log sporih upita. Najtežu stranicu jednom provucite kroz profiler — obično se pokaže da je za čekanje kriv jedan stupac bez indeksa, a ne framework.

Pogon provjerite jednako ozbiljno kao kod: sigurnosne kopije (i je li ih itko ikad vratio), objavu (skripta ili čovjek s FTP-om), logove, nadzor, testno okruženje. Uredan kod koji se objavljuje ručno u ponoć opasniji je od neurednog s pipelineom.

Izvještaj pišite za onoga tko plaća. Nalaze grupirajte po riziku, uz svaki stavite grubu cijenu i odvojite „mora se popraviti sada“ od „vrijedi napraviti dok smo tu“. Dodajte dvije-tri brze pobjede koje ste našli — indeks, zaglavlje predmemorije, nadogradnju — da prvi račun već kupuje nešto vidljivo.

Revizija završava planom, a ne presudom. Pisanje ispočetka gotovo je uvijek pogrešan odgovor: stariji je kod ružan zato što nosi godine poslovnih pravila koja nitko nigdje drugdje nije zapisao.