• úvod
  • témata
  • události
  • tržiště
  • diskuze
  • nástěnka
  • přihlásit
    registrace
    ztracené heslo?
    KOJAProgramovani 40+
    Diskuze o obzive programovanim pro starsi a pokrocile.
    rozbalit záhlaví
    CERMI_FOX
    CERMI_FOX --- ---
    KOJA: postupný přepisování/refactoring má spoustu výhod a důvodů, který je třeba dát do té rovnice vyplatí/nevyplatí, jen tak z hlavy o půlnoci z mých zkušenosti:
    * končící support a dostupnost security oprav
    * zhoršující se maintainability - původní design modulu nebo systému nestačí novým požadavkům - změny trvají čím dál déle, častěji se chybuje, bohužel když je tohle zřetelně vidět, tak už bývá pozdě, resp cena refactoringu je už hodně vysoká a spirála zvyšující se náročnosti odkládáním je na světě
    * lidi odchází a znalosti s nima, v hlubinách battle tested kódu jsou místa, o kterých nikdo neví, proč tam jsou, ale všichni se je bojí odstranit. Testy nevyřeší vše; je to nějaký starý request od klienta? Performance? Race condition?
    * nábor - na prasecký kód je čím dál těžší nabrat nový dobrý lidi - starý lidi přirozeně odchází a nechci dělat s novýma špatnýma lidma
    * nový framework může přinést performance benefity (třeba přechod z .netfw na .net6 - možná je to na jiných platformách jinak; u C se tohle asi neřeší :) )


    Tvoje body jsou validní, nezpochybňuju, jen mám zkušenost, že management, co rozhoduje o budgetu, nebývají vývojáři, ale manageři z povolání, netechnický lidi, o to horší je jim vysvětlit + a - refactoring vs nicnedělání a všechno přepočítávají na prachy (na druhou stranu by někdo mohl podotknout, že je možné s nima lépe manipulovat).
    Prostě je třeba to vyvážit
    KOJA
    KOJA --- ---
    KOLCON: Duvodu proc se udrzba zanedbava si umim predstavit hodne.

    - Management (predchozi generace vyvojaru) nevnima problem jako urgentni.
    - Projekt stejne vyhledove speje ke konci a prepsani by neprineslo dostatek uzitku.
    - Vedeni pamatuje programovani pred 20 lety a tudiz je z jejich pohledu projekt v poradku.
    - Snaha vyzdimat s danou lidskou kapacitou z projektu co se da s vizi, ze v urcitou dobu bude stejne prekonan (prepise to konkurence nebo open-source).
    - “Ted na to neni cas.”
    - Battle-tested - pres veskere neduhy je prasecky kod odladeny na milionech uzivatelu a jakykoliv prepis smrdi pruserama. Treba se projekt odladil na nadsenych early adopterech nez se stal kritickym.
    - …


    V realu to asi bude kus od kusu a jeste casto asi nejaka kombinace. Problem vidim spis v opacne otazce - jake jsou dobre a presvedcive duvody do prepisovani/refactoringu kodu?
    XBAHNO
    XBAHNO --- ---
    KOLCON: Spagetovy zadani vede k spagetovymu kodu. + to co rika TOOMIX:, na takovou jednoduchou zmenu ti nikdo 40h neda, kdyz se to da polepit za dve hodky a to ze to rozprasi celou myslenku architektury, to vidis ty a nikdo jiny.
    TOOMIX
    TOOMIX --- ---
    KOLCON: neochota zákazníků to platit
    KOLCON
    KOLCON --- ---
    No a čím myslíte že to je, že se aplikace neustále průběžně neprepisuji? (Když je potřeba přidat novou featuru). Špatný návrh? Lenost? Doufání, že to bude časem problém někoho jiného?
    KOJA
    KOJA --- ---
    INDIAN: Procpak uz se o nic podobneho pokouset nebudes? Moc politiky to prosadit? Nebo stresu to prepsat?
    AXTHEB
    AXTHEB --- ---
    Ja tu mam jeden soft ktery jsem napsal pred peti, sesti lety (jedina vec, co mam po ruce, psal jsem to na zakazku, sam a dlouho jsem to nevidel). Padaji z toho pdfka, ktere pripadne podepisuje pan prezident pri jmenovani akademiku.
    Ted jsem ze zvedavosti koukl do zdrojaku, a HOWKING naprosto sedi ;:)
    DAVIDOWITCH
    DAVIDOWITCH --- ---
    Ja zrovna brecim nad prepisovanim neceho co ma dejmetomu 20kloc C++.
    A jen zjistit co vsechno to vlastne dela a kam to je vsude prorostly resim uz dva tejdny.
    (Prepsat se to fakt musi.. a mam s timhle druhem designu 10+ let zkusenosti, jen teda.. to co sem delal ja treba melo jasne definovany interfacy classy, a ne 6 souboru o 3-4kloc kazdy)

    A jdu se pochlubit, protoze soucasti toho bylo nekolik OMG na coding guidelines. Tak sem navrhl nejaky zmeny a dostal tohle:
    So, to be honest, I clicked on that link with dread, thinking, “Oh no, not coding conventions wars!" :) But this was entirely reasonable, and for the items on which I have an opinion, I agree with what you're proposing.

    Coz mi prijde ze v oboru lepsi pochvala snad bejt nemuze :-D
    INDIAN
    INDIAN --- ---
    Za tech skoro 20 let programovani se me podarilo pouze jednou prosadit prepsani komplet jedny vyznamny casti jednoho reseni a to jenom diky tomu, ze na stavajici verzi uz neslo napatlat to co novi zakaznici pozadovali a vyzadovana optimalizace s ohledem na vykon nebyla mozna, coz sem pomerne jednoduse demonstroval live benchmarkama behem jedny porady. Konkretne se jednalo o komplexni scheduler v kombinaci s remote deploymentem (neco podobnyho dela dneska ansible s towerem) a trvalo mi to asi pul roku + samozrejme pote naky postfixy a dodelavani prubeznejch ficur...
    Bude to uz cca 10 let, dneska mi ten kod s prihmourenejma ocima jeste porad prijde v cajku, ale verim tomu ze pokud k nemu prijde nekdo novej a zkusenej, bude mit tu tendenci to prepsat taky.

    ano, zahralo to u srdicka a potesilo programatorsky ego, porad si muzu pohonit triko s tim ze nekomu ukazu ze tamhle a tamhle porad bezi muj kod, ze sme tim tenkrate vicemene prodlouzili zivot celymu produktu a i firme vseobecne...
    kazdopadne znovu se o nic podobnyho pokouset nebudu :)
    SPIKE411
    SPIKE411 --- ---
    Kdo platí údržbu těch 30+ let starých obskurních aplikací/systémů, do kterých se za neskutečný peníze za použití 30+ let starých obskurních knihoven a jazyků s velkou nechutí dolepuje nová funkcionalita?

    IBM scrambles to find or train more COBOL programmers to help states | Ars Technica
    https://arstechnica.com/tech-policy/2020/04/ibm-scrambles-to-find-or-train-more-cobol-programmers-to-help-states/
    GREATDRAKE
    GREATDRAKE --- ---
    RATTKIN: A kdo vám ty člověkoroky na přepsání platí?
    JINX
    JINX --- ---
    To mi úplně připomíná jednoho mého nadřízeného: "Kód se má psát správně už od začátku" (ano fixoval jsem po něm taky nějaké bugy). Code Review s nim byly dost drsné, ještě že tam už nepracuji.
    CERMI_FOX
    CERMI_FOX --- ---
    VOY: taky mi to přijde neerealistický, myšlenka, že zastavíme na půl roku celý vývoj a předěláme všechno, co se v tom 10let starým kódu neudělalo dobře nebo není podle současných trendů, je z jinýho světa. Přeci jen 10let konstantního vývoje a přidávání funkcionalit nejde prostě přepsat.
    Jasně, když není takový časový tlak, tak se části, na kterých se pracuje, průběžně zlepšují, ale kompletní přepis je prostě scifi z časového hlediska
    KEJML
    KEJML --- ---
    RATTKIN: O jak velkých aplikaci ích tady mluvíš? Kolik člověkohodin se stráví na jednom takovým přepisu?
    INDIAN
    INDIAN --- ---
    RATTKIN: dle tvyho tvrzeni mam teda neskutecnej talent pracovat vyhradne pro spolecnosti ktery stavej jejich fungovani na legacy kodu :) .. a to sem jich vystridal docela dost
    vazne myslis ze je na to cas a vseobecne prostredky aby se tohle delalo?
    RATTKIN
    RATTKIN --- ---
    to duševní zdraví je důležité, já programuju zatím 4. rokem a zatím mě to nepustilo, uvidím za 10 let.

    Na druhou stranu, první verze gmailu byly kompatibilní s ie6 a byly napsané v kdo ví čem. Za tu domu měli hodně rewritů, ne jen změnu ikonky.
    Moderní aplikace se mění velice rychle a devops je metodologie, jak se z toho nezbláznit.
    VOY
    VOY --- ---
    Hlavne na svete je tolik kodu, ze nikdo nikdy nebude mit dost casu udelat vsechen co by chtel krasny a cisty. A nebo se najde nekdo kdo bude mit jinou definici krasy a cistoty, napr. nekdo kdo si neulitava na funkcionalnim programovani atp. Proto se priklanim k tomu, ze zraly programator si snaze udrzi dusevni zdravi pokud slevi z toho, ze jeho zivotni misi je psat jedine cisty kod :-).
    VOY
    VOY --- ---
    RATTKIN: Tak gmail byla jedna z prvnich opravdu modernich webovych aplikaci a je tu s nami uz 18 let. Je to samozrejme relativni, chces-li byt opravdu striktni tak osobni pocitace tu s nami zas tak dlouhou nejsou.
    SATAI
    SATAI --- ---
    RATTKIN: za dekady tu budou dekady stare webove aplikace...
    RATTKIN
    RATTKIN --- ---
    já si zase neumím představit webovou aplikaci, která žije dekády bez masivních přepisů.. nemluvě o tom, že před dekádami nic takového jako webové aplikace nebyly..
    VOY
    VOY --- ---
    RATTKIN: Nevim kde pracujes, ale ja si fakt nedovedu predstavit vlastne cokoli kazdy rok prepisovat. Leda ze by to byla nejaka mikroskopicka interni aplikace a pozadavky se kazdy rok drasticky menily. V realu se setkas spis s tim, ze software zije dekady a postupne se na nej nabaluji tuny bordelu. Nas job spociva v tom tuhle komplexitu nejak manazovat a zajistit, ze se vyvoj kompletne nezastavi. Jedna z moznych zbrani jsou jiste i strategicky rewrity nejakych casti, kde uz to dal opravdu nejde, ale v praxi to vidim spis zridka a nezenou se do toho ani programatori, natoz management.
    Kliknutím sem můžete změnit nastavení reklam