Bezchybné programování rubrika: Programování: Jiné

9 Taco
položil/-a 4.5.2019

Zdravím.

Mám výbušné téma srovnatelné s Hirošimou :-)

Představte si relativně velkou aplikaci. Testy žádné. Kód bohatě využívá všech možných oblíbených postupů, které lze považovat za nerozumné (globální proměnné, výrazná dynamika, modelová data ve view, view v kontroleru, načítání z databáze v helperech, ...). Prostě legaci kód.

Ale já bych přesto rád psal kód tak, abych nic nerozbil. Jaké postupy byste mi doporučili vyzkoušet?

Edit 1:
Upravuji po malých částech. Nedělám velké akce. Přesto to rozbiju. Zkuste zohlednit, že nejsem začátečník.

Edit 2:
Zdá se, že mi není dobře rozumět. Neřeším konkrétní projekt. Řeším svůj skill.
Citace z komentáře: "Řeší to tak, že vytrhnou z aplikace nějakou ucelenou část a tu udělají z čisté vody s novým rozhraním." - ok. A teď to tedy udělají, nasadí a ono se jim to rozbije. A přijde šéf a začne hudrovat, že se na to nevykašlali. A proč to vůbec dělali.

Komentáře

  • Tomáš Votruba : Super téma :) 1. V jakém je to jazyce a verze? 2. Co z automatických migrace jsi už zkousil? 3. Jak je to velké (LOC v hlavním jazyce bez clutter kódu jako testy, fixtures, migrace...)? 4.5.2019
  • Tomáš Votruba : Reakce na Edit 2: Jestli se chceš zaměřovat na komplexní a staré aplikace, nauč se programovat v AST - https://github.com/rectorphp/rector. Budou tě na rukou nosit :) 5.5.2019
  • Taco : Díky! Mrknu na to. 5.5.2019
odkaz
8 Tomáš Tintěra
odpověděl/-a 5.5.2019
 
upravil/-a 14.5.2019

OK. Jestli jde o 20 let starou aplikaci:

  1. Pokročilý senior není jen zapisovatel programu. Pro seniora je základním umění komunikace.
    Je třeba vysvětlit vedení/zákazníkovi co a proč je špatně a co můžeme záskat. To není lehká věc. Je to pokaždé jiné. Jde o cíle, znalosti, inteligenci a odvahu tvých vedoucích nebo zákazníků. Nezapomněl jsem napsat, e důležité jsou cíle? Můžeš mít za nadřízeného osvíceného člověka s nadhledem nebo byrokrata, co se chová jen tak, aby prostě došel ještě pro jednu další výplatu. V tom druhém případě vede častěji k cíli jednat s někým jiným.

  2. Je tedy třeba sledovat a popsat kvalitu současného řešení. Proč se věci rozbíjejí? V tomto osobně získávám informace po drobcích a různě z blogů a nejrůznějších knih. Pokud byste měli něco uceleného, dejte prosím vědět, tohle by mne zajímalo (možná je to na samostatnou otázku.) Ona kvalita je pokaždé něco jiného nejde to vzít obecně. Jiné kvalitativní požadavky budou na půjčovnu koloběžek a jiné na řízení letadla.

  3. Zavedení

    • CI (Noční build, build po ocmmiitu)
    • Coding standards.
    • Komponentizace (rozdělení molocha na aplikace a komponenty)
    • Zavedené bugtrackeru
  4. Pokrývání texty a refectoring. Podle mých zkušeností je potřeba postupovat na obou těchto liniích současně. A konkrétní techniky popisuje hlavně pro Java a C++ to nejlepší v oboru: Working Effectively with Legacy Code by Michael C. Feathers.. Nicméně řada těch technik je stejně dobře použitelná i v dalších jazycích.

Ono to chce se pokusit celkově resuscitovat dotyčnou firmu. Dát jí dlohodobou a střednědobou vizi. A někdy to už nemusí být možné bez výměny většiny lidí. Těch aktivit je více, výše popisuji pohled zaměřený na kodeřinu.

Pro zobrazení všech 17 odpovědí se prosím přihlaste:

Rychlé přihlášení přes sociální sítě:

Nebo se přihlaste jménem a heslem:

Zadejte prosím svou e-mailovou adresu.
Zadejte své heslo.