← Reference

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.

PHP jQuery MySQL PDO Vue Git
B2B službyObor
Plzeňský kraj / vzdáleněKde systém běží
2025Rok nasazení
Převzetí a stabilizaceTyp řešení

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.

Řeším něco podobného Webové aplikace