Případová studie · Převzetí a stabilizace
Záchrana zděděné PHP/jQuery aplikace bez dokumentace
Převzal jsem rozpracovanou interní aplikaci, kterou předchozí dodavatel opustil bez dokumentace a s pravidelně padajícím provozem. Během několika týdnů jsem ji stabilizoval, opravil kritické chyby a dopsal chybějící funkce, takže ji firma mohla nasadit do ostrého provozu.
Klienta neuvádím jmenovitě. Technický rozsah a popsané výsledky jsou reálné.
Výchozí situace
Firma měla rozdělanou objednávkovou a fakturační aplikaci po dodavateli, který spolupráci ukončil. Běžela na PHP 7.2 a jQuery, bez dokumentace, bez verzování (zdroják se posílal přes FTP) a bez testů. V provozu padala několikrát týdně, generování faktur občas skončilo bílou obrazovkou a SQL dotazy se skládaly přímo z $_POST. Firma řešila, jestli projekt dodělat, nebo zahodit.
Jak jsem to vyřešil
Přepis od nuly nedával smysl. Funkční jádro tam bylo, jen mimo kontrolu. Naskočil jsem do existujícího kódu: zprovoznil lokální prostředí, založil Git a zmapoval, co aplikace dělá a kde leží největší rizika. Pak jsem izoloval příčiny pádů, opravil je a teprve na stabilní základ navázal refaktorem a chybějícími funkcemi. Po menších krocích, s nasazováním do stagingu.
Co jsem udělal
- Zmapoval nezdokumentovaný kód a nahradil ZIP zálohy přes FTP verzováním v Gitu.
- Oddělil staging od produkce pro bezpečné a vratné nasazování.
- Opravil příčiny pádů při generování faktur (paměť, neošetřené výjimky PDF).
- Přepsal SQL dotazy na prepared statements přes PDO a zavřel SQL injection díry.
- Doplnil validaci vstupů, takže se objednávky přestaly ztrácet.
- Dopsal chybějící funkce: stavy objednávek, export do PDF a CSV, notifikace.
- Roztroušené jQuery tam, kde to dávalo smysl, převedl na Vue komponenty.
Výsledek
Místo zahození projektu a nového vývoje od nuly firma během několika týdnů dostala stabilní aplikaci, kterou mohla nasadit do ostrého provozu. Kód je ve verzování, nasazuje se přes staging, bezpečnostní díry jsou zavřené a chybějící funkce dopsané.
Chcete si o tématu přečíst víc? Navazuje na to článek Jak převzít zděděný kód.
Další projekty
Podobně postavené systémy
Android aplikace pro řidiče rozvozu
Trasa, skenování zásilek, foto a podpis na displeji. Funguje i bez signálu, na telefony se dostane přes MDM.
Docházka a sklad se skenery
Skladová aplikace na stávajících čtečkách: po naskenování štítku hned objednávka i lokace. K tomu docházka s podklady pro mzdy.
Řízení zakázek a výroby
Zakázky, výroba, klienti i fakturace na jednom místě. Místo několika Excelů a papírových průvodek.