• úvod
  • témata
  • události
  • tržiště
  • diskuze
  • nástěnka
  • přihlásit
    registrace
    ztracené heslo?
    KOJAProgramovani 40+
    INDIAN
    INDIAN --- ---
    KOJA: k tomuhle pocinu me dohnaly jiz zmineny faktory + vyuzil sem tak trochu toho, ze sem byl jedinej core programator kterej si moh tak trochu dupnout... Spis sem tohle rozhdnuti uvadel proto, ze se do takovyhle souhry asi uz nedostanu... Dalsi vec je to, ze puvodni kod byl jinak docela pruhlednej, plno veci bylo tak trochu copy/paste, takze sem uz dopredu vedel ze me necekaj naky extra pasti.
    v nasledujicim zamestnani uz sem podobnej zamer viditelne brzdil jako clen tymu (prestoze sem patril spis k "diverzantsky" casti), protoze sem si byl vedomej komplexity celyho projektu, bylo to vseobecne velky sousto a nebyl si jistej zda bysme byli schopni se dohodnout na finalni forme.
    A kdyz sem pak podobny veci resil ze zodpovednejsiho postu kde sem musel resit vicemene i zdroje, bylo mi jasny ze je to dost nakladna zalezitost. Ono kdyz se pro neco takovyho tym rozhodne, je treba si bejt jistej ze nekdo stezejni v pulce neodejde nebo ze ho neprelozej nekam jinam, stejne tak si clovek musi bejt jistej s jeho kompetencema - to ze dotycnej dovede najit chybu a commitnout fix kterej zachrani v danym momentu situaci neni zaruka toho, ze je dobrej i na to aby napsal komplet nakej novej modul kvalitne a i z hlediska udrzitelnosti.
    Momentalne treba resim komplet refaktoring jednoho z projektu taky (puvodni kod napsal kolega toho casu cerstvej absolvent, cca pred 3 rokama), nicmene pokud se k tomu opravdu rozhodnem, bude to jenom pro novou verzi nasazenou do uplne rozdilnyho prostredi, kde by portovani stavajiciho reseni bylo pracnejsi nez to napsat znovu ... a ano, porad sem v ty euforii ze se to musi komplet prepsat protoze z hlediska maintenance to bude cimdal vetsi horror (vlasy si rvu denne kdyz se v tom hrabu), ale zustavam porad pragmatictejsi, protoze pro klienta to bude mit porad mizivou pridanou hodnotu v dohlednym horizontu (tj. par let).
    RATTKIN
    RATTKIN --- ---
    když je to interní produkt, tak se čas na refaktory hledá lépe, než když je to jednorázová zakázka..
    DAVIDOWITCH
    DAVIDOWITCH --- ---
    ABAP: My nebyli velký korporát, ale naši zákazníci byli čistě interní. Takže šlo argumentovat že to buď bude náš čas na přepsání, nebo pak artist time před deadline když něco nepůjde doprogramovat dost rychle a budou to muset řešit manuálně. Ale to jsme měli velmi osvícené a technické vedení až po majitele včetně.
    ABAP
    ABAP --- ---
    CERMI_FOX: Je to jen akademická debata. Zákazník to prostě nechce platit znova a vývojáří zpravidla žádají mzdu.
    Budget na přepsání zdrojáku se občas najde ve velkém korporátu, kde si tím pár pozic obhají, nebo pojistí existenci.
    RATTKIN
    RATTKIN --- ---
    frontendy se takhle asi dělají všude? my to teda takhle nějak děláme :-)
    Interview with Senior JS Developer in 2022
    https://www.youtube.com/watch?v=Uo3cL4nrGOk
    KOJA
    KOJA --- ---
    CERMI_FOX: Ja jsem to mel asi napsat jinak. Ja coby vyvojar mam celkem jiste nejaky bias. Manazeri, nekdy i ty technicky zdatni jako treba ex-vyvojari, mivaji zase jiny bias. Problem vidim v tom, jake presvedcive argumenty pouzivat. Idealne nejake jednoduche a snadno dolozitelne fakty. Protoze si umim predstavit, ze kdybych byl ve vedouci pozici a prisel za mnou vyvojar s tim, ze je nezbytne nutno ted pulroku blahodarne pusobit na kod “prozoze proto”, tak to taky neodkyvu.

    Ja s tebou taky souhlasim ale bohuzel mi prijde, ze je tezke o tomhle presvedcit nekoho kdo se denodenne nerype v konkretnim kodu.
    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?
    Kliknutím sem můžete změnit nastavení reklam