Fórum Root.cz

Hlavní témata => Vývoj => Téma založeno: listoper 10. 09. 2020, 13:03:45

Název: Nový projekt vs. cizí kód
Přispěvatel: listoper 10. 09. 2020, 13:03:45
Mam zkusenost, ze spousta vyvojaru se brani praci na softwaru ktery je uz nejakou dobu na svete a preferuji praci na projektech kde se zacina od nuly.

Zajimalo by me proc to tak je.
A taky u tech co to tak nemaji, co se jim libi na udrzbe a rozvoji starsiho softwaru.

Ja mam zkusenosti z obou stran a nemuzu rict, ze bych spatroval u GF vyvoje nejake vyhody.

Co ostatni?
Název: Re:Nový projekt vs. cizí kód
Přispěvatel: RDa 10. 09. 2020, 14:12:31
To je asi jednoduchy - protoze do existujiciho projektu je potreba pridat malou featuru, coz znamena male penize. Neni zde prostor (casovy, financni) na to, aby to bylo udelano spravne - tj. se to cele predelalo, takze se kupi zaplata na zaplatu.. az je z toho neudrzovatelny bastl.

Pri vyvoji z nuly je zadavateli jasne, ze to bude stat hodne, takze jsou vsechny strany v pohode.

A kdo jiz neco delal.. vi ze az bude muset delat neco noveho, tak to udela spis jinak - protoze ma ty zkusenosti. A toto lze aplikovat jen u toho noveho projektu. Nelze ocekavat od programatoru, ze daj neco napoprve dobre - takze bud se jim poskytne prostor to udelat znova.. nebo se holt vsichni dohodnou, ze to bude holt meh.. a nikoho to trapit "nebude".
Název: Re:Nový projekt vs. cizí kód
Přispěvatel: listoper 10. 09. 2020, 15:11:42
To je asi jednoduchy - protoze do existujiciho projektu je potreba pridat malou featuru, coz znamena male penize. Neni zde prostor (casovy, financni) na to, aby to bylo udelano spravne - tj. se to cele predelalo, takze se kupi zaplata na zaplatu.. az je z toho neudrzovatelny bastl.

Ale tak to vubec nemusi byt. Zazil sem projekty ktery startovali v devadesatkach a porad se do nich investuji velky penize.

Pri vyvoji z nuly je zadavateli jasne, ze to bude stat hodne, takze jsou vsechny strany v pohode.

...
Nelze ocekavat od programatoru, ze daj neco napoprve dobre - takze bud se jim poskytne prostor to udelat znova.. nebo se holt vsichni dohodnou, ze to bude holt meh.. a nikoho to trapit "nebude".

Software se snad jmenuje "soft" proto ze ho jde snadno(levne) zmenit... na rozdil od hardware ktery se musi vetsinou vymenit.... Uz sme se dostali tak daleko, ze i software se musi zahodit a prepsat?
Název: Re:Nový projekt vs. cizí kód
Přispěvatel: by_cx 10. 09. 2020, 15:42:02
Je projekt a projekt. Pokud nejsou nějaké tlaky na tým, že se nesmí refactorovat ať už databáze nebo kód samotný, případně když ten kód není dvě dekády staré abstraktní umění, tak nemám problém se zapojit do vývoje. Ale projekty, firmy i lidé jsou různí, takže tak :-)
Název: Re:Nový projekt vs. cizí kód
Přispěvatel: tomas88 10. 09. 2020, 15:42:32
Mě to příjde jasné. Člověka obecně baví něco budovat. A programování je dosti (někdy bohužel) kreativní činnost. No a ta kreativita v případě přebírání projektu jaksi odpadá.
Název: Re:Nový projekt vs. cizí kód
Přispěvatel: redustin 10. 09. 2020, 15:51:12
IMO především záleží na majiteli kódu, zda si ohlídá, aby byl kód dlouhodobě udržovatelný, nebo na to rezignuje. Netypované jazyky, zbytečné míchání různých jazyků v projektu, s tím související pravidelné naskakování na aktuální hype, ale i házení klacků pod nohy kontrolám kompilátoru a IDE (často zbytečné používání reflexe, míchání kódu a nikdy nevyužitých XML konfigurací s názvy programových prvků), nepřesné názvy, duplikace kódu místo vytažení do generického předka, hashmapy místo konkrétních datových struktur, atd atd. Klasika.
Název: Re:Nový projekt vs. cizí kód
Přispěvatel: Mlocik97 10. 09. 2020, 15:52:13
80% projektov, ktoré sú hodne staré, a boli xyz krát plátané majú taký kód, s ktorým pracovať vyzerá asi tak, že zmažeš medzeru v komentári, a namiesto programu pre otváranie archívov máš program, ktorý ti zahrá na husličky "error". Hlavne keď sa tam vystrieda stovka programátorov, ktorý spolu ani nerobili, a tak jeden nevie akú štruktúru udržoval pôvodný tvorca kódu.

U nových projektov môžeš rovno ako vývojár navrhnúť týmu štuktúru, princípi atp, ktorej budú všetci tý čo boli pri vytváraní projektu rozumieť.

Najhoršie je to u projektov, kde úplne chýba systémová príručka a dokumentácia kódu.
Název: Re:Nový projekt vs. cizí kód
Přispěvatel: listoper 10. 09. 2020, 15:57:54
80% projektov, ktoré sú hodne staré, a boli xyz krát plátané majú taký kód, s ktorým pracovať vyzerá asi tak, že zmažeš medzeru v komentári, a namiesto programu pre otváranie archívov máš program, ktorý ti zahrá na husličky "error". Hlavne keď sa tam vystrieda stovka programátorov, ktorý spolu ani nerobili, a tak jeden nevie akú štruktúru udržoval pôvodný tvorca kódu.

U nových projektov môžeš rovno ako vývojár navrhnúť týmu štuktúru, princípi atp, ktorej budú všetci tý čo boli pri vytváraní projektu rozumieť.

Najhoršie je to u projektov, kde úplne chýba systémová príručka a dokumentácia kódu.

Takze zivotnost projektu je stejna jako teamu lidi co u toho byl kdyz to zacalo?
Pokud se obmeni tym tak uz nema cenu to dal udrzovat a musi se to prepsat?
Název: Re:Nový projekt vs. cizí kód
Přispěvatel: Mlocik97 10. 09. 2020, 16:01:24
80% projektov, ktoré sú hodne staré, a boli xyz krát plátané majú taký kód, s ktorým pracovať vyzerá asi tak, že zmažeš medzeru v komentári, a namiesto programu pre otváranie archívov máš program, ktorý ti zahrá na husličky "error". Hlavne keď sa tam vystrieda stovka programátorov, ktorý spolu ani nerobili, a tak jeden nevie akú štruktúru udržoval pôvodný tvorca kódu.

U nových projektov môžeš rovno ako vývojár navrhnúť týmu štuktúru, princípi atp, ktorej budú všetci tý čo boli pri vytváraní projektu rozumieť.

Najhoršie je to u projektov, kde úplne chýba systémová príručka a dokumentácia kódu.

Takze zivotnost projektu je stejna jako team lidi co u toho byl kdyz to zacalo?
Pokud se obmeni tym tak uz nema cenu to dal udrzovat a musi se to prepsat?

Ne úplne, záleží od viacerých faktorov, a to predovšetkým aká je štruktúra, a či je ľahko pochopitelná pre nových programátorov v týme, či je zdrojový kód zdokumentovaný, alebo aj od zloženia samotného týmu. Vo väčšine prípadov ak je štruktúra rozumne navrhnutá a ľahko pochopitelná a navyše dobre zdokumentovaná, tak ďalší programátor vie na to naviazať tak, že tú štruktúru zachová... ak je situácia opačná tak ani tak to hneď neznamená že sa nedá s tým pracovať, ale časom ako sa začne štruktúra čím viac miešať a komplikovať, tým je to horšie.

Je bežné že nový programátor v týme dostáva čas na preštudovanie štruktúry a dokumentácie, a z počiatku pracuje na len konkrétnych metódach/funkciách, a má predpripravené tie najkomplikovanejšie štrukturálne časti od senior programátora, ktorý v týme je už nejaký čas.
Název: Re:Nový projekt vs. cizí kód
Přispěvatel: Mlocik97 10. 09. 2020, 16:08:03
A tiež na to vplýva aj refaktorizácia, a koľko času sa tomu venuje.
Název: Re:Nový projekt vs. cizí kód
Přispěvatel: listoper 10. 09. 2020, 17:11:47
80% projektov, ktoré sú hodne staré, a boli xyz krát plátané majú taký kód, s ktorým pracovať vyzerá asi tak, že zmažeš medzeru v komentári, a namiesto programu pre otváranie archívov máš program, ktorý ti zahrá na husličky "error". Hlavne keď sa tam vystrieda stovka programátorov, ktorý spolu ani nerobili, a tak jeden nevie akú štruktúru udržoval pôvodný tvorca kódu.

U nových projektov môžeš rovno ako vývojár navrhnúť týmu štuktúru, princípi atp, ktorej budú všetci tý čo boli pri vytváraní projektu rozumieť.

Najhoršie je to u projektov, kde úplne chýba systémová príručka a dokumentácia kódu.

Takze zivotnost projektu je stejna jako team lidi co u toho byl kdyz to zacalo?
Pokud se obmeni tym tak uz nema cenu to dal udrzovat a musi se to prepsat?

Ne úplne, záleží od viacerých faktorov, a to predovšetkým aká je štruktúra, a či je ľahko pochopitelná pre nových programátorov v týme, či je zdrojový kód zdokumentovaný, alebo aj od zloženia samotného týmu. Vo väčšine prípadov ak je štruktúra rozumne navrhnutá a ľahko pochopitelná a navyše dobre zdokumentovaná, tak ďalší programátor vie na to naviazať tak, že tú štruktúru zachová... ak je situácia opačná tak ani tak to hneď neznamená že sa nedá s tým pracovať, ale časom ako sa začne štruktúra čím viac miešať a komplikovať, tým je to horšie.

Je bežné že nový programátor v týme dostáva čas na preštudovanie štruktúry a dokumentácie, a z počiatku pracuje na len konkrétnych metódach/funkciách, a má predpripravené tie najkomplikovanejšie štrukturálne časti od senior programátora, ktorý v týme je už nejaký čas.

Z toho co rikas mi vyplyva, ze pokud mam dobre programatory (kteri udrzuji strukturu, dokumentuji....) muzu si dovolit delat i na starsim kodu.
Pokud mam spatne programatory tak je z toho vzdycky hnuj a musi se to prepsat... ale nutne z toho bude zase hnuj... dokud nenajdu dobre programatory.

OK. takze odpoved na moji otazku z toho by byla...
"Na dlouhobezicich projektech se stihne vystridat vic lidi, a proto logicky i vic spatnych programatoru, a proto je to logicky vetsi hnuj a proto to nikdo nechce delat."

Chapu te spravne?
Název: Re:Nový projekt vs. cizí kód
Přispěvatel: Jiří Havel 10. 09. 2020, 17:21:17
Software se snad jmenuje "soft" proto ze ho jde snadno(levne) zmenit... na rozdil od hardware ktery se musi vetsinou vymenit.... Uz sme se dostali tak daleko, ze i software se musi zahodit a prepsat?
Odkud se vzalo slovo software je zajímavá otázka.

Ale že by se dal software nějak snadno a levně měnit je dost úsměvné. Vždyť spousta věcí změnit vůbec nejde, protože by to bylo tak drahé, že to nikdo nezaplatí. Právě z tohohle důvodu je spousta legacy systémů hromada rovnáků na vohejbáky na předchozí rovnáky. Nasbírat nesplatitelný technologický dluh je strašně jednoduché. Vlastně stačí předpokládat, že změny jsou jednoduché a tlačit na to aby byly i levné.

Změny jsou brutálně drahé. A čím dál je ta změna od původního návrhu, tím je dražší. Agilní metodika dělá změny trochu zvládnutelnější, ale i tak to není žádná hitparáda.
Název: Re:Nový projekt vs. cizí kód
Přispěvatel: Jiří Havel 10. 09. 2020, 17:29:54
OK. takze odpoved na moji otazku z toho by byla...
"Na dlouhobezicich projektech se stihne vystridat vic lidi, a proto logicky i vic spatnych programatoru, a proto je to logicky vetsi hnuj a proto to nikdo nechce delat."

Chapu te spravne?
Ono to není primárně o kvalitě jednotlivých programátorů, ale procesu jako celku. Tým mizerných programátorů dobrý proces nespáchá. Ale dobří senioři zvládnou využít i mizerného programátora (samozřejmě v mezích).

Jak dobrý byl původní návrh? Každou chybějící informaci si musel tým vycucat z prstu.
Jak moc se nové požadavky odchýlily od původního návrhu? Vždycky je to o kompromisu a nedá se připravit na všecny možné změny.
Jak moc se tlačilo na čas a kašlalo na technologický dluh?
Jak dobře je zvládnuté testování? Bez pořádných testů se do kódu nedá v podstatě hrábnout.
Název: Re:Nový projekt vs. cizí kód
Přispěvatel: listoper 10. 09. 2020, 17:44:21
Software se snad jmenuje "soft" proto ze ho jde snadno(levne) zmenit... na rozdil od hardware ktery se musi vetsinou vymenit.... Uz sme se dostali tak daleko, ze i software se musi zahodit a prepsat?
Ale že by se dal software nějak snadno a levně měnit je dost úsměvné.

levne mysleno pri srovnani s HW.
Aby uz nemuseli vznikat jednoucelove pocitace ale jedna masina zvladala vic veci podle toho co ji podstrcim za "kod/binarku/EPROM"

Sice uz sem dobu kdy se rozvazeli po telefonich ustrednach sady ROMek na vymenu nezazil ale cetl jsem o tom ;-)

Kdyby nebyl software a kazda zmena by znamenala vyhodit a nakoupit nove pocitace "na kterych to bezi" vyslo by to zatracene draz... (krome pripadu kdy bezi jednotky instanci)

Název: Re:Nový projekt vs. cizí kód
Přispěvatel: listoper 10. 09. 2020, 17:55:44
OK. takze odpoved na moji otazku z toho by byla...
"Na dlouhobezicich projektech se stihne vystridat vic lidi, a proto logicky i vic spatnych programatoru, a proto je to logicky vetsi hnuj a proto to nikdo nechce delat."

Chapu te spravne?
Ono to není primárně o kvalitě jednotlivých programátorů, ale procesu jako celku. Tým mizerných programátorů dobrý proces nespáchá. Ale dobří senioři zvládnou využít i mizerného programátora (samozřejmě v mezích).

Jak dobrý byl původní návrh? Každou chybějící informaci si musel tým vycucat z prstu.
Jak moc se nové požadavky odchýlily od původního návrhu? Vždycky je to o kompromisu a nedá se připravit na všecny možné změny.
Jak moc se tlačilo na čas a kašlalo na technologický dluh?
Jak dobře je zvládnuté testování? Bez pořádných testů se do kódu nedá v podstatě hrábnout.

Dobre... zpet k zakladni otazce a motivaci k ni.
Myslim, ze dlouhodobe neni udrzitelne kazde 2 roky vsechno prepisovat.

Myslim, ze to, ze se s tim vlastne pocita, protoze na starsich projektech nechce nikdo delat a zakaznici uz si zvykli platit kazde 2 roky za prepis.... vede k tomu, ze uz ani neni treba se snazit aby to k necemu bylo. A proto neni... A proto se to musi prepsat... a tak porad dokolecka.

Chapu, ze se to muze libit manazerum v bodyshop firmach... protoze maji porad vejvar na dalsich a dalsich prepisech kde prodavaji juniory za seniorni rate....

Ale uz nechapu, ze se na tom divadle chce podilet nekdo z vyvojaru... (proto ma puvodni ta otazka)
A hlavne nechapu, ze si to nechaji libit ti co za to plati...





Název: Re:Nový projekt vs. cizí kód
Přispěvatel: Kit 10. 09. 2020, 19:08:49
Mně samotnému vyhovuje hrabat se v cizím kódu, často ho refaktoruji už při prvním čtení nebo alespoň píši k němu dokumentaci. Nebylo tomu tak vždy, jako juniorovi mi psaní dokumentace připadalo jako šílený opruz a údržba cizí aplikace jako horror.
Název: Re:Nový projekt vs. cizí kód
Přispěvatel: anonacct 10. 09. 2020, 19:18:59
Záleží co je to za projekt - Rozsáhlé věci v C++ / Java asi nikdo přepisovat nechce, protože i kdyby se začalo od nuly tak to bude trvat 10-20 let než bude výsledek, a zákazník chce většinou ty features co tam už jsou, a ne nějaký "lépe napsaný" program co nic neumí. Věci ve frontendu jsou víc likely na přepis, protože za pár let už bude v módě jiný toolkit (nebo bude vyšší a nekompatibilní verze toho stávajícího) a ten původní třeba už nebude mít ani podporu.

Začít dělat něco znovu v podstatě znamená, že ten původní kód má nějaký fundamentální design flaw přímo v jádru, a nedá se to už rozšířit. Popřípadě když už vývoj toho legacy softu je dražší než kdyby se to začalo dělat znovu. Údržba a vývoj v takovém projektu potom stojí víc peněz, protože to nikdo nechce dělat - tzv "pay for pain" - ti co si chcou vydělat toho můžou využít :)

Existují i příklady z open-source světa, např. vývoj LLVM trval hodně dlouho než dosáhl kvalitou na GCC, popř. přepis některých věcí ve Firefoxu do Rustu, atd... Když se nad tím zamyslím tak open-source je vlastně perfektní příklad, proč vždycky začínat na nové louce není ideální - spousta nedokončených projektů, které možná jsou v jádru lepší než ty ostatní, ale nemají features -> nemají základnu uživatelů -> nemají funding -> vývoj jde pomalu nebo vůbec. Na druhou stranu občas se objeví něco, co svoji kvalitou překoná něco jiného a ten projekt jde pak rychle dopředu - např. vývoj VSCode jde neuvěřitelným tempem.
Název: Re:Nový projekt vs. cizí kód
Přispěvatel: hahel16625 10. 09. 2020, 19:20:52

Myslim, ze dlouhodobe neni udrzitelne kazde 2 roky vsechno prepisovat.


Moc tomu nerozumím. Na jednu stranu se ptáš tak, že je jasné, že o vývoji nic nevíš a chceš se něco dozvědět. Na druhou stranu, tady ale plácneš tu větu, kterou tady cituji. Co to má znamenat?

Samozřejmě, že je neudržitelné každé 2 roky všechno přepisovat. Taky se to tak nikdy nedělá. Přepisování se typicky dělá proto, že původní kód je historický a je napsaný v jazyce, ve kterém se dneska už blbě shání programátoři.

Případně se se celý kód zahodí a napíše znova (někdy v jiném jazyce a někdy i ve stejném), pokud je starý kód ve špatném stavu. Většinou proto, že je v něm příliš mnoho úprav, které jdou proti logice původní architektury (buď to architekt blbě navrhl, nebo to zákazník blbě zadal a nějaký junior do toho patlal úpravy, jak uměl a projekťák mu to schvaloval, protože to přece funguje).

Do tohoto stavu kód ale obvykle dospěje po mnoha letech.

Pokud by to někde dělali už po dvou letech, tak je to asi tak na úrovni toho, že máš po dvou letech běžného provozu neopravitelně opotřebované osobní auto. Není to normální a bude se hodně řešit, kdo za to může.

Velmi speciální situace ve vývoji SW je ta, že je nutno velmi rychle udělat nějaký prototyp. A ten prototyp se ukáže, že po nějakých úpravách může fungovat v nějakém předprodukčním provozu, který přejde v normální produkční provoz (s definovanými fallback procedurami, když něco nefunguje správně).
A během toho provozu prototypu se postupně připravuje řádný produkt, který bude robustní a bude mít funkce, které v tom prototypu nejsou.
Takhle nějak se psaly ERP systémy v 90. letech v jedné ERP velmoci, které ale celkově moc zkušeností s vývojem většího SW neměla.


[/quote]
Název: Re:Nový projekt vs. cizí kód
Přispěvatel: alex6bbc 10. 09. 2020, 20:04:45
panove neznate mapu :-)

https://xkcd.com/2347/
Název: Re:Nový projekt vs. cizí kód
Přispěvatel: listoper 10. 09. 2020, 20:06:02

Myslim, ze dlouhodobe neni udrzitelne kazde 2 roky vsechno prepisovat.


Moc tomu nerozumím. Na jednu stranu se ptáš tak, že je jasné, že o vývoji nic nevíš a chceš se něco dozvědět. Na druhou stranu, tady ale plácneš tu větu, kterou tady cituji. Co to má znamenat?

Samozřejmě, že je neudržitelné každé 2 roky všechno přepisovat. Taky se to tak nikdy nedělá. Přepisování se typicky dělá proto, že původní kód je historický a je napsaný v jazyce, ve kterém se dneska už blbě shání programátoři.

Případně se se celý kód zahodí a napíše znova (někdy v jiném jazyce a někdy i ve stejném), pokud je starý kód ve špatném stavu. Většinou proto, že je v něm příliš mnoho úprav, které jdou proti logice původní architektury (buď to architekt blbě navrhl, nebo to zákazník blbě zadal a nějaký junior do toho patlal úpravy, jak uměl a projekťák mu to schvaloval, protože to přece funguje).

Do tohoto stavu kód ale obvykle dospěje po mnoha letech.

Pokud by to někde dělali už po dvou letech, tak je to asi tak na úrovni toho, že máš po dvou letech běžného provozu neopravitelně opotřebované osobní auto. Není to normální a bude se hodně řešit, kdo za to může.

Velmi speciální situace ve vývoji SW je ta, že je nutno velmi rychle udělat nějaký prototyp. A ten prototyp se ukáže, že po nějakých úpravách může fungovat v nějakém předprodukčním provozu, který přejde v normální produkční provoz (s definovanými fallback procedurami, když něco nefunguje správně).
A během toho provozu prototypu se postupně připravuje řádný produkt, který bude robustní a bude mít funkce, které v tom prototypu nejsou.
Takhle nějak se psaly ERP systémy v 90. letech v jedné ERP velmoci, které ale celkově moc zkušeností s vývojem většího SW neměla.



Uz 15 let se delam vyvoj software. Na ruznych pozicich, v ruznych jazycich, domenach a pro klienty v ruznych castech sveta.
Ptam se protoze pozoruju trend.
Ty dva roky sem si z prstu nevycucal. Je to opakovana zkusenost. Takze muzu rict, ze dela.
Posledni zkusenost je asi mesic stara.
"Cerstve" vyvinuta vec. Posledni work package je v produkci asi pul roku. Vyvoj zacal v prosinci 2018. Business si chrochta, ze to funguje. Opsici jsou taky relativne spokojeny (i kdyz to jsou vecny brucouni...)
A ted sem se dozvedel, ze se mam podilet navrhu neceho co to ma nahradit. A kdyz sem se zeptal architekta u zakaznika jaka je motivace, abych vlastne vedel jaky problem mam resit... tak nevedel...
Rikal, ze ho to vlastne nezajima, protoze na to mame budget tak muzem vyzkouset novou platformu.

Kdybych byl businesak/uzivatel/akcionar .... tak ho asi vystrelim ze cvicek...
Ale jelikoz jsem potencialni dodavatel tak se jdu vybrecet na root a hledat logiku...
Název: Re:Nový projekt vs. cizí kód
Přispěvatel: alex6bbc 10. 09. 2020, 20:08:26
ja bych byl pro refaktoring odspoda, zacit modifikovat/zlepsovat funkce a metody dole.
pozdeji pak refaktorovat na urovni trid a modulu a jejich vazeb.

treba kdyz je treba prejit na novejsi (nekompatibilni) verzi frameworku a jazyka.
Název: Re:Nový projekt vs. cizí kód
Přispěvatel: luvar 10. 09. 2020, 20:09:29
Ja  som zazil projekty, ktore mali pravidlo "program moze byt len tak velky, aby ho jeden koder dokazal za mesiac napisat nanovo". Toto fungovalo fajn. V pripade, ze refaktoring by znamenal vela prace, tak sa zvolila taktika "prepiseme to podla uz 10 krat evolvovanych poziadaviek a tentokrat budeme mysliet na viac moznych oziadaviek do buducna". Chytili sa vsetky testy, nasledne kusy kodu (java; balicky) pre parsovanie konfigu, pre matematiku okolo biznisu a pripadne nejake casti pre pracu s databazou, ci parsovanie struktur z externych zdrojov a nasledne jeden clovek za cca mesiac prepisal projekt... Malo to inu architekturu (nie vzdy), bolo to citatelnejsie a hlavne, napisane jednym clovekom. Nasledne dany clovek bol najblizsie obdobie "spravcom" projektu a mal vpodstate zakazane robit bezne ulohy na tom projekte. Mal robit iba review a merge a pripadne nejake diskusie k architekture... Imho to bol fajn pristup. Zakaznik spokojny, lebo nove feature sa dali pridavat vramci tyzdnov (maximalne mesiac a tyzden); aplikacie bezali svizne (ak by nie, tak sa spravil prepis vpriebehu mesiacu, ale zabralo to len jedneho cloveka z cca 5 clenneho tymu) a podobne. Nutno dodat, ze bola snaha o DevOps, agilny vyvoj v style scrum, mikroservisy a podobne.
Název: Re:Nový projekt vs. cizí kód
Přispěvatel: alex6bbc 10. 09. 2020, 20:16:03
Ja  som zazil projekty, ktore mali pravidlo "program moze byt len tak velky, aby ho jeden koder dokazal za mesiac napisat nanovo". Toto fungovalo fajn.

tohle bylo kdysi i heslo unixu, nebo linuxu. dneska se delaji silene komplexni silenosti.
skoda, ze to v 90 letech nevyslo s plan9 a hurdem a dneska se vsecko resi pomoci virtualnich stroju vmware, virtualbox apod.

puvodne se myslelo, ze operacni systemy se samy postaraji o spousteni vice ruznych oddelenych systemu
na zaklade namespace, oddelenych filesystemu, oddelenych uzivatelu.
bylo by to mene tezkotonazni nez dneska, kdy se ve virtualnim prostredi spousteji cele operacni systemy.

Název: Re:Nový projekt vs. cizí kód
Přispěvatel: listoper 10. 09. 2020, 20:19:11
Ja  som zazil projekty, ktore mali pravidlo "program moze byt len tak velky, aby ho jeden koder dokazal za mesiac napisat nanovo". Toto fungovalo fajn. V pripade, ze refaktoring by znamenal vela prace, tak sa zvolila taktika "prepiseme to podla uz 10 krat evolvovanych poziadaviek a tentokrat budeme mysliet na viac moznych oziadaviek do buducna". Chytili sa vsetky testy, nasledne kusy kodu (java; balicky) pre parsovanie konfigu, pre matematiku okolo biznisu a pripadne nejake casti pre pracu s databazou, ci parsovanie struktur z externych zdrojov a nasledne jeden clovek za cca mesiac prepisal projekt... Malo to inu architekturu (nie vzdy), bolo to citatelnejsie a hlavne, napisane jednym clovekom. Nasledne dany clovek bol najblizsie obdobie "spravcom" projektu a mal vpodstate zakazane robit bezne ulohy na tom projekte. Mal robit iba review a merge a pripadne nejake diskusie k architekture... Imho to bol fajn pristup. Zakaznik spokojny, lebo nove feature sa dali pridavat vramci tyzdnov (maximalne mesiac a tyzden); aplikacie bezali svizne (ak by nie, tak sa spravil prepis vpriebehu mesiacu, ale zabralo to len jedneho cloveka z cca 5 clenneho tymu) a podobne. Nutno dodat, ze bola snaha o DevOps, agilny vyvoj v style scrum, mikroservisy a podobne.

Tohle skoro chapu.
Pokud mam business logiku kterou akorat nekam naroubuju tak fajn.
Jenze to co vidam je spis ten pripad "zahodit a zacit znova". Vcetne sberu pozadavku od businessu....
Název: Re:Nový projekt vs. cizí kód
Přispěvatel: luvar 10. 09. 2020, 20:22:10
Inak pri dostatocne rozhladenych programatoroch sa bezne odpoveda na vetu "Pouzijeme XYZ, to je vyborne riesenie na ABC!", ze problem ABC vyriesil uz programator z IBM v roku 1982 a XYZ ma prvy komit z minuleho roku... Pri hlbsom zamysleni sa daju najst analogie i medzi necakanymi technologiami, ktore na prvy pohlad riesia rozne problemy, ale v konecnom dosledku su zamenitelne, pokial sa ich vlastnosti vyuziju naplno.
Název: Re:Nový projekt vs. cizí kód
Přispěvatel: anonacct 10. 09. 2020, 20:22:25
Dělat něco měsíc - to je prostě malý projekt a nedá se to srovnat s něčím, na čem dělalo 50 lidí 20 let.
Název: Re:Nový projekt vs. cizí kód
Přispěvatel: Zdeno Sekerák 10. 09. 2020, 20:30:36
Ja taky rad delam neco od piky. Jak tady psal tomas88 kazdeho bavi tvorit. A tvorit neco noveho jeste vic.
Ale ve svem profesnim zivote jsme mel to "štestí" ze jsem dedil kod po nekom cizim. Ted jsem v stavu ze vlastne nic jineho nedelam jen udrzuji cizi kod. Pomalu se stavam odbornikem na prevzeti kodu. Mam jiz par kroku ktere vzdycky udelam. Ucesem kod, napisu testy, zmazu co tam nepatri, odstranim blbosti, udelam update balicku. Hodim to do gitu!!! Skratka z toho polodrahokamu vybrousim drahokam. Vlastne mne to zacina celkem bavit. Potom to predam nekteremu juniorovi i s instrukcema. Ma to jeste jednu vyhodu. Najednou jsme 2 co tomu projektu rozumime.
Název: Re:Nový projekt vs. cizí kód
Přispěvatel: alex6bbc 10. 09. 2020, 20:37:27
Ja taky rad delam neco od piky. Jak tady psal tomas88 kazdeho bavi tvorit. A tvorit neco noveho jeste vic.
Ale ve svem profesnim zivote jsme mel to "štestí" ze jsem dedil kod po nekom cizim. Ted jsem v stavu ze vlastne nic jineho nedelam jen udrzuji cizi kod. Pomalu se stavam odbornikem na prevzeti kodu. Mam jiz par kroku ktere vzdycky udelam. Ucesem kod, napisu testy, zmazu co tam nepatri, odstranim blbosti, udelam update balicku. Hodim to do gitu!!! Skratka z toho polodrahokamu vybrousim drahokam. Vlastne mne to zacina celkem bavit. Potom to predam nekteremu juniorovi i s instrukcema. Ma to jeste jednu vyhodu. Najednou jsme 2 co tomu projektu rozumime.


to mi pripomina situaci, kdy je treba nejaky projekt/knihovnu zkompilovat v novem systemu.
zdrojaky existuji, build system existuje, ale je treba to cele poladit, at to jde sestavit v systemu XYZ,
to je maso.
Název: Re:Nový projekt vs. cizí kód
Přispěvatel: tomas88 10. 09. 2020, 22:55:07
Uz 15 let se delam vyvoj software. Na ruznych pozicich, v ruznych jazycich, domenach a pro klienty v ruznych castech sveta.
Ptam se protoze pozoruju trend.
Ty dva roky sem si z prstu nevycucal. Je to opakovana zkusenost. Takze muzu rict, ze dela.
Posledni zkusenost je asi mesic stara.
"Cerstve" vyvinuta vec. Posledni work package je v produkci asi pul roku. Vyvoj zacal v prosinci 2018. Business si chrochta, ze to funguje. Opsici jsou taky relativne spokojeny (i kdyz to jsou vecny brucouni...)
A ted sem se dozvedel, ze se mam podilet navrhu neceho co to ma nahradit. A kdyz sem se zeptal architekta u zakaznika jaka je motivace, abych vlastne vedel jaky problem mam resit... tak nevedel...
Rikal, ze ho to vlastne nezajima, protoze na to mame budget tak muzem vyzkouset novou platformu.

Kdybych byl businesak/uzivatel/akcionar .... tak ho asi vystrelim ze cvicek...
Ale jelikoz jsem potencialni dodavatel tak se jdu vybrecet na root a hledat logiku...

A co proc ti to vadi? Evidentne se pohybujes v nejake (pochybne - jak jinak ze) korporatni sfere, kde prava ruka nevi co dela leva. Proste klasika. Tak ale bud rad ze mas praci ne. Nebo proc se pohybujes mezi temito lidma? Evidentne to jejich businessu dava smysl, kdyz na to uvolnili prachy. Chces logiku. Tak ja ti nejakou dam. Treba se jim tam zmenil nejaky vysoky manager a jednim z jeho KPI jsou uspesne realizovane nove IT projekty. Takhle to bejva casto.
Název: Re:Nový projekt vs. cizí kód
Přispěvatel: BoneFlute 10. 09. 2020, 23:42:43
Já rád dělám na legaci kódu pro klienta. Protože obvykle ten klient už ví, že je v háji, a já umím dělat refactoring tak akorát, abych na jednu stranu nezařízl bussines, a na druhou stranu abych ozdravoval kód. Takže když po letech odcházím, je ten kód obvykle v mnohem lepším stavu.

Vzhledem k tomu, že většinu programátorů se legaci kódu štítí, tak mám skvělou vyjedávací pozici s klientem :-)
Název: Re:Nový projekt vs. cizí kód
Přispěvatel: Jiří Havel 10. 09. 2020, 23:50:29
Dobre... zpet k zakladni otazce a motivaci k ni.
Myslim, ze dlouhodobe neni udrzitelne kazde 2 roky vsechno prepisovat.
Ono to není nejen udržitelné, ale ani možné. Takže se to zas tak moc nedělá. Co má šanci na úspěch je přepis dílčích částí. Ale tak aby celý systém zůstal funkční.
Ja  som zazil projekty, ktore mali pravidlo "program moze byt len tak velky, aby ho jeden koder dokazal za mesiac napisat nanovo". Toto fungovalo fajn.
Jo, takovéhle jednoduché projekty se píšou fajn. Akorát že Běžný Franta Uživatel si zvykl používat počítač i k věcem, jejichž inherentní složitost je o pár řádů někde jinde.
Fakt bych rád viděl, jak by nějaký kodér napsal za měsíc třeba korektní práci s daty a časy. Nebo vykreslování unicodu. A to není ani celý program, to je jenom malý bezvýznamný dílek.
To pravidlo by mohlo fungovat pro nějakého lepiče lopatiče, který lepí dohromady prefabrikáty.
Název: Re:Nový projekt vs. cizí kód
Přispěvatel: listoper 11. 09. 2020, 06:35:31
Já rád dělám na legaci kódu pro klienta. Protože obvykle ten klient už ví, že je v háji, a já umím dělat refactoring tak akorát, abych na jednu stranu nezařízl bussines, a na druhou stranu abych ozdravoval kód. Takže když po letech odcházím, je ten kód obvykle v mnohem lepším stavu.

Vzhledem k tomu, že většinu programátorů se legaci kódu štítí, tak mám skvělou vyjedávací pozici s klientem :-)

Ok tak jestli dobre pocitak tak sme zatim 4.
Ale proc se toho ta vetsina stiti?
Název: Re:Nový projekt vs. cizí kód
Přispěvatel: listoper 11. 09. 2020, 07:18:13
Uz 15 let se delam vyvoj software. Na ruznych pozicich, v ruznych jazycich, domenach a pro klienty v ruznych castech sveta.
Ptam se protoze pozoruju trend.
Ty dva roky sem si z prstu nevycucal. Je to opakovana zkusenost. Takze muzu rict, ze dela.
Posledni zkusenost je asi mesic stara.
"Cerstve" vyvinuta vec. Posledni work package je v produkci asi pul roku. Vyvoj zacal v prosinci 2018. Business si chrochta, ze to funguje. Opsici jsou taky relativne spokojeny (i kdyz to jsou vecny brucouni...)
A ted sem se dozvedel, ze se mam podilet navrhu neceho co to ma nahradit. A kdyz sem se zeptal architekta u zakaznika jaka je motivace, abych vlastne vedel jaky problem mam resit... tak nevedel...
Rikal, ze ho to vlastne nezajima, protoze na to mame budget tak muzem vyzkouset novou platformu.

Kdybych byl businesak/uzivatel/akcionar .... tak ho asi vystrelim ze cvicek...
Ale jelikoz jsem potencialni dodavatel tak se jdu vybrecet na root a hledat logiku...

A co proc ti to vadi? Evidentne se pohybujes v nejake (pochybne - jak jinak ze) korporatni sfere, kde prava ruka nevi co dela leva. Proste klasika. Tak ale bud rad ze mas praci ne. Nebo proc se pohybujes mezi temito lidma? Evidentne to jejich businessu dava smysl, kdyz na to uvolnili prachy. Chces logiku. Tak ja ti nejakou dam. Treba se jim tam zmenil nejaky vysoky manager a jednim z jeho KPI jsou uspesne realizovane nove IT projekty. Takhle to bejva casto.

Kdyz se mi neco nelibi tak to chci zmenit. Ne hned utikat nekam kde to bude jinak.
To je stejny jako s tim kodem...
Kdyz si chci budovat s klientem nejaky dlouhodobejsi vztah tak musim:
Pochopit jeho motivaci abych se mohl bud prizpusobit, nebo ho presvedcit ze ta motivace je spatna.
A taky to potrebuju pochopit od spoda (proc se toho programatori stiti) abych je mohl presvedcit ze nove neni vzdycky lepsi a ze stoji za to jit pracovat i udrzbu a rozvoj.
Název: Re:Nový projekt vs. cizí kód
Přispěvatel: tomas88 11. 09. 2020, 08:02:24
Já rád dělám na legaci kódu pro klienta. Protože obvykle ten klient už ví, že je v háji, a já umím dělat refactoring tak akorát, abych na jednu stranu nezařízl bussines, a na druhou stranu abych ozdravoval kód. Takže když po letech odcházím, je ten kód obvykle v mnohem lepším stavu.

Vzhledem k tomu, že většinu programátorů se legaci kódu štítí, tak mám skvělou vyjedávací pozici s klientem :-)

Ok tak jestli dobre pocitak tak sme zatim 4.
Ale proc se toho ta vetsina stiti?

Kdyby se toho vetsina stitila, tak co by delali? Hadam ze 90% programatorske prace je udrzba a rozvoj stavajich systemu. Osobne tak ze 70% delam totez - udrzbu a rozvoj. Nicmene, kdyz si muzu vybrat porad se vice citim jako programator se zamerenim na vyvoj nez udrzbu. Niceho se nestitim, ale proste ten fun factor je uplne nekde jinde :)
Název: Re:Nový projekt vs. cizí kód
Přispěvatel: tomas88 11. 09. 2020, 08:11:59
Uz 15 let se delam vyvoj software. Na ruznych pozicich, v ruznych jazycich, domenach a pro klienty v ruznych castech sveta.
Ptam se protoze pozoruju trend.
Ty dva roky sem si z prstu nevycucal. Je to opakovana zkusenost. Takze muzu rict, ze dela.
Posledni zkusenost je asi mesic stara.
"Cerstve" vyvinuta vec. Posledni work package je v produkci asi pul roku. Vyvoj zacal v prosinci 2018. Business si chrochta, ze to funguje. Opsici jsou taky relativne spokojeny (i kdyz to jsou vecny brucouni...)
A ted sem se dozvedel, ze se mam podilet navrhu neceho co to ma nahradit. A kdyz sem se zeptal architekta u zakaznika jaka je motivace, abych vlastne vedel jaky problem mam resit... tak nevedel...
Rikal, ze ho to vlastne nezajima, protoze na to mame budget tak muzem vyzkouset novou platformu.

Kdybych byl businesak/uzivatel/akcionar .... tak ho asi vystrelim ze cvicek...
Ale jelikoz jsem potencialni dodavatel tak se jdu vybrecet na root a hledat logiku...

A co proc ti to vadi? Evidentne se pohybujes v nejake (pochybne - jak jinak ze) korporatni sfere, kde prava ruka nevi co dela leva. Proste klasika. Tak ale bud rad ze mas praci ne. Nebo proc se pohybujes mezi temito lidma? Evidentne to jejich businessu dava smysl, kdyz na to uvolnili prachy. Chces logiku. Tak ja ti nejakou dam. Treba se jim tam zmenil nejaky vysoky manager a jednim z jeho KPI jsou uspesne realizovane nove IT projekty. Takhle to bejva casto.

Kdyz se mi neco nelibi tak to chci zmenit. Ne hned utikat nekam kde to bude jinak.
To je stejny jako s tim kodem...
Kdyz si chci budovat s klientem nejaky dlouhodobejsi vztah tak musim:
Pochopit jeho motivaci abych se mohl bud prizpusobit, nebo ho presvedcit ze ta motivace je spatna.
A taky to potrebuju pochopit od spoda (proc se toho programatori stiti) abych je mohl presvedcit ze nove neni vzdycky lepsi a ze stoji za to jit pracovat i udrzbu a rozvoj.

Zmenit chovani zakazniku v bankach, automotive, tele,...? Hodne stesti. Hromada lidi s provomocema co ma ruzne cile, vlastni cile. Ale treba se ti povede a bude z tebe dobry politik
Název: Re:Nový projekt vs. cizí kód
Přispěvatel: listoper 11. 09. 2020, 08:38:31
Uz 15 let se delam vyvoj software. Na ruznych pozicich, v ruznych jazycich, domenach a pro klienty v ruznych castech sveta.
Ptam se protoze pozoruju trend.
Ty dva roky sem si z prstu nevycucal. Je to opakovana zkusenost. Takze muzu rict, ze dela.
Posledni zkusenost je asi mesic stara.
"Cerstve" vyvinuta vec. Posledni work package je v produkci asi pul roku. Vyvoj zacal v prosinci 2018. Business si chrochta, ze to funguje. Opsici jsou taky relativne spokojeny (i kdyz to jsou vecny brucouni...)
A ted sem se dozvedel, ze se mam podilet navrhu neceho co to ma nahradit. A kdyz sem se zeptal architekta u zakaznika jaka je motivace, abych vlastne vedel jaky problem mam resit... tak nevedel...
Rikal, ze ho to vlastne nezajima, protoze na to mame budget tak muzem vyzkouset novou platformu.

Kdybych byl businesak/uzivatel/akcionar .... tak ho asi vystrelim ze cvicek...
Ale jelikoz jsem potencialni dodavatel tak se jdu vybrecet na root a hledat logiku...

A co proc ti to vadi? Evidentne se pohybujes v nejake (pochybne - jak jinak ze) korporatni sfere, kde prava ruka nevi co dela leva. Proste klasika. Tak ale bud rad ze mas praci ne. Nebo proc se pohybujes mezi temito lidma? Evidentne to jejich businessu dava smysl, kdyz na to uvolnili prachy. Chces logiku. Tak ja ti nejakou dam. Treba se jim tam zmenil nejaky vysoky manager a jednim z jeho KPI jsou uspesne realizovane nove IT projekty. Takhle to bejva casto.

Kdyz se mi neco nelibi tak to chci zmenit. Ne hned utikat nekam kde to bude jinak.
To je stejny jako s tim kodem...
Kdyz si chci budovat s klientem nejaky dlouhodobejsi vztah tak musim:
Pochopit jeho motivaci abych se mohl bud prizpusobit, nebo ho presvedcit ze ta motivace je spatna.
A taky to potrebuju pochopit od spoda (proc se toho programatori stiti) abych je mohl presvedcit ze nove neni vzdycky lepsi a ze stoji za to jit pracovat i udrzbu a rozvoj.

Zmenit chovani zakazniku v bankach, automotive, tele,...? Hodne stesti. Hromada lidi s provomocema co ma ruzne cile, vlastni cile. Ale treba se ti povede a bude z tebe dobry politik

Mozna sem naivni, ale treba staci predstavit levou ruku te prave a donutit je at si chvilku povidaji.
Vetsinou sou to chytry lidi a prijdou na to, ze kdyz si pomuzou tak ty cile dosahnou oba spis nez kazdy zvlast.

A kdyz se tam objevi sociopat tak ho to aspon donuti se vybarvit.

Nicmene tohle vlakno ma byt spis o te motivaci "odspodu"
Název: Re:Nový projekt vs. cizí kód
Přispěvatel: listoper 11. 09. 2020, 08:40:16
Já rád dělám na legaci kódu pro klienta. Protože obvykle ten klient už ví, že je v háji, a já umím dělat refactoring tak akorát, abych na jednu stranu nezařízl bussines, a na druhou stranu abych ozdravoval kód. Takže když po letech odcházím, je ten kód obvykle v mnohem lepším stavu.

Vzhledem k tomu, že většinu programátorů se legaci kódu štítí, tak mám skvělou vyjedávací pozici s klientem :-)

Ok tak jestli dobre pocitak tak sme zatim 4.
Ale proc se toho ta vetsina stiti?

Kdyby se toho vetsina stitila, tak co by delali? Hadam ze 90% programatorske prace je udrzba a rozvoj stavajich systemu. Osobne tak ze 70% delam totez - udrzbu a rozvoj. Nicmene, kdyz si muzu vybrat porad se vice citim jako programator se zamerenim na vyvoj nez udrzbu. Niceho se nestitim, ale proste ten fun factor je uplne nekde jinde :)

OK "fun factor" to me zajima.
Proc je to vic "fun" ?
Název: Re:Nový projekt vs. cizí kód
Přispěvatel: JaaSt 11. 09. 2020, 10:16:14
Tak letos mám za sebou 25 let kdy mě programování živí. Takže už jsem prošel různé věci. Změny v cizím kódu dělám rád, je to někdy detektivní práce, někdy se něco přiučím co sám neumím a skoro nikdy nezáleží na tom, v jakém stavu je kód, spíš jen na tom, jak se k tomu staví zadavatel.
Vypíchl bych dvě věci. Převzal jsem kód v C++ pro programátorovi z Kolumbie, který na první pohled snad ani nebyl kód ale chaos. Jenže během měsíců, kdy jsem na tom sem tam dělal úpravy jsem postupně zjistil, že jeho úroveň schopností je tak vysoko nad mojí, že tam se asi nikdy nedohrabu. Naprosto šílený chaotický kód v mých očích, který ale nebylo možné nějak rozložit, jako kdyby nějak myslel na všechno. Takže v mých očích nejlepší kód co jsem kdy viděl byl zároveň z hlediska nějaké strukury projektu pro orientaci asi nejhorší.
A ještě zajímavější věc je přebrat po deseti letech kód sám po sobě. Věci, které jsem vypotil se skřípěním zubů mi po tzěch letech připadaly až trapně jednoduché :-D
Název: Re:Nový projekt vs. cizí kód
Přispěvatel: tomas88 11. 09. 2020, 10:34:01
Jako dite jsem mel rad stavebnice - lego, merkur atd. Byla zabava neco budovat. To je pro me ten fun factor. Kdyz prebiram projekt, tak me tenhle factor odpadne. Uz je vybudovano a je potreba to jiz vybudovane jen prevzit. A nekdy to prevzeti je pohoda a nekdy peklo. Ale v obou pripadech je to jen pro me jen prace.

Treba jedna moje zkusenost co jsme prebirali system. Behem nejakych 10 let se na tom vystridalo treba 5 lidi jako udrzovaci - nepocitam ten puvodni tym co to napsal. I sam zakaznik v prubehu let ztracel povedomi co vsechno ten system vlastne dela. Vselijake dokumentace se behem tech let nastradala fakt hromada. A melo se na tom pripravovat vcelku velka zmena, ktera ten system obejbala na neco jineho nez byl staveny. Tak se to rok prebiralo, slo to do vysokych MDs a porad jsme meli velke mezery ve znalosti co ten system ma delat. No zmenu jsme realizovali a nasekali tam hromadu veci, ktere nekoho dalsiho jeste pekne potrapej. Bohuzel fungovani a styl toho systemu jsme pochopili prilis pozde. Psani testu a refaktoring je vetsinou cista utopie do ceho nikdo neinvestuje. Protoze to ma naklady blizici se napsani toho systemu znova.

Nebo jinej pripad, za neco starsiho na cem se vystridalo dost lidi. Par mesicu jsme se s tim seznamovali, stalo to hodne energie a pak ten system zakaznik zariznul, ze se bude delat nova verze. A bude ji delat jiny tym.

Název: Re:Nový projekt vs. cizí kód
Přispěvatel: listoper 11. 09. 2020, 11:07:01
Jako dite jsem mel rad stavebnice - lego, merkur atd. Byla zabava neco budovat. To je pro me ten fun factor. Kdyz prebiram projekt, tak me tenhle factor odpadne. Uz je vybudovano a je potreba to jiz vybudovane jen prevzit. A nekdy to prevzeti je pohoda a nekdy peklo. Ale v obou pripadech je to jen pro me jen prace.
OK beru. Taky me bavilo lego.  Treba to jde s vekem. Ja dneska treba kdyz chci nejakou novou skrinku tak neficim do IKEA :-). Radsi prosmejdim nejaky bazary a hledam co bych si mohl opravit a zrenovovat.
Proste starsi veci maji ducha kdezto novy jsou jen... nejaky slisovany piliny.

Mozna je to i dobra analogie s tim programovanim... to si jeste promyslim ;-).

Psani testu a refaktoring je vetsinou cista utopie do ceho nikdo neinvestuje. Protoze to ma naklady blizici se napsani toho systemu znova.
Z tohohle mi tece krev obracene...
Jak "neinvestuje"? To je snad nase zodpovednost ne?
Co bys rekl plynarum co ti zapojujou doma kotel a reknou "No snad to nikde neutika, nemame cas a penize na to to zkontrolovat... musime bezet za dalsim zakaznikem?"

Nebo jinej pripad, za neco starsiho na cem se vystridalo dost lidi. Par mesicu jsme se s tim seznamovali, stalo to hodne energie a pak ten system zakaznik zariznul, ze se bude delat nova verze. A bude ji delat jiny tym.

No a to je to o cem mluvim. Nekdo presvedcil zakaznika o tom, ze je to dobry napad... (treba je v tomhle konkretnim pripade) ale proc? Jak?
Název: Re:Nový projekt vs. cizí kód
Přispěvatel: listoper 11. 09. 2020, 11:30:51
Tak letos mám za sebou 25 let kdy mě programování živí. Takže už jsem prošel různé věci. Změny v cizím kódu dělám rád, je to někdy detektivní práce, někdy se něco přiučím co sám neumím a skoro nikdy nezáleží na tom, v jakém stavu je kód, spíš jen na tom, jak se k tomu staví zadavatel.
Vypíchl bych dvě věci. Převzal jsem kód v C++ pro programátorovi z Kolumbie, který na první pohled snad ani nebyl kód ale chaos. Jenže během měsíců, kdy jsem na tom sem tam dělal úpravy jsem postupně zjistil, že jeho úroveň schopností je tak vysoko nad mojí, že tam se asi nikdy nedohrabu. Naprosto šílený chaotický kód v mých očích, který ale nebylo možné nějak rozložit, jako kdyby nějak myslel na všechno. Takže v mých očích nejlepší kód co jsem kdy viděl byl zároveň z hlediska nějaké strukury projektu pro orientaci asi nejhorší.
A ještě zajímavější věc je přebrat po deseti letech kód sám po sobě. Věci, které jsem vypotil se skřípěním zubů mi po tzěch letech připadaly až trapně jednoduché :-D

Me se pred par lety stalo, ze jsem 3 roky pricmrndaval na jednom velkym projektu a furt sem brblal ze je to tragedie a kterej **** to navrhoval.
A pak sem resil nejakej incident a nejak sem automaticky sahnul na misto kde bych to cekal a ono to tam bylo.
Proste najednou to kliklo... a me doslo, ze je to vlastne sakra dobre navrzeny, jen ja sem mel jinej mindset.
A pak sem se tim zacal probirat a kdyz sem narazil zas na nejakou vec co se mi zdala jako prasecina.... Tak to bylo bud moje vlastni dilo ( ::)), Nebo jsem tomu proste dal benefit of doubt a po nejakem case sem pochopil, ze to fakt smysl dava.... A nebo ne tak sem to zmenil.
Název: Re:Nový projekt vs. cizí kód
Přispěvatel: hahel16625 11. 09. 2020, 12:17:40

Psani testu a refaktoring je vetsinou cista utopie do ceho nikdo neinvestuje. Protoze to ma naklady blizici se napsani toho systemu znova.
Z tohohle mi tece krev obracene...
Jak "neinvestuje"? To je snad nase zodpovednost ne?
Co bys rekl plynarum co ti zapojujou doma kotel a reknou "No snad to nikde neutika, nemame cas a penize na to to zkontrolovat... musime bezet za dalsim zakaznikem?"


Jsi si fakt naprosto jistý, že jsi zkušený vývojář - a ne kluk, co o vývoji SW nic neví? Ono totiž podle tvých příspěvků vypadáš na to druhé.
Název: Re:Nový projekt vs. cizí kód
Přispěvatel: hahel16625 11. 09. 2020, 12:27:18

A pak sem resil nejakej incident a nejak sem automaticky sahnul na misto kde bych to cekal a ono to tam bylo.
Proste najednou to kliklo... a me doslo, ze je to vlastne sakra dobre navrzeny, jen ja sem mel jinej mindset.


Zažil jsem, že jsem něco považoval za prasárnu na první pohled. Ale na druhý pohled jsem uznal, že je to asi nejmenší zlo, které mohlo v dané situaci vzniknout.
Nikdy jsem nezažil, abych něco označil za prasárnu po hlubším prozkoumání a po letech jsem změnil názor.
Nicméně pokud se ti to stalo, tak bys to měl ilustrovat smysluplným příkladem. Ten tvůj současný příklad rozhodně neilustruje nic.

To je asi jako kdybych napsal: Měl jsem partnerku, o které jsem si myslel, že je úplně blbá, protože dává těžké věci do horních polic a lehké věci do dolních polic. A pak po letech jsem zjistil, že to vlastně ukládá dobře, protože když jsem hledal hodně těžkou věc, tak jsem se automaticky podíval do horní police...a..... no nebudu vás napínat, tak věc tam byla.
Název: Re:Nový projekt vs. cizí kód
Přispěvatel: tomas88 11. 09. 2020, 12:34:31
OK beru. Taky me bavilo lego.  Treba to jde s vekem. Ja dneska treba kdyz chci nejakou novou skrinku tak neficim do IKEA :-). Radsi prosmejdim nejaky bazary a hledam co bych si mohl opravit a zrenovovat.
Proste starsi veci maji ducha kdezto novy jsou jen... nejaky slisovany piliny.

Mozna je to i dobra analogie s tim programovanim... to si jeste promyslim ;-).

Zrovna zabavu ve forme postavit si jako klucina hrad z lega bych nesrovnaval s tim smontovat nejakou blbost z IKEA. Ale klidne bych videl analogii v tom, ze zakaznici ocekavaji od dodavatelu, ze se budou chovat jako IKEA - ocekavame ze to bude fungovat a bude to levne.


Z tohohle mi tece krev obracene...
Jak "neinvestuje"? To je snad nase zodpovednost ne?
Co bys rekl plynarum co ti zapojujou doma kotel a reknou "No snad to nikde neutika, nemame cas a penize na to to zkontrolovat... musime bezet za dalsim zakaznikem?"

Jenze koho zodpovednost? Jako nas programatoru? Zakaznika to treba nezajima. Nase firma to platit nechce. S tema plynarema to je trochu jine. Ty maji zakony, smernice atd. V tomhle pohledu je vyvoj SW stale punk. Kdyz se jeden projekt posere tak na tebe zakaznik je mozna chvili nasrany, ale i u nej se za dva roky vymeni management a tvoje firma jede zase s cistym stitem.

No a to je to o cem mluvim. Nekdo presvedcil zakaznika o tom, ze je to dobry napad... (treba je v tomhle konkretnim pripade) ale proc? Jak?

To nevim. Je to normalni politikareni. Cely ten korporatni svet bank atd. je politikareni, ktere casto nema vubec nic spolecneho s vybudovanim uzitecneho a kvalitniho systemu.
Název: Re:Nový projekt vs. cizí kód
Přispěvatel: listoper 11. 09. 2020, 13:07:04

Psani testu a refaktoring je vetsinou cista utopie do ceho nikdo neinvestuje. Protoze to ma naklady blizici se napsani toho systemu znova.
Z tohohle mi tece krev obracene...
Jak "neinvestuje"? To je snad nase zodpovednost ne?
Co bys rekl plynarum co ti zapojujou doma kotel a reknou "No snad to nikde neutika, nemame cas a penize na to to zkontrolovat... musime bezet za dalsim zakaznikem?"


Jsi si fakt naprosto jistý, že jsi zkušený vývojář - a ne kluk, co o vývoji SW nic neví? Ono totiž podle tvých příspěvků vypadáš na to druhé.

Kdyz sem se rano dival do zrcadla tak to na klucinu fakt nevypadalo. Rad si poslechnu co se ti na mych prispevcich nezda pokud to bude trochu vecne.
Název: Re:Nový projekt vs. cizí kód
Přispěvatel: listoper 11. 09. 2020, 13:13:04

A pak sem resil nejakej incident a nejak sem automaticky sahnul na misto kde bych to cekal a ono to tam bylo.
Proste najednou to kliklo... a me doslo, ze je to vlastne sakra dobre navrzeny, jen ja sem mel jinej mindset.


....
Nicméně pokud se ti to stalo, tak bys to měl ilustrovat smysluplným příkladem. Ten tvůj současný příklad rozhodně neilustruje nic.


O tom tohle vlakno byt nema. Byla to side note a neni potreba dal rozvadet.
Název: Re:Nový projekt vs. cizí kód
Přispěvatel: listoper 11. 09. 2020, 13:22:43

Z tohohle mi tece krev obracene...
Jak "neinvestuje"? To je snad nase zodpovednost ne?
Co bys rekl plynarum co ti zapojujou doma kotel a reknou "No snad to nikde neutika, nemame cas a penize na to to zkontrolovat... musime bezet za dalsim zakaznikem?"

Jenze koho zodpovednost? Jako nas programatoru? Zakaznika to treba nezajima. Nase firma to platit nechce. S tema plynarema to je trochu jine. Ty maji zakony, smernice atd. V tomhle pohledu je vyvoj SW stale punk. Kdyz se jeden projekt posere tak na tebe zakaznik je mozna chvili nasrany, ale i u nej se za dva roky vymeni management a tvoje firma jede zase s cistym stitem.


Hell yes!
Koho jineho? Tomu prece nikdo jiny nebude rozumet.
Chces mi rict ze ti stoji nejaky manazer za zady a kontroluje, ze pises jen produkcni kod a ne testy?

Název: Re:Nový projekt vs. cizí kód
Přispěvatel: hahel16625 11. 09. 2020, 13:25:08

A pak sem resil nejakej incident a nejak sem automaticky sahnul na misto kde bych to cekal a ono to tam bylo.
Proste najednou to kliklo... a me doslo, ze je to vlastne sakra dobre navrzeny, jen ja sem mel jinej mindset.


....
Nicméně pokud se ti to stalo, tak bys to měl ilustrovat smysluplným příkladem. Ten tvůj současný příklad rozhodně neilustruje nic.


O tom tohle vlakno byt nema. Byla to side note a neni potreba dal rozvadet.

Tvoje příspěvky mi "nedávají smysl". Nezapadají do obrazu někoho, kdo 25 let vyvíjí software. Tohle bylo poukázání na jednu drobnost. Samozřejmě teoreticky můžeš být zkušený vývojář, který prostě nedokáže dobře vysvětlit v čem se nějaký SW ukázal být dobrý a zvolil špatný příklad. Ale nebyla to první věc, která je divná.
Název: Re:Nový projekt vs. cizí kód
Přispěvatel: listoper 11. 09. 2020, 13:36:03

A pak sem resil nejakej incident a nejak sem automaticky sahnul na misto kde bych to cekal a ono to tam bylo.
Proste najednou to kliklo... a me doslo, ze je to vlastne sakra dobre navrzeny, jen ja sem mel jinej mindset.


....
Nicméně pokud se ti to stalo, tak bys to měl ilustrovat smysluplným příkladem. Ten tvůj současný příklad rozhodně neilustruje nic.


O tom tohle vlakno byt nema. Byla to side note a neni potreba dal rozvadet.

Tvoje příspěvky mi "nedávají smysl". Nezapadají do obrazu někoho, kdo 25 let vyvíjí software. Tohle bylo poukázání na jednu drobnost. Samozřejmě teoreticky můžeš být zkušený vývojář, který prostě nedokáže dobře vysvětlit v čem se nějaký SW ukázal být dobrý a zvolil špatný příklad. Ale nebyla to první věc, která je divná.

Ne 25, ale 15.
O 25 letech tu psal nekdo jiny.

Ano nevysvetlil sem spravne v cem se nejaky SW ukazal byt dobry, protoze to nebylo mym cilem a neni to pro tuhle diskuzi podstatne.
Melo to vyjadrit jen to, ze s vekem a zkusenostmi se muze stat, ze se zmeni uhel pohledu. A clovek potom muze zmenit nazor.
Nic vic v tom nehledej.
Název: Re:Nový projekt vs. cizí kód
Přispěvatel: tomas88 11. 09. 2020, 13:58:51

Z tohohle mi tece krev obracene...
Jak "neinvestuje"? To je snad nase zodpovednost ne?
Co bys rekl plynarum co ti zapojujou doma kotel a reknou "No snad to nikde neutika, nemame cas a penize na to to zkontrolovat... musime bezet za dalsim zakaznikem?"

Jenze koho zodpovednost? Jako nas programatoru? Zakaznika to treba nezajima. Nase firma to platit nechce. S tema plynarema to je trochu jine. Ty maji zakony, smernice atd. V tomhle pohledu je vyvoj SW stale punk. Kdyz se jeden projekt posere tak na tebe zakaznik je mozna chvili nasrany, ale i u nej se za dva roky vymeni management a tvoje firma jede zase s cistym stitem.


Hell yes!
Koho jineho? Tomu prece nikdo jiny nebude rozumet.
Chces mi rict ze ti stoji nejaky manazer za zady a kontroluje, ze pises jen produkcni kod a ne testy?

Docela by me zajimalo v jake oblasti se pohybujes, ze preberes nejaky stary projekt a mas volnost od managementu to refaktorovat a psat testy, kdyz to je neco co se neda primo vyfakturovat zakaznikovi. Ale jinak jo, s managerama resim vse co se tyka projektu. Ono ty managery vetsinou zajima co se deje, jak dlouho to bude trvat atd. aby vedeli jak komunikavat aktualni stav k zakaznikovi. Plati me moje firma, abych delal to co je potreba, aby se firme darilo.

Treba mam jednu ukazku co se teda nestala me, ale kolega mi vypravel. Investovali do projektu, zakaznik to neproplatil, ale oni ten projekt meli vice pod kontrolou. No diky tem investicim si uctovali vice za support, nicmene meli malo incidentu. Uplynulo nejake obdobi a kdyz se soutezil support a rozvoj toho systemu zase na dalsi obdobi, tak to prohrali na cene a tedka se o to stara nekdo jiny.
Název: Re:Nový projekt vs. cizí kód
Přispěvatel: hahel16625 11. 09. 2020, 14:24:23

Z tohohle mi tece krev obracene...
Jak "neinvestuje"? To je snad nase zodpovednost ne?
Co bys rekl plynarum co ti zapojujou doma kotel a reknou "No snad to nikde neutika, nemame cas a penize na to to zkontrolovat... musime bezet za dalsim zakaznikem?"

Jenze koho zodpovednost? Jako nas programatoru? Zakaznika to treba nezajima. Nase firma to platit nechce. S tema plynarema to je trochu jine. Ty maji zakony, smernice atd. V tomhle pohledu je vyvoj SW stale punk. Kdyz se jeden projekt posere tak na tebe zakaznik je mozna chvili nasrany, ale i u nej se za dva roky vymeni management a tvoje firma jede zase s cistym stitem.


Hell yes!
Ta hláška mi nesedí k někomu, kdo má už nějaký věk, ale budiž, třeba je ti 35 a vyjadřuješ se takto.

Koho jineho? Tomu prece nikdo jiny nebude rozumet.
Chces mi rict ze ti stoji nejaky manazer za zady a kontroluje, ze pises jen produkcni kod a ne testy?

Máš evidentně rád prokládání českého textu anglickými výrazy, takže ti napíši, že ten tvůj příklad s plynaři byl "wrong on so many levels". To byl příklad od někoho, kdo nemá tušení, jak funguje vývoj SW a rozhodně nemá 15 let zkušeností (sorry za 25).

1) Plyn je něco, co může lidi zabít. To nějaký SW sice také, ale o takovém SW tato debata zjevně není.

2) Za dílo platí zákazník dodavateli. Ne naopak. Dítě v 1. třídě, když si kupuje rohlík, tak to chápe. Co tě vedlo k tomu, že uvedeš příklad, kde se plynař vymlouvá, že on (dodavatel) nemá peníze na to, aby zůstal u zákazníka více hodin? Nenapadá mě nic jiného, než nedostatek zkušeností s tím, jak funguje vývoj SW.

3) To, že je nekritický SW zabugovaný hnůj, to je oboustranně vytvořený kompromis mezi dodavatelem a zákazníkem. Kompromis mezi tím, co zákazník chce a co je ochoten zaplatit a jakou dobu je ochoten čekat na výsledek. Kdyby se někdo pokusil vychýlit rovnováhu (u nekritického SW) směrem k výrazně nižšímu počtu chyb, tak zkrachuje (nebo maximálně vyplní nějakou malinkou niku), protože nebude schopen konkurovat cenovou a časovou nabídkou těm, kteří píší současný hnůj. Jsi 15 let ve vývoji SW a tohle nechápeš?

4) No teď jsi tomu ještě přidal tím managerem za zády. Je úplně normální, že nějaký vedoucí projektu rozhodne co se bude psát a jak se bude psát. Rozhodne o tom, které věci se testy pokrývat budou a které nebudou. A je úplně normální, že si vývojáři nehrají na odbojáře a dělají to, co se jim řekne. A je úplně normální, že se nějak kontroluje, že vývojář commituje věci, které dostal ticketem za úkol. Mám se opakovat a zase psát, co ukazuje tahle tvoje neznalost?
Název: Re:Nový projekt vs. cizí kód
Přispěvatel: listoper 11. 09. 2020, 14:25:12

Docela by me zajimalo v jake oblasti se pohybujes, ze preberes nejaky stary projekt a mas volnost od managementu to refaktorovat a psat testy, kdyz to je neco co se neda primo vyfakturovat zakaznikovi. Ale jinak jo, s managerama resim vse co se tyka projektu. Ono ty managery vetsinou zajima co se deje, jak dlouho to bude trvat atd. aby vedeli jak komunikavat aktualni stav k zakaznikovi. Plati me moje firma, abych delal to co je potreba, aby se firme darilo.

Treba mam jednu ukazku co se teda nestala me, ale kolega mi vypravel. Investovali do projektu, zakaznik to neproplatil, ale oni ten projekt meli vice pod kontrolou. No diky tem investicim si uctovali vice za support, nicmene meli malo incidentu. Uplynulo nejake obdobi a kdyz se soutezil support a rozvoj toho systemu zase na dalsi obdobi, tak to prohrali na cene a tedka se o to stara nekdo jiny.

Zakaznikovi se fakturuje cas meho tymu. Poslednich asi 5 let jsem jen na projektech kde se bodyshopuje. A byly to banky, telco, automotive, logistika, statni sprava.

Ale i kdyby ne. To je proste moje prace. Produkcni kod, testy a potrebny refactoring (v danem modulu) je soucasti mych commitu.
A jeste mi nikdo nikdy nerekl, ze by to melo byt jinak.

Samozrejme, ze pri prebirani velkeho projektu to hned nerozeberu do sroubku a 3 mesice nedavam dohromady.


Název: Re:Nový projekt vs. cizí kód
Přispěvatel: listoper 11. 09. 2020, 14:49:26
1) Plyn je něco, co může lidi zabít. To nějaký SW sice také, ale o takovém SW tato debata zjevně není.
Ta debata je obecne o SW vcetne life-critical.

2) Za dílo platí zákazník dodavateli. Ne naopak. Dítě v 1. třídě, když si kupuje rohlík, tak to chápe. Co tě vedlo k tomu, že uvedeš příklad, kde se plynař vymlouvá, že on (dodavatel) nemá peníze na to, aby zůstal u zákazníka více hodin? Nenapadá mě nic jiného, než nedostatek zkušeností s tím, jak funguje vývoj SW.

Kdy u tebe byl naposledy plynar? A byl to to zivnostnik? U me to byl zamestanec vetsi firmy. Jemu sem nic neplatil. Jen mi dal fakturu na papire.
Jeho firma ho vyslala ke mne, aby na mem "systemu" odvedl praci.
A jelikoz byla cena domluvena predem tak by klidne mohl chtit neco odrbat aby si usetril cas. Nevim cemu na tom nerozumis.
Analogie zcela zjevna.


3) To, že je nekritický SW zabugovaný hnůj, to je oboustranně vytvořený kompromis mezi dodavatelem a zákazníkem. Kompromis mezi tím, co zákazník chce a co je ochoten zaplatit a jakou dobu je ochoten čekat na výsledek. Kdyby se někdo pokusil vychýlit rovnováhu (u nekritického SW) směrem k výrazně nižšímu počtu chyb, tak zkrachuje (nebo maximálně vyplní nějakou malinkou niku), protože nebude schopen konkurovat cenovou a časovou nabídkou těm, kteří píší současný hnůj. Jsi 15 let ve vývoji SW a tohle nechápeš?

A ty nechapes, ze udrzba zabugovanyho hnoje je radove drazsi nez udrzba systemu o ktery se pecuje?
Ale jak sem uz psal. Me plati za muj cas. Ne za to jak ho stravim, o tom rozhoduju ja. Pokud se zakaznikovi nebude libit co delam asi si objedna nekoho jinyho.


4) No teď jsi tomu ještě přidal tím managerem za zády. Je úplně normální, že nějaký vedoucí projektu rozhodne co se bude psát a jak se bude psát. Rozhodne o tom, které věci se testy pokrývat budou a které nebudou. A je úplně normální, že si vývojáři nehrají na odbojáře a dělají to, co se jim řekne. A je úplně normální, že se nějak kontroluje, že vývojář commituje věci, které dostal ticketem za úkol.

V tomhle bode skoro souhlasim. Ale uvedom si, ze ten "vedouci projektu" je vyvojar. Jinak nevi co to znamena pokryvani testy. A on potom nese zodpovednost. Takze zustavam u toho ze ta odpovednost je na vyvojarich.
Pokud si vyvojar necha kecat do unit testu nekym kdo tomu nerozumi tak ma smulu. Odpovednost je to porad jeho.

Mám se opakovat a zase psát, co ukazuje tahle tvoje neznalost?

Nemas se opakovat. Odpovidam ti jen ze slusnosti, ale nema to pro me prinos.
Komentujes porad me a ignorujes to na co se ptam.
Takze pokud se prestanes vyjadrovat uplne nebudu to brat jako ztratu.
Název: Re:Nový projekt vs. cizí kód
Přispěvatel: jan.slava 11. 09. 2020, 15:19:14
Já rád dělám na legaci kódu pro klienta. Protože obvykle ten klient už ví, že je v háji, a já umím dělat refactoring tak akorát, abych na jednu stranu nezařízl bussines, a na druhou stranu abych ozdravoval kód. Takže když po letech odcházím, je ten kód obvykle v mnohem lepším stavu.

Vzhledem k tomu, že většinu programátorů se legaci kódu štítí, tak mám skvělou vyjedávací pozici s klientem :-)

Ok tak jestli dobre pocitak tak sme zatim 4.
Ale proc se toho ta vetsina stiti?

Dobrý den,
mohli byste prosím poradit/popsat Vaše propracování se z juniora do seniora se zkušeností - že legacy code je taky kód pouze ho napsal někdo jiný?

Zda Vám stačilo si přečíst knihy např.
Working Effectively with Legacy Code - Michael C. Feathers
nebo jen
Refactoring: Improving the Design of Existing Code od M. Fowlera

a už Vám bylo vše jasné a refaktorovali jste na denní bázi?
Díky moc.




Název: Re:Nový projekt vs. cizí kód
Přispěvatel: listoper 11. 09. 2020, 16:07:43
Já rád dělám na legaci kódu pro klienta. Protože obvykle ten klient už ví, že je v háji, a já umím dělat refactoring tak akorát, abych na jednu stranu nezařízl bussines, a na druhou stranu abych ozdravoval kód. Takže když po letech odcházím, je ten kód obvykle v mnohem lepším stavu.

Vzhledem k tomu, že většinu programátorů se legaci kódu štítí, tak mám skvělou vyjedávací pozici s klientem :-)

Ok tak jestli dobre pocitak tak sme zatim 4.
Ale proc se toho ta vetsina stiti?

Dobrý den,
mohli byste prosím poradit/popsat Vaše propracování se z juniora do seniora se zkušeností - že legacy code je taky kód pouze ho napsal někdo jiný?

Zda Vám stačilo si přečíst knihy např.
Working Effectively with Legacy Code - Michael C. Feathers
nebo jen
Refactoring: Improving the Design of Existing Code od M. Fowlera

a už Vám bylo vše jasné a refaktorovali jste na denní bázi?
Díky moc.

Kdysi sem cetl Clean code on Martina.
ale tohle me zacalo trkat az priklady ze zivota....
Jednou mi treba nekdo smazal kus kodu ktery se mu zdal jako nepotrebny.... Kdybych to byl byval mel pokryty tak by to nemohl vyreleasovat....
Ten prechod je o tom, ze se ti za nejaky cas zacnou objevovat vzory...
Kouknu na nejaky kod a vzpomenu si na pruser co sem zazil kdyz sem to sam podobne udelal.
Osobni zkusenost je lepsi nez 100 knih... (ale cist je samozrejme neuskodi)
Název: Re:Nový projekt vs. cizí kód
Přispěvatel: BoneFlute 11. 09. 2020, 16:29:50
Nicmene tohle vlakno ma byt spis o te motivaci "odspodu"

Mám svůj vlastní soukromý projekt. Něco jako FW. Dělám na něm, furt ho vylepšuju podle toho, co znám a umím nejlépe. Občas z něho odpadne nějaká knihovna, která se dá použít i v bussinesu.
Proč to dělám? Protože je to špička. Je to to nejlepší co umím, co znám, a chci tím spasit svět. Je to úžasná radost a pocit tvůrčího štěstí (a taky hluboké zoufalství, když se to nedaří).

Dělat kód, který je "jen" good enought, a kolikrát ani to ne, to moc radosti nepůsobí. Je to jen práce.
Název: Re:Nový projekt vs. cizí kód
Přispěvatel: listoper 11. 09. 2020, 16:37:59
Nicmene tohle vlakno ma byt spis o te motivaci "odspodu"


Mám svůj vlastní soukromý projekt. Něco jako FW. Dělám na něm, furt ho vylepšuju podle toho, co znám a umím nejlépe. Občas z něho odpadne nějaká knihovna, která se dá použít i v bussinesu.
Proč to dělám? Protože je to špička. Je to to nejlepší co umím, co znám, a chci tím spasit svět. Je to úžasná radost a pocit tvůrčího štěstí (a taky hluboké zoufalství, když se to nedaří).

Dělat kód, který je "jen" good enought, a kolikrát ani to ne, to moc radosti nepůsobí. Je to jen práce.

Fajn. Prepokladam, ze se programovanim i zivis. A i tam se snazis udelat to nejlepsi co umis.

A argumenty o tom ze na starsim projektu neni prace tolik tvurci moc nechapu.
Název: Re:Nový projekt vs. cizí kód
Přispěvatel: BoneFlute 11. 09. 2020, 16:49:14
A argumenty o tom ze na starsim projektu neni prace tolik tvurci moc nechapu.

Nerozumím té větě.
Název: Re:Nový projekt vs. cizí kód
Přispěvatel: listoper 11. 09. 2020, 16:57:49
A argumenty o tom ze na starsim projektu neni prace tolik tvurci moc nechapu.

Nerozumím té větě.

Sorry... Ne tvoje argumenty.
Spis tohle:

Mě to příjde jasné. Člověka obecně baví něco budovat. A programování je dosti (někdy bohužel) kreativní činnost. No a ta kreativita v případě přebírání projektu jaksi odpadá.


Sice ano. Ty si "budujes" neco sveho takze i kdyz je to stare tak je to porad tvoje....

Nicmene si myslim, ze i kdyz sednu do rozjeteho vlaku tak porad tvurci byt muzu. A ne mene nez u neceho na cem se zacina.
Název: Re:Nový projekt vs. cizí kód
Přispěvatel: BoneFlute 11. 09. 2020, 17:01:47
Nicmene si myslim, ze i kdyz sednu do rozjeteho vlaku tak porad tvurci byt muzu. A ne mene nez u neceho na cem se zacina.

Jasně. Ale je to více přehrabování se ve špíně. Zatímco když děláš něco nového, tak jen tvoříš. Asi jako rozdíl mezi kuchařem a umývačkou. I umývačka může být kreativní a efektivní. A rozhodně velice užitečná, až nutná. Ale přeci jen to není vono.
Název: Re:Nový projekt vs. cizí kód
Přispěvatel: listoper 11. 09. 2020, 17:10:24
Nicmene si myslim, ze i kdyz sednu do rozjeteho vlaku tak porad tvurci byt muzu. A ne mene nez u neceho na cem se zacina.

Jasně. Ale je to více přehrabování se ve špíně. Zatímco když děláš něco nového, tak jen tvoříš. Asi jako rozdíl mezi kuchařem a umývačkou. I umývačka může být kreativní a efektivní. A rozhodně velice užitečná, až nutná. Ale přeci jen to není vono.

Tahle analogie nesedi.
Cilem kuchare je pripravit pro zakaznika jidlo...
Cilem umyvace je pripravit pro kuchare prazdnej talir aby ho mel kam dat.

Cilem programatora obvykle neni vytvorit prazdny repozitar. (Jen v pripade, ze se na projektu zacina ;-))
Název: Re:Nový projekt vs. cizí kód
Přispěvatel: tomas88 11. 09. 2020, 21:48:22
Proste nekoho bavi delat nove projekty, nekdo rad pokracuje ve stavajich. Sve misto na trhu si najdou oboje skupiny. Nema to co delat se senioritou, nebo ze jedno je vice nez druhe. Proste kazdeho bavi neco jine. Takhle bych asi shrnul muj pohled na toto tema :)

Nicmene @listoper ses tu ohanel pracemi okolo plynu a ze to je podobne jako psat SW. To prave ze vubec NENI podobne. Je to sakra rozdil. Co jsem rychle nasel na netu -  https://elektro.tzb-info.cz/bezpecnost-a-revize/6661-prace-revizniho-technika - proste pro praci okolo plynu musis mit nejaky skoleni, je to vsechno zaneseno v zakone. Ja se v tom samozrejme nevyznam, ale ocekavam, ze takovy technik ma ze zakona zodpovednost atd. Naproti tomu jestli bance dodas kybl hnoje co se bude tvarit jako SW tak co? No tak nic.
Název: Re:Nový projekt vs. cizí kód
Přispěvatel: BoneFlute 11. 09. 2020, 21:54:38
Nicmene si myslim, ze i kdyz sednu do rozjeteho vlaku tak porad tvurci byt muzu. A ne mene nez u neceho na cem se zacina.

Jasně. Ale je to více přehrabování se ve špíně. Zatímco když děláš něco nového, tak jen tvoříš. Asi jako rozdíl mezi kuchařem a umývačkou. I umývačka může být kreativní a efektivní. A rozhodně velice užitečná, až nutná. Ale přeci jen to není vono.

Tahle analogie nesedi.
Cilem kuchare je pripravit pro zakaznika jidlo...
Cilem umyvace je pripravit pro kuchare prazdnej talir aby ho mel kam dat.

Cilem programatora obvykle neni vytvorit prazdny repozitar. (Jen v pripade, ze se na projektu zacina ;-))

To přirovnání je naopak velice přesné. Refactoringem nic nového nepřipravuješ. Konfigurací CI nevytváříš žádnou zvláštní hodnotu. Určitě ne produkt. Nenene, to přirovnání považuji za velice výstižné.
Název: Re:Nový projekt vs. cizí kód
Přispěvatel: listoper 11. 09. 2020, 22:43:33
Nicmene si myslim, ze i kdyz sednu do rozjeteho vlaku tak porad tvurci byt muzu. A ne mene nez u neceho na cem se zacina.

Jasně. Ale je to více přehrabování se ve špíně. Zatímco když děláš něco nového, tak jen tvoříš. Asi jako rozdíl mezi kuchařem a umývačkou. I umývačka může být kreativní a efektivní. A rozhodně velice užitečná, až nutná. Ale přeci jen to není vono.

Tahle analogie nesedi.
Cilem kuchare je pripravit pro zakaznika jidlo...
Cilem umyvace je pripravit pro kuchare prazdnej talir aby ho mel kam dat.

Cilem programatora obvykle neni vytvorit prazdny repozitar. (Jen v pripade, ze se na projektu zacina ;-))

To přirovnání je naopak velice přesné. Refactoringem nic nového nepřipravuješ. Konfigurací CI nevytváříš žádnou zvláštní hodnotu. Určitě ne produkt. Nenene, to přirovnání považuji za velice výstižné.

Huh?
Refactoring se pri novem vyvoji nedela? Mozna tak prvni tyden.
A konfigurace CI opravdu neni prilis tvurci. Ale zase... Jak casto se to dela u rozjeteho projektu?
Naopak kdyz zacinam novy tak vzdycky.
Název: Re:Nový projekt vs. cizí kód
Přispěvatel: Kit 11. 09. 2020, 23:32:22
Refactoring se pri novem vyvoji nedela? Mozna tak prvni tyden.
A konfigurace CI opravdu neni prilis tvurci. Ale zase... Jak casto se to dela u rozjeteho projektu?
Naopak kdyz zacinam novy tak vzdycky.

Refactoring při novém vývoji dělám už během první hodiny. Je součástí každého vývoje.

Pokud konfigurace CI není tvůrčí, tak ji generuj. Nejde to? Hmm, tak asi je tvůrčí.
Název: Re:Nový projekt vs. cizí kód
Přispěvatel: BoneFlute 12. 09. 2020, 00:20:13
Nicmene si myslim, ze i kdyz sednu do rozjeteho vlaku tak porad tvurci byt muzu. A ne mene nez u neceho na cem se zacina.

Jasně. Ale je to více přehrabování se ve špíně. Zatímco když děláš něco nového, tak jen tvoříš. Asi jako rozdíl mezi kuchařem a umývačkou. I umývačka může být kreativní a efektivní. A rozhodně velice užitečná, až nutná. Ale přeci jen to není vono.

Tahle analogie nesedi.
Cilem kuchare je pripravit pro zakaznika jidlo...
Cilem umyvace je pripravit pro kuchare prazdnej talir aby ho mel kam dat.

Cilem programatora obvykle neni vytvorit prazdny repozitar. (Jen v pripade, ze se na projektu zacina ;-))

To přirovnání je naopak velice přesné. Refactoringem nic nového nepřipravuješ. Konfigurací CI nevytváříš žádnou zvláštní hodnotu. Určitě ne produkt. Nenene, to přirovnání považuji za velice výstižné.

Refactoring se pri novem vyvoji nedela?

Dělá. Což nic nemění na skutečnosti, že refactoring obvykle není moc tvůrčí/zábavný, etc.

Na druhou stranu, já třeba mám ten pocit ozdravování celkem rád, našel jsem se v tom.

Jsou to prostě dva naprosto různé pocity: Možnost odejít z kuchyně, která je vyfintěná; nebo položit na stůl voňavou večeři. Vyřešit a rozmotat špagety, a vyhodit z kódu špatné věci, pročistit a učesat API, zrychlit kód; versus adoptovat novou webovou službu na stávající api, kdy vám všechno krásně hraje do noty, všechno přesně zapadá, pomocí pár řádek kódu.
Název: Re:Nový projekt vs. cizí kód
Přispěvatel: listoper 12. 09. 2020, 06:36:30
Refactoring se pri novem vyvoji nedela? Mozna tak prvni tyden.
A konfigurace CI opravdu neni prilis tvurci. Ale zase... Jak casto se to dela u rozjeteho projektu?
Naopak kdyz zacinam novy tak vzdycky.

Refactoring při novém vývoji dělám už během první hodiny. Je součástí každého vývoje.

Pokud konfigurace CI není tvůrčí, tak ji generuj. Nejde to? Hmm, tak asi je tvůrčí.

Bohuzel, ne kazdy dela TDD.

CI neni tvurci ve smyslu, jak rekl boneflute, ze netvorim produkt.
OK muzes rict, ze bez toho by produkt nebyl, takze je to soucast prace na produktu, ale to by se pak dalo dohnat do krajnosti a rict, ze chodit do skoly na prednasky je taky tvurci, protoze se tim pripravujes na ten vyvoj.
Název: Re:Nový projekt vs. cizí kód
Přispěvatel: listoper 12. 09. 2020, 06:43:44
Proste nekoho bavi delat nove projekty, nekdo rad pokracuje ve stavajich. Sve misto na trhu si najdou oboje skupiny. Nema to co delat se senioritou, nebo ze jedno je vice nez druhe. Proste kazdeho bavi neco jine. Takhle bych asi shrnul muj pohled na toto tema :)

Nicmene @listoper ses tu ohanel pracemi okolo plynu a ze to je podobne jako psat SW. To prave ze vubec NENI podobne. Je to sakra rozdil. Co jsem rychle nasel na netu -  https://elektro.tzb-info.cz/bezpecnost-a-revize/6661-prace-revizniho-technika - proste pro praci okolo plynu musis mit nejaky skoleni, je to vsechno zaneseno v zakone. Ja se v tom samozrejme nevyznam, ale ocekavam, ze takovy technik ma ze zakona zodpovednost atd. Naproti tomu jestli bance dodas kybl hnoje co se bude tvarit jako SW tak co? No tak nic.

To prijde neboj. I pri praci pro banku muze jit o lidske zivoty/osudy. A uz ted se stava, ze jsou programatori obvinovani. Viz dieselgate.
A i pro nas programatory bude lepsi kdyz budeme chovat jako kdyby ty zakony uz existovali.
Viz "Programmers oath".

Název: Re:Nový projekt vs. cizí kód
Přispěvatel: listoper 12. 09. 2020, 06:51:29
Nicmene si myslim, ze i kdyz sednu do rozjeteho vlaku tak porad tvurci byt muzu. A ne mene nez u neceho na cem se zacina.

Jasně. Ale je to více přehrabování se ve špíně. Zatímco když děláš něco nového, tak jen tvoříš. Asi jako rozdíl mezi kuchařem a umývačkou. I umývačka může být kreativní a efektivní. A rozhodně velice užitečná, až nutná. Ale přeci jen to není vono.

Tahle analogie nesedi.
Cilem kuchare je pripravit pro zakaznika jidlo...
Cilem umyvace je pripravit pro kuchare prazdnej talir aby ho mel kam dat.

Cilem programatora obvykle neni vytvorit prazdny repozitar. (Jen v pripade, ze se na projektu zacina ;-))

To přirovnání je naopak velice přesné. Refactoringem nic nového nepřipravuješ. Konfigurací CI nevytváříš žádnou zvláštní hodnotu. Určitě ne produkt. Nenene, to přirovnání považuji za velice výstižné.

Refactoring se pri novem vyvoji nedela?

Dělá. Což nic nemění na skutečnosti, že refactoring obvykle není moc tvůrčí/zábavný, etc.

Na druhou stranu, já třeba mám ten pocit ozdravování celkem rád, našel jsem se v tom.

Jsou to prostě dva naprosto různé pocity: Možnost odejít z kuchyně, která je vyfintěná; nebo položit na stůl voňavou večeři. Vyřešit a rozmotat špagety, a vyhodit z kódu špatné věci, pročistit a učesat API, zrychlit kód; versus adoptovat novou webovou službu na stávající api, kdy vám všechno krásně hraje do noty, všechno přesně zapadá, pomocí pár řádek kódu.

OK. Kdyz Leonardo maloval Monu Lisu tak to mel hotovy na prvni dobrou?
Nemel. Porad to predelaval a upravoval(refaktoroval) dokud nebyl spokojenej.
Byla tvurci jen ta prvni faze dokud byly na platne bily mista? A zbytek uz byla jen nudna netvurci rutina?
Název: Re:Nový projekt vs. cizí kód
Přispěvatel: tomas88 12. 09. 2020, 08:34:58
Proste nekoho bavi delat nove projekty, nekdo rad pokracuje ve stavajich. Sve misto na trhu si najdou oboje skupiny. Nema to co delat se senioritou, nebo ze jedno je vice nez druhe. Proste kazdeho bavi neco jine. Takhle bych asi shrnul muj pohled na toto tema :)

Nicmene @listoper ses tu ohanel pracemi okolo plynu a ze to je podobne jako psat SW. To prave ze vubec NENI podobne. Je to sakra rozdil. Co jsem rychle nasel na netu -  https://elektro.tzb-info.cz/bezpecnost-a-revize/6661-prace-revizniho-technika - proste pro praci okolo plynu musis mit nejaky skoleni, je to vsechno zaneseno v zakone. Ja se v tom samozrejme nevyznam, ale ocekavam, ze takovy technik ma ze zakona zodpovednost atd. Naproti tomu jestli bance dodas kybl hnoje co se bude tvarit jako SW tak co? No tak nic.

To prijde neboj. I pri praci pro banku muze jit o lidske zivoty/osudy. A uz ted se stava, ze jsou programatori obvinovani. Viz dieselgate.
A i pro nas programatory bude lepsi kdyz budeme chovat jako kdyby ty zakony uz existovali.
Viz "Programmers oath".

No jenze zijeme ted a tady. Mozna to prijde za 10 let mozna za 100 let. O dieselgate zadne podrobnosti nevim. Az bude nejaky cech programatoru nebo cech OSVC a SRO delajici IT projekty, ze ktereho budes moct byt vyloucen a bude ti sebrana license delat na vsech IT projektech, pak tu uvidim analogii s plynarema.
Název: Re:Nový projekt vs. cizí kód
Přispěvatel: listoper 12. 09. 2020, 11:49:24
Proste nekoho bavi delat nove projekty, nekdo rad pokracuje ve stavajich. Sve misto na trhu si najdou oboje skupiny. Nema to co delat se senioritou, nebo ze jedno je vice nez druhe. Proste kazdeho bavi neco jine. Takhle bych asi shrnul muj pohled na toto tema :)

Nicmene @listoper ses tu ohanel pracemi okolo plynu a ze to je podobne jako psat SW. To prave ze vubec NENI podobne. Je to sakra rozdil. Co jsem rychle nasel na netu -  https://elektro.tzb-info.cz/bezpecnost-a-revize/6661-prace-revizniho-technika - proste pro praci okolo plynu musis mit nejaky skoleni, je to vsechno zaneseno v zakone. Ja se v tom samozrejme nevyznam, ale ocekavam, ze takovy technik ma ze zakona zodpovednost atd. Naproti tomu jestli bance dodas kybl hnoje co se bude tvarit jako SW tak co? No tak nic.

To prijde neboj. I pri praci pro banku muze jit o lidske zivoty/osudy. A uz ted se stava, ze jsou programatori obvinovani. Viz dieselgate.
A i pro nas programatory bude lepsi kdyz budeme chovat jako kdyby ty zakony uz existovali.
Viz "Programmers oath".

No jenze zijeme ted a tady. Mozna to prijde za 10 let mozna za 100 let. O dieselgate zadne podrobnosti nevim. Az bude nejaky cech programatoru nebo cech OSVC a SRO delajici IT projekty, ze ktereho budes moct byt vyloucen a bude ti sebrana license delat na vsech IT projektech, pak tu uvidim analogii s plynarema.

Nekdo potrebuje zakony a nekomu staci ze se nestydi vecer podivat do zrcadla, protoze vi ze odvedl kvalitni praci.
Kdyz se zeptas plynare, proc kontroluje jestli nekde neutika plyn tak co ti rekne?
A. Protoze podle zakona musim.
B. Protoze nechci nekoho zabit.
A kdyz ti dva plynari daji takove odpovedi, ktereho si radsi pozves domu?
Název: Re:Nový projekt vs. cizí kód
Přispěvatel: NoxNox 12. 09. 2020, 12:33:29
Nejsem z IT, ale kdyz se to tak rozjelo, tak bych se rad zeptal:

Jak se stavite k dodelavani nehotoveho kodu po nekom?

V me praci to patri asi k nejhorsimu, co cloveka muze potkat, zvlast kdyz se treba puvodniho autora nejde zeptat, tak by me zajimalo, zda je to u programovani stejne.
Název: Re:Nový projekt vs. cizí kód
Přispěvatel: listoper 12. 09. 2020, 14:54:09
Nejsem z IT, ale kdyz se to tak rozjelo, tak bych se rad zeptal:

Jak se stavite k dodelavani nehotoveho kodu po nekom?

V me praci to patri asi k nejhorsimu, co cloveka muze potkat, zvlast kdyz se treba puvodniho autora nejde zeptat, tak by me zajimalo, zda je to u programovani stejne.

Nevim jestli to pujde srovnat.
Kdyz je program "hotovy" tzn. uz se dal do kodu nesaha. Tak to dost casto znamena ze umrel a dal ho nikdo nepouziva.
Protoze pokud to dal nekdo pouziva tak je vetsinou dal potreba neco pridavat, ubirat, vylepsovat...
Prebirat zijici projekt je celkem normalni a nevidim v tom nic "horsiho".
Prebirani vyvoje konkretni feature se prilis casto nedeje, protoze to byvaji zmeny v radu tydnu.
Název: Re:Nový projekt vs. cizí kód
Přispěvatel: redustin 12. 09. 2020, 15:01:08
versus adoptovat novou webovou službu na stávající api, kdy vám všechno krásně hraje do noty, všechno přesně zapadá, pomocí pár řádek kódu.

Obvykle nic krásně nezapadá a právě refaktoring dává šanci, aby nová funkce mohla být jen pár řádek. Není to buď a nebo, ale nejdřív jedno a až následně druhé. Velice málokdy lze novou funkci přidat pěkně bez úpravy stávajícího kódu, typicky se vytahuje společný předek, stávající kód se zobecňuje pro společné využití generifikací  atd. Skoro vždycky je to několik úvodních commitů (štábní kultura, zobecnění, vytažení rozhraní pro novou funkcionalitu, atd.). Nedovedu si představit, jak by se to mělo dělat jinak.
Název: Re:Nový projekt vs. cizí kód
Přispěvatel: Kit 12. 09. 2020, 15:54:36
versus adoptovat novou webovou službu na stávající api, kdy vám všechno krásně hraje do noty, všechno přesně zapadá, pomocí pár řádek kódu.

Obvykle nic krásně nezapadá a právě refaktoring dává šanci, aby nová funkce mohla být jen pár řádek. Není to buď a nebo, ale nejdřív jedno a až následně druhé. Velice málokdy lze novou funkci přidat pěkně bez úpravy stávajícího kódu, typicky se vytahuje společný předek, stávající kód se zobecňuje pro společné využití generifikací  atd. Skoro vždycky je to několik úvodních commitů (štábní kultura, zobecnění, vytažení rozhraní pro novou funkcionalitu, atd.). Nedovedu si představit, jak by se to mělo dělat jinak.

Vytahování společných předků bývá značně riskantní. Raději vytahuji celé objekty. Také zapouzdření metod do objektů vídám málokdy, ale přitom je to velmi efektivním a robustním řešením. Místo toho se dělají nějaké servisní třídy, které jsou jen hromadou funkcí.
Název: Re:Nový projekt vs. cizí kód
Přispěvatel: Kit 12. 09. 2020, 16:00:17
Refactoring se pri novem vyvoji nedela?

Dělá. Což nic nemění na skutečnosti, že refactoring obvykle není moc tvůrčí/zábavný, etc.

Jak pro koho. Refaktoring mě náhodou docela baví a často při něm najdu hromadu chyb, které udělal předchůdce.

Na druhou stranu, já třeba mám ten pocit ozdravování celkem rád, našel jsem se v tom.

Jsou to prostě dva naprosto různé pocity: Možnost odejít z kuchyně, která je vyfintěná; nebo položit na stůl voňavou večeři. Vyřešit a rozmotat špagety, a vyhodit z kódu špatné věci, pročistit a učesat API, zrychlit kód; versus adoptovat novou webovou službu na stávající api, kdy vám všechno krásně hraje do noty, všechno přesně zapadá, pomocí pár řádek kódu.

Nepopisuješ refactoring, ale redesign.
Název: Re:Nový projekt vs. cizí kód
Přispěvatel: Sam Samovic 13. 09. 2020, 01:08:47
Ja teda nevim, kolik jste kdo za svuj zivot prebiraly projektu ja par jo a muzu vam rict ze je to vzdy nocni mura. Jednou jsem treba dostal za ukol "doladit" program po slavnych Andersen Consulting ( docela znama "
banda nachytrovacu"  kolem roku 2000 ). Byl to nejaky reportovaci system napsany v pro*c, bezici nad oracle db pod hp-uxem. Moc dobre se cisti kod, ktery bezi 16hodin nez to slitne na core dump. Vy na to kouknete, je vam jasny proc to slitlo ale vite ze pricina je ukryta nekde jinde a tak tu chybu huntite nekolik dni. A takovych chutovek jsem za svoji karieru par resil a muzu vam rict, never more. Proste nejsem genius abych se kouknul a hned mi bylo vsechno jasne, jak vsem tady ve vlaknu :-) a vedl tady filosoficke debaty o refactoringu, ucesani api, pridani webove sluzby a zvyseni vykonu odladenim a to vsechno behem 10ti minut :-).
Název: Re:Nový projekt vs. cizí kód
Přispěvatel: BoneFlute 13. 09. 2020, 01:45:03
Ja teda nevim, kolik jste kdo za svuj zivot prebiraly projektu ja par jo a muzu vam rict ze je to vzdy nocni mura. Jednou jsem treba dostal za ukol "doladit" program po slavnych Andersen Consulting ( docela znama "
banda nachytrovacu"  kolem roku 2000 ). Byl to nejaky reportovaci system napsany v pro*c, bezici nad oracle db pod hp-uxem. Moc dobre se cisti kod, ktery bezi 16hodin nez to slitne na core dump. Vy na to kouknete, je vam jasny proc to slitlo ale vite ze pricina je ukryta nekde jinde a tak tu chybu huntite nekolik dni. A takovych chutovek jsem za svoji karieru par resil a muzu vam rict, never more. Proste nejsem genius abych se kouknul a hned mi bylo vsechno jasne, jak vsem tady ve vlaknu :-) a vedl tady filosoficke debaty o refactoringu, ucesani api, pridani webove sluzby a zvyseni vykonu odladenim a to vsechno behem 10ti minut :-).

No, a pak přijdu já, a řeknu, ok, tak já vám to udělám. Ale samozřejmě to nebude hned. Pochopitelně to nebudu dělat deset minut. Já totiž žádný génius nejsem. Ale pár zkušeností mám, a když to zákazník chce, a chce to zaplatit, tak fajn.
Název: Re:Nový projekt vs. cizí kód
Přispěvatel: tomas88 13. 09. 2020, 09:38:38
Nekdo potrebuje zakony a nekomu staci ze se nestydi vecer podivat do zrcadla, protoze vi ze odvedl kvalitni praci.
Kdyz se zeptas plynare, proc kontroluje jestli nekde neutika plyn tak co ti rekne?
A. Protoze podle zakona musim.
B. Protoze nechci nekoho zabit.
A kdyz ti dva plynari daji takove odpovedi, ktereho si radsi pozves domu?

Doporucuju odejit z teplicka bodyshopu a zkusit delat zakazky. To bude rozcarovani. Proste ti plynari maji ze zakona dany nejaky postupy, ktere museji dodrzovat. Predpokladam ze ty postupy jsou zalozena na nejake zkusenosti a maji nejlepsi pomer vynalozene usily / bezpecnost. Takova revize kotle bude stat +- stejne at ji udela kdokoliv. Protoze proste maji jasne dany postup co takova revize kotle znamena. To je ale neco co se v pri zakazkovem vyvoji SW vubec nevidi. Nikde nejsou dane zadne postupy. Ceny se muzou lisit v desitkach i stovkach procent. Pokud si firma co dela zakazky tak mas jedinou motivaci. Udelat ten projekt co nejlevneji, ale furt dost dobre na to, aby si u tebe zakaznik znovu objednal. Ale uz vubec nemas motivaci do toho projektu investovat z dlouhodobeho hlediska. Protoze vsechno co do toho investujes navic, tak pro tebe potencionalni ztrata - napriklad se za dva roky zakaznik rozhodne, ze ten projekt predava nekomu jinemu a tvoji investici slizne nekdo jiny. Je to docela zajimave prostredi.
Název: Re:Nový projekt vs. cizí kód
Přispěvatel: listoper 13. 09. 2020, 11:28:06
Nekdo potrebuje zakony a nekomu staci ze se nestydi vecer podivat do zrcadla, protoze vi ze odvedl kvalitni praci.
Kdyz se zeptas plynare, proc kontroluje jestli nekde neutika plyn tak co ti rekne?
A. Protoze podle zakona musim.
B. Protoze nechci nekoho zabit.
A kdyz ti dva plynari daji takove odpovedi, ktereho si radsi pozves domu?

Doporucuju odejit z teplicka bodyshopu a zkusit delat zakazky. To bude rozcarovani. Proste ti plynari maji ze zakona dany nejaky postupy, ktere museji dodrzovat. Predpokladam ze ty postupy jsou zalozena na nejake zkusenosti a maji nejlepsi pomer vynalozene usily / bezpecnost. Takova revize kotle bude stat +- stejne at ji udela kdokoliv. Protoze proste maji jasne dany postup co takova revize kotle znamena. To je ale neco co se v pri zakazkovem vyvoji SW vubec nevidi. Nikde nejsou dane zadne postupy. Ceny se muzou lisit v desitkach i stovkach procent. Pokud si firma co dela zakazky tak mas jedinou motivaci. Udelat ten projekt co nejlevneji, ale furt dost dobre na to, aby si u tebe zakaznik znovu objednal. Ale uz vubec nemas motivaci do toho projektu investovat z dlouhodobeho hlediska. Protoze vsechno co do toho investujes navic, tak pro tebe potencionalni ztrata - napriklad se za dva roky zakaznik rozhodne, ze ten projekt predava nekomu jinemu a tvoji investici slizne nekdo jiny. Je to docela zajimave prostredi.

A nebo se zakaznik nerozhodne to dat nekomu jinemu...
A ja si pak budu vyzirat, ze sem neinvestoval.
Pravda je, ze se to pravdepodobne nestane, protoze kdyz zakaznik uvidi, ze se mi to rozsejpa pod rukama a udrzba je cim dal tim drazsi tak se s vyssi pravdepodobnosti rozhodne ze sem neschopa a bude mu lip s nekym jinym.

Ale hlavni je, ze ta investice se vyplati i ve strednedobem horizontu.

A btw. Bodyshop neni zas takovy teplicko jak se muze zdat.
Název: Re:Nový projekt vs. cizí kód
Přispěvatel: premekv 14. 09. 2020, 11:06:03
Vrtal jsem se v kódu od jedné nejmenované konzultační společnosti (abych nezakládal hate, nebudu jmenovat firmu ani národnost, ale byla to velká firma z velké země, která je proslulá low cost vývojem). Architektura stála na dvou vrstvách. JSP stránky a PL/SQL procedury v oracle databázi.

Kde začít? .jsp byly opravdu velké. Copy-paste by šlo, ale tohle bylo rafinovanější. Tady se konzistentně uplatňovalo x krát rewrite téhož, s různými implementacemi (a chybami). V JSP se samozřejmě řešily takové ty typicky front endové věci,  například nějaké query nebo reporty nad strukturami, které se před tím celé stáhly z databáze do paměti.

Databáze (PL/SQL) zase často skládala HTML výstup (!), přes SOAP někam posílala data (!!) a posílala i třeba e-mailové notifikace. PL/SQL procedury byly také obrovské ("mít jich víc by bylo škoda, stačí nám jedna"), a v podstatě šlo o propletenec milionu IFů. Když se to člověk snažil formátovat a rozparsovat, tak zjistil, že některé podmínky si i v zájemně odporují (tj v IFu byl zanořený IF s "mrtvým kódem" se stovkami řádků, které se neprovedly,).  Někdy to bylo vidět až okatě (IF fieldX = 3 a uvnitř zanořený IF fieldX = 5).  Prostě bylo vidět, že už v základu zkoněná implementace byla mockrát dolepena quick fixy stylu ("když je na vstupu jednička, má to vrátit dvojku -- ok, přidám tam IF a jdu na další ticket").

Nejlepší na celé věci (a to podle mne hází vidle do sena i těm největším masochistům, co by se chtěli vrhnout na "ozdravování" tohoto výtvoru) bylo, že nikdo vlastně (už) nevěděl, jak to má přesně fungovat. K čemu slouží funkcionalita A, proč na výstup B mám dostat C atd, . Nevěděl to business, nevěděl to analytik. Dokumentace a business analýza měla podobnou strukturu a kvalitu jako kód. Původní implementátoři (spolu s analytiky apod.) už z firmy, co to implementovala, samo sebou odešli (protože tahle firma drží jen low cost lidi a kdo je schopnější, přesunuje se jinam, často do jiného světadílu). Pokud už někoho chytíte, bude problém se domluvit na komunikačním protokolu, protože evidentně používá jinou angličtinu, než je ta vaše.

Protože v té Bance rotují lidé v manažerských postech podobně rychle, jako low cost pracovníci v těchto consultancy companies, a celé se to řídí principem "čím víc teď ušetřím, tím víc bonusů a po mě potopa", evidentně to nemůže a nebude vypadat jinak. Může to znít jako offtopic, jen jsem chtěl říct, že jen o refaktoringu kódu (což je samo sebou v tomto případě ultra challenge) to není, jsou tam ještě daleko vyšší výzvy.

Stále chápu, že ozdravit tuhle mizérii pro někoho to může být opravdu výzva. Lidé dělají různé věci, třeba běhají ultramaratony do kopce, chodí po horkém uhlí nebo v největší zimě plavou ve Vltavě, tak co já vím...
Název: Re:Nový projekt vs. cizí kód
Přispěvatel: listoper 14. 09. 2020, 12:48:56
...

Ten software "tam" uz vznikal? Nebo "tam" byl predan na udrzbu (a rozvoj)?

To byva taktika jak donutit zakaznika aby zaplatil prepis...

To je prave to co tady resim.
Jednak to vede k tomu, ze se snizuje tlak na kvalitu tady, protoze "stejne to budeme za chvilku predelavat"...
a jednak to dela spatnou povest vyvojarum tam... protoze, z toho za par susni proste bic neupletes.... Nic se nenaucis... renome si nezlepsis... a priste zas nic nevydelas...

Je to takovy moderni kolonialismus.

Název: Re:Nový projekt vs. cizí kód
Přispěvatel: Jiří Havel 14. 09. 2020, 13:57:46
...
To je prave to co tady resim.
...
Ale ty jsi se ptal na preference vývojářů. Tahleta špinavá taktika je spíš manažerské rozhodnutí.
Název: Re:Nový projekt vs. cizí kód
Přispěvatel: premekv 14. 09. 2020, 14:01:32
Ten software "tam" uz vznikal? Nebo "tam" byl predan na udrzbu (a rozvoj)?

100% to nevím - byl to starý projekt, ale z toho co jsem slyšel se domnívám, že řízení projektu a snad i nějaká analýza byly "tady" a implementace předána "tam".
Název: Re:Nový projekt vs. cizí kód
Přispěvatel: listoper 14. 09. 2020, 14:10:25
...
To je prave to co tady resim.
...
Ale ty jsi se ptal na preference vývojářů. Tahleta špinavá taktika je spíš manažerské rozhodnutí.

Pravda ze sem chtel resil predevsim tu motivaci odspodu.
To manazerske rozhodnuti je ale vyvojari vitano a podporovano (vetsinou) a proto tam vidim souvislost.

Nevim uplne co je pricina a nasledek...
Jestli programatori nechteji delat na legacy a proto nejdou sehnat lidi a tak se porad offshoruje...
Nebo jestli manazeri tlaci na offshoring kvuli vetsim ziskum za vyvoj noveho a proto vyvojari zanedbavaji kvalitu, protoze vedi ze to nebudou muset udrzovat...


Název: Re:Nový projekt vs. cizí kód
Přispěvatel: redustin 14. 09. 2020, 14:15:17
řízení projektu a snad i nějaká analýza byly "tady" a implementace předána "tam".

Očividně to zde budoucí vlastník kódu moc neřídil, když dopustil takovou implementaci.
Název: Re:Nový projekt vs. cizí kód
Přispěvatel: BoneFlute 14. 09. 2020, 14:45:55
Dovolte mi menší offtopic, ze zvědavosti:

Architektura stála na dvou vrstvách. JSP stránky a PL/SQL procedury v oracle databázi.

...

Databáze (PL/SQL) ... přes SOAP někam posílala data (!!) a posílala i třeba e-mailové notifikace.
V čem vidíš zrovna v tomto problém?
Název: Re:Nový projekt vs. cizí kód
Přispěvatel: Jiří Havel 14. 09. 2020, 14:48:45
...
To je prave to co tady resim.
...
Ale ty jsi se ptal na preference vývojářů. Tahleta špinavá taktika je spíš manažerské rozhodnutí.

Pravda ze sem chtel resil predevsim tu motivaci odspodu.
To manazerske rozhodnuti je ale vyvojari vitano a podporovano (vetsinou) a proto tam vidim souvislost.

Nevim uplne co je pricina a nasledek...
Jestli programatori nechteji delat na legacy a proto nejdou sehnat lidi a tak se porad offshoruje...
Nebo jestli manazeri tlaci na offshoring kvuli vetsim ziskum za vyvoj noveho a proto vyvojari zanedbavaji kvalitu, protoze vedi ze to nebudou muset udrzovat...
Ještě je tu třetí možnost. O nějaký tlak na vývoj nového nejde. A je to akorát důsledek krátkodobého tlaku na minimální cenu, bez nějaké dlouhodobější vize.
Název: Re:Nový projekt vs. cizí kód
Přispěvatel: listoper 14. 09. 2020, 15:12:08
...
To je prave to co tady resim.
...
Ale ty jsi se ptal na preference vývojářů. Tahleta špinavá taktika je spíš manažerské rozhodnutí.

Pravda ze sem chtel resil predevsim tu motivaci odspodu.
To manazerske rozhodnuti je ale vyvojari vitano a podporovano (vetsinou) a proto tam vidim souvislost.

Nevim uplne co je pricina a nasledek...
Jestli programatori nechteji delat na legacy a proto nejdou sehnat lidi a tak se porad offshoruje...
Nebo jestli manazeri tlaci na offshoring kvuli vetsim ziskum za vyvoj noveho a proto vyvojari zanedbavaji kvalitu, protoze vedi ze to nebudou muset udrzovat...
Ještě je tu třetí možnost. O nějaký tlak na vývoj nového nejde. A je to akorát důsledek krátkodobého tlaku na minimální cenu, bez nějaké dlouhodobější vize.

Ale to uz potom nema nic spolecneho s tou spinavou managerskou taktikou ne?
Název: Re:Nový projekt vs. cizí kód
Přispěvatel: listoper 14. 09. 2020, 15:22:54
Dovolte mi menší offtopic, ze zvědavosti:

Architektura stála na dvou vrstvách. JSP stránky a PL/SQL procedury v oracle databázi.

...

Databáze (PL/SQL) ... přes SOAP někam posílala data (!!) a posílala i třeba e-mailové notifikace.
V čem vidíš zrovna v tomto problém?

Za me teda:
1. (subjektivne) Nemam rad ani JSP ani PL/SQL ... nechtel bych s tim pracovat takze bych to tak ani nenavrhoval... ;-)
2. (Snad objektivne) Vendor lock-in. Business logika by mela byt implementovana v prenositelne forme jinak to prodrazi prechod na jinou DB.
Název: Re:Nový projekt vs. cizí kód
Přispěvatel: BoneFlute 14. 09. 2020, 15:43:08
Dovolte mi menší offtopic, ze zvědavosti:

Architektura stála na dvou vrstvách. JSP stránky a PL/SQL procedury v oracle databázi.

...

Databáze (PL/SQL) ... přes SOAP někam posílala data (!!) a posílala i třeba e-mailové notifikace.
V čem vidíš zrovna v tomto problém?

Za me teda:
1. (subjektivne) Nemam rad ani JSP ani PL/SQL ... nechtel bych s tim pracovat takze bych to tak ani nenavrhoval... ;-)
2. (Snad objektivne) Vendor lock-in. Business logika by mela byt implementovana v prenositelne forme jinak to prodrazi prechod na jinou DB.

Ptal jsem se z pohledu architektury, nikoliv z pohledu zvolené technologie. Viz kontext jeho příspěvku.
Název: Re:Nový projekt vs. cizí kód
Přispěvatel: premekv 14. 09. 2020, 16:24:28
Dovolte mi menší offtopic, ze zvědavosti:

Architektura stála na dvou vrstvách. JSP stránky a PL/SQL procedury v oracle databázi.

...

Databáze (PL/SQL) ... přes SOAP někam posílala data (!!) a posílala i třeba e-mailové notifikace.
V čem vidíš zrovna v tomto problém?

Za me teda:
1. (subjektivne) Nemam rad ani JSP ani PL/SQL ... nechtel bych s tim pracovat takze bych to tak ani nenavrhoval... ;-)
2. (Snad objektivne) Vendor lock-in. Business logika by mela byt implementovana v prenositelne forme jinak to prodrazi prechod na jinou DB.

Ok, asi se pouštím  na tenký led (protože jsem ovlivněný tím, že dělám "vícevrstvé" aplikace, kde business logiku mám v aplikační vrstvě a db je prostě úložiště a tím, že PL/SQL tolik neznám), ale nepřišla mi databáze zrovna na tohle ideální nástroj.

Už jen ta SOAP/HTTP komunikace byla hodně low-level, přes nějaký utility balík se ručně skládal request (hlavičky, xml skládání ze stringů atd. (xml injection? ;-))), co by asi šlo abstrahovat a zapouzdřit do nějaké šablony, ale to se nestalo a tak se boiler-plate kód táhnul těmi procedurami... možná že existují nějaké pokročilejší tooly a jde to řešit elegantně, ale nevím. Také se mi nelíbilo, z pohledu architektury, že stejná db instance, která řeší úložiště dat, řeší i složitou business logiku zahrnující cally na web servisy.. (blokující a dlouho trvající). Také ta aplikace měla problémy s performance, ale jestli to bylo zrovna kvůli tomuhle, nevím.

Takže škálování a udržovatelnost. Když otočím otázku, proč to mít v databázi?

Název: Re:Nový projekt vs. cizí kód
Přispěvatel: Jiří Havel 14. 09. 2020, 16:26:55
Dovolte mi menší offtopic, ze zvědavosti:

Architektura stála na dvou vrstvách. JSP stránky a PL/SQL procedury v oracle databázi.

...

Databáze (PL/SQL) ... přes SOAP někam posílala data (!!) a posílala i třeba e-mailové notifikace.
V čem vidíš zrovna v tomto problém?

Za me teda:
1. (subjektivne) Nemam rad ani JSP ani PL/SQL ... nechtel bych s tim pracovat takze bych to tak ani nenavrhoval... ;-)
2. (Snad objektivne) Vendor lock-in. Business logika by mela byt implementovana v prenositelne forme jinak to prodrazi prechod na jinou DB.

Ptal jsem se z pohledu architektury, nikoliv z pohledu zvolené technologie. Viz kontext jeho příspěvku.
No architekturně mi přijde, že je to hodně neočekávané chování databáze. Databáze je úložiště, které obsluhuje požadavky. Od PL/SQL věcí bych čekal, že budou nějak přežvykovat data v rámci té databáze.

Kdybych hledal místo, kde se rozesílají notifikace nebo přeposílají data, tak je databáze jedno z posledních míst, kam bych se díval.
Název: Re:Nový projekt vs. cizí kód
Přispěvatel: Jiří Havel 14. 09. 2020, 16:41:16
...
To je prave to co tady resim.
...
Ale ty jsi se ptal na preference vývojářů. Tahleta špinavá taktika je spíš manažerské rozhodnutí.

Pravda ze sem chtel resil predevsim tu motivaci odspodu.
To manazerske rozhodnuti je ale vyvojari vitano a podporovano (vetsinou) a proto tam vidim souvislost.

Nevim uplne co je pricina a nasledek...
Jestli programatori nechteji delat na legacy a proto nejdou sehnat lidi a tak se porad offshoruje...
Nebo jestli manazeri tlaci na offshoring kvuli vetsim ziskum za vyvoj noveho a proto vyvojari zanedbavaji kvalitu, protoze vedi ze to nebudou muset udrzovat...
Ještě je tu třetí možnost. O nějaký tlak na vývoj nového nejde. A je to akorát důsledek krátkodobého tlaku na minimální cenu, bez nějaké dlouhodobější vize.

Ale to uz potom nema nic spolecneho s tou spinavou managerskou taktikou ne?
Nemá. Tu ale IMO předpokládal už tvůj příspěvek z 12:48.
Já osobně bych se spíš přikláněl k "po čtvrtletní uzávěrce potopa" bez nějakých dlouhodobějších zlých plánů.
Název: Re:Nový projekt vs. cizí kód
Přispěvatel: Kit 14. 09. 2020, 17:40:22
Dovolte mi menší offtopic, ze zvědavosti:

Architektura stála na dvou vrstvách. JSP stránky a PL/SQL procedury v oracle databázi.

...

Databáze (PL/SQL) ... přes SOAP někam posílala data (!!) a posílala i třeba e-mailové notifikace.
V čem vidíš zrovna v tomto problém?

Za me teda:
1. (subjektivne) Nemam rad ani JSP ani PL/SQL ... nechtel bych s tim pracovat takze bych to tak ani nenavrhoval... ;-)
2. (Snad objektivne) Vendor lock-in. Business logika by mela byt implementovana v prenositelne forme jinak to prodrazi prechod na jinou DB.

Rád dělám nižší vrstvu business logiky přímo v DB. Pokud ta vrstva dělá ucelenou činnost, tak s přenositelností na jinou DB (kdo z vás to dělá?) jsou zpravidla menší potíže.

Ovšem mám své hranice. Kompozici HTML a XML v DB jsem si zkusil a zjistil jsem, že tudy cesta nevede. DB totiž nenabízí ani substituci znaků "<&>' apod. Takže ani SOAP nebrat. Podobně ani e-maily by moc dobře nefungovaly, zejména pokud text byl jiný než ASCII.

Na druhou stranu vidím, že si někdo nenechá zformátovat ani datum, agregovat data, sečíst hodnoty v sousedních sloupcích apod. To je zase obrácený extrém. Proč by si databáze nemohla přepočítat částku na faktuře, když změníme položky?
Název: Re:Nový projekt vs. cizí kód
Přispěvatel: BoneFlute 14. 09. 2020, 19:17:31
Dovolte mi menší offtopic, ze zvědavosti:

Architektura stála na dvou vrstvách. JSP stránky a PL/SQL procedury v oracle databázi.

...

Databáze (PL/SQL) ... přes SOAP někam posílala data (!!) a posílala i třeba e-mailové notifikace.
V čem vidíš zrovna v tomto problém?

Za me teda:
1. (subjektivne) Nemam rad ani JSP ani PL/SQL ... nechtel bych s tim pracovat takze bych to tak ani nenavrhoval... ;-)
2. (Snad objektivne) Vendor lock-in. Business logika by mela byt implementovana v prenositelne forme jinak to prodrazi prechod na jinou DB.

Ok, asi se pouštím  na tenký led (protože jsem ovlivněný tím, že dělám "vícevrstvé" aplikace, kde business logiku mám v aplikační vrstvě a db je prostě úložiště a tím, že PL/SQL tolik neznám), ale nepřišla mi databáze zrovna na tohle ideální nástroj.

Už jen ta SOAP/HTTP komunikace byla hodně low-level, přes nějaký utility balík se ručně skládal request (hlavičky, xml skládání ze stringů atd. (xml injection? ;-))), co by asi šlo abstrahovat a zapouzdřit do nějaké šablony, ale to se nestalo a tak se boiler-plate kód táhnul těmi procedurami... možná že existují nějaké pokročilejší tooly a jde to řešit elegantně, ale nevím. Také se mi nelíbilo, z pohledu architektury, že stejná db instance, která řeší úložiště dat, řeší i složitou business logiku zahrnující cally na web servisy.. (blokující a dlouho trvající). Také ta aplikace měla problémy s performance, ale jestli to bylo zrovna kvůli tomuhle, nevím.

Takže škálování a udržovatelnost. Když otočím otázku, proč to mít v databázi?
Když máš dvě vrstvy a ta druhá je prezentační...

Jako já vůbec neřeším, zda takto dvojvrstvá aplikace je dobrej nápad (dokonce by i mohl).
Určitě by bylo vhodnější udělat ten SOAP a posílání mailů jako nějakou service, etc. Protože otestování, a tak. Ale nakonec by to stejně skončilo v db, protože posílání mailu i SOAP je práce s daty.

Čímž nijak nezpochybňuji, že ten kód musel být hroznej. Ono, někdy jdou věci dělat velmi netradičně a přitom vlastně dobře. Pokud k tomu přistupuje dotyčný s tou ideou a nesnaží se jít proti ní, protože tak se to přeci nedělá.
Název: Re:Nový projekt vs. cizí kód
Přispěvatel: BoneFlute 14. 09. 2020, 19:18:38
Dovolte mi menší offtopic, ze zvědavosti:

Architektura stála na dvou vrstvách. JSP stránky a PL/SQL procedury v oracle databázi.

...

Databáze (PL/SQL) ... přes SOAP někam posílala data (!!) a posílala i třeba e-mailové notifikace.
V čem vidíš zrovna v tomto problém?

Za me teda:
1. (subjektivne) Nemam rad ani JSP ani PL/SQL ... nechtel bych s tim pracovat takze bych to tak ani nenavrhoval... ;-)
2. (Snad objektivne) Vendor lock-in. Business logika by mela byt implementovana v prenositelne forme jinak to prodrazi prechod na jinou DB.

Ptal jsem se z pohledu architektury, nikoliv z pohledu zvolené technologie. Viz kontext jeho příspěvku.
No architekturně mi přijde, že je to hodně neočekávané chování databáze. Databáze je úložiště, které obsluhuje požadavky. Od PL/SQL věcí bych čekal, že budou nějak přežvykovat data v rámci té databáze.

Kdybych hledal místo, kde se rozesílají notifikace nebo přeposílají data, tak je databáze jedno z posledních míst, kam bych se díval.
Vzhledem k návrhu aplikace, jak tu byla popsána nemohu souhlasit.
Název: Re:Nový projekt vs. cizí kód
Přispěvatel: Kit 14. 09. 2020, 21:24:01
...

Takže škálování a udržovatelnost. Když otočím otázku, proč to mít v databázi?
Když máš dvě vrstvy a ta druhá je prezentační...

Jako já vůbec neřeším, zda takto dvojvrstvá aplikace je dobrej nápad (dokonce by i mohl).
Určitě by bylo vhodnější udělat ten SOAP a posílání mailů jako nějakou service, etc. Protože otestování, a tak. Ale nakonec by to stejně skončilo v db, protože posílání mailu i SOAP je práce s daty.

Čímž nijak nezpochybňuji, že ten kód musel být hroznej. Ono, někdy jdou věci dělat velmi netradičně a přitom vlastně dobře. Pokud k tomu přistupuje dotyčný s tou ideou a nesnaží se jít proti ní, protože tak se to přeci nedělá.

Pokud by model byl implementován v databázi, což by neměl být problém, tak stačí kolem ní udělat prezenter. Takhle se dá krásně sdílet databáze mezi více aplikacemi, API jako její součást. Takový model by však měl být jen komponentou, která pracuje s daty té databáze. Pár výjimek by se našlo - například používám databázi jako zdroj přesného času.

Není ani problém SOAP a mejly strčit do prezenteru nebo ještě lépe do samostatných vrstev na úrovni modelu.
Název: Re:Nový projekt vs. cizí kód
Přispěvatel: tomas88 15. 09. 2020, 09:02:37
...

Ten software "tam" uz vznikal? Nebo "tam" byl predan na udrzbu (a rozvoj)?

To byva taktika jak donutit zakaznika aby zaplatil prepis...
  • Poradim at si snizi naklady offshoringem
  • Az zjisti, ze naklady jsou o trosku nizsi, ale nic mu nefunguje tak mu nabidnu, ze to predelam...
  • profit

To je prave to co tady resim.
Jednak to vede k tomu, ze se snizuje tlak na kvalitu tady, protoze "stejne to budeme za chvilku predelavat"...
a jednak to dela spatnou povest vyvojarum tam... protoze, z toho za par susni proste bic neupletes.... Nic se nenaucis... renome si nezlepsis... a priste zas nic nevydelas...

Je to takovy moderni kolonialismus.

Prave ze vydelas. Vydelaji "vsechny zucastnene strany". Jinak by se to takhle nevedlo. Nevim proc to nevidis. :) Jako je to cele spatne to je jasne. Ja se jen snazim dat pohled proc se tomu tak deje. Hlavni pricina je, ze vetsina tech lidi co se v zakazkach podileji maji stanovene kvartalni cile, nebo max. rocni. O co myslis ze jde projekt managerum na obou stranach. Oni nejsou hodnoceny podle toho co bude za pet let. A pokud firma napr. poslednich 10+ let jenom rostla, tak se snad necha rict, ze svuj business dela dobre. A o nic jineho nikomu nejde. Bavim se stale o takovem tom klasickem zakazkovem vyvoji. Kdyz ses google nebo netflix a delas si systemy sam pro sebe, tak to asi vypada trochu jinak.
Název: Re:Nový projekt vs. cizí kód
Přispěvatel: listoper 15. 09. 2020, 09:33:51
...

Ten software "tam" uz vznikal? Nebo "tam" byl predan na udrzbu (a rozvoj)?

To byva taktika jak donutit zakaznika aby zaplatil prepis...
  • Poradim at si snizi naklady offshoringem
  • Az zjisti, ze naklady jsou o trosku nizsi, ale nic mu nefunguje tak mu nabidnu, ze to predelam...
  • profit

To je prave to co tady resim.
Jednak to vede k tomu, ze se snizuje tlak na kvalitu tady, protoze "stejne to budeme za chvilku predelavat"...
a jednak to dela spatnou povest vyvojarum tam... protoze, z toho za par susni proste bic neupletes.... Nic se nenaucis... renome si nezlepsis... a priste zas nic nevydelas...

Je to takovy moderni kolonialismus.

Prave ze vydelas. Vydelaji "vsechny zucastnene strany". Jinak by se to takhle nevedlo. Nevim proc to nevidis. :) Jako je to cele spatne to je jasne. Ja se jen snazim dat pohled proc se tomu tak deje. Hlavni pricina je, ze vetsina tech lidi co se v zakazkach podileji maji stanovene kvartalni cile, nebo max. rocni. O co myslis ze jde projekt managerum na obou stranach. Oni nejsou hodnoceny podle toho co bude za pet let. A pokud firma napr. poslednich 10+ let jenom rostla, tak se snad necha rict, ze svuj business dela dobre. A o nic jineho nikomu nejde. Bavim se stale o takovem tom klasickem zakazkovem vyvoji. Kdyz ses google nebo netflix a delas si systemy sam pro sebe, tak to asi vypada trochu jinak.

Jasny... stejne tak si vydelaji vsechny zucastnene strany na obchodu s diamanty. Vcetne tech 9-ti letejch deti v dolech.

Ale OK shodneme se, ze je to spatne...
Tak a ted se jen dohodnout jak to zmenime k lepsimu.
Co navrhujes?
Název: Re:Nový projekt vs. cizí kód
Přispěvatel: Jiří Havel 15. 09. 2020, 11:37:29
Ale OK shodneme se, ze je to spatne...
Tak a ted se jen dohodnout jak to zmenime k lepsimu.
Co navrhujes?
Jak "dohodnout se"? ::) tomas88 napsal v podstatě to, že tenhle stav je Nashovo ekvilibrium. Výplatní funkce je daná korporátními směrnicemi. Můžeš leda tak jít hrát jinou hru.
Název: Re:Nový projekt vs. cizí kód
Přispěvatel: listoper 15. 09. 2020, 14:23:03
Ale OK shodneme se, ze je to spatne...
Tak a ted se jen dohodnout jak to zmenime k lepsimu.
Co navrhujes?
Jak "dohodnout se"? ::) tomas88 napsal v podstatě to, že tenhle stav je Nashovo ekvilibrium. Výplatní funkce je daná korporátními směrnicemi. Můžeš leda tak jít hrát jinou hru.

1. Nevidim, ze by tohle psal
2. Neni to tak
Název: Re:Nový projekt vs. cizí kód
Přispěvatel: jerrym 16. 09. 2020, 10:11:21
plácat se ve starým kodu, kterej si navíc nepsal ty je tragédie...
99 procent firem k tomu nemá žádnej manuál, grafy, apod.
takře pochopení toho co někdo sesmolil před 10 ti lety je horší a často
delší než napsat celej projekt znova...
ideální je když pro opravu starýho kodu máš k dispozici programátora/programátory,
který ho sestavili... pak je to relativně snadnější ...

za posledních 5 let nastaly tak obrovký změny ve vývoji např. u Microsoftu,
že např. v MS VS 2008/10/12/13/15 už dneska nikdo nechce dělat nový projekty ....
Název: Re:Nový projekt vs. cizí kód
Přispěvatel: tomas88 16. 09. 2020, 11:15:14
Jasny... stejne tak si vydelaji vsechny zucastnene strany na obchodu s diamanty. Vcetne tech 9-ti letejch deti v dolech.

Ale OK shodneme se, ze je to spatne...
Tak a ted se jen dohodnout jak to zmenime k lepsimu.
Co navrhujes?

Nenavrhuju nic. Podle me se s tim nic moc delat neda, alespon ne z pozice programatora. Chce to balancovat plusy a minusy tohodle businessu a zmenit hru az minusy zacnou prevazovat. Jinak nevim co s tim :)
Název: Re:Nový projekt vs. cizí kód
Přispěvatel: Nachytrovac 16. 09. 2020, 12:18:15
Proboha, co je to tad za filozofické debaty?

99% Softwaru co se dělá v České Republice (odmyslím si originální software což je to 1%) je sedmkrát přeprodaný produkt od západních (dnes už i východních) nadnárodních korporací, které se 7x přeprodaly jen za jediným účelem - zbavit se zodpovědnosti na straně klienta - product/project managera (menežuje nám to dodavatel X), a cutovat costy (poslali jsem to do ČR kluci, ti to tam zase udělají za 1/4 náklady co u nás, hlupáci).

Pokud nejste úplně mimo, a ve firmě se mimo čučení do 10 let starýho monitoru občas zvednete ze židle a kouknete vlevo vpravo, pak si tohoto jistě všimnete.

Z principu věci v těchto "netechnických" korporátech budou za levno vždy vznikat sračky, protože typicky cílem jakéhokoliv manažera je najmout přesně takové lidi, kteří daný úkol zvládnou, ale už ani o vlásek lepší a dražší, pač potřebujeme ušetřit, KPIčka, bonusy, klasika.

Níže popíšu lifecycle takového typického "českého" softwarového projektu, na který vidíte nabídky na všech pracovních portálech v čr.

Korporát "Z" - klient.
Dodavatel "X" - firma pro kterou nějakej chudák programuje.

V korporátu "Z" se nějaký middle manažer+ rozhodne, že chce šplhat po žebříku, vymyslí se nějaký projekt.
Neudělá se žádná analýza, nic, na pár jednáních se pije kafe a melou klasické nesmysly z patra, přičemž máme přebytek musíme investovat tak i sebevětší blbost se nějak protlačí, vrchní 65 let Hanz se stříbrnými vlasy dosrká kafe, řekne "ok kluci, tak pěkná prezentace, zksute to". Agency a stakeholder problém v praxi.

Tadle sračka, bez jakéhokoliv opravdového zadání s tím že "to se nějak potom domyslí a udělá" se dá do výběrka, kde se přihlásí několik klasických lopato-firem, které budou lhát až se jim z uší bude kouřit co všechno za jak málo udělají.
I zamyslí se korporát "Z", a nakonec to dá tomu nejlevnějšímu, nebo nejulhanějšímu, pravděpodobně oboje dohromady.

Hra se přesouvá k dodavateli "X". Ten vytlačí nějaké lži na jobs/startupjobs/linkedin/agenturám a začíná spam na nebožáky "programátory", řekněmě spíš "vývojáře high level webových aplikací za pomocí bazilionu knihoven", hlavně moc nepřemýšlět nebo to chudák ani neslepí.

Následuje výběrko kde 20letá "HR" holka testuje a vyzpovídá starší lidi, div že po nich nevyžaduje vzorek stolice. Následuje přetahovaná v tom, kdo víc zalže a přechytračí toho druhého - nakonec se podávají ruce, nebožák jde za podtržní peníze dělat na "projektu", který nemá žádné zadání.

Nebožák je samozřejmě patlal (protože někoho dražšího přece najímat nebudeme, nevyšel by budget), takže lepí, neví, blbne, plete, až z toho za pár měsíců uplete takovou sračku, že se pakuje pryč z firmy, než to bouchne. Dodavatel "Z" nastoupí do modu "damage control" a nastaví svůj generátor lží na 10x, probíhaj zrychlený výběrka a nabíraj se noví chudáci, kteří při práci na té sračce div, že nevysokčí z okna.

Projekt začíná mít skluz, klient nevrlý, dodavatel už vyčerpal celý zásobník programátorů a blbá situace - tak se udělá meeting a řekne se "no už jsme tenhle projekt milknuli co to dalo, šlo to do zadeke klasicky, lidi co ještě neodešeli jsou brutálně nasraný, tak to pustíme dál jiným dodavatelům, at' si taky užijou". Tak to dodavatel klientovi vrátí, projekták dostane od šéfa u klienta na zadek, tytyty a musíme udělat nové výběrko a jede se dál.

Do měsíce to přebere jiná firma, rinse and repeat.

Během 4 let se na takovém projektu vystřídá těch firem klidně i 5, desítky programátorů.

Zní vám to povědomě? To je 9 z 10 projektů v ČR.

Takže, proto ^ nechci dělat na "legacy" aplikaci.
Ono ani ten "greenfield" bez zadání/se špatným zadáním dopadne úplně stejně.


Tak kluci hodně štěstí, já se jdu věnovat v životě nečemu užitečnějšímu.
Název: Re:Nový projekt vs. cizí kód
Přispěvatel: listoper 16. 09. 2020, 13:04:26
Jasny... stejne tak si vydelaji vsechny zucastnene strany na obchodu s diamanty. Vcetne tech 9-ti letejch deti v dolech.

Ale OK shodneme se, ze je to spatne...
Tak a ted se jen dohodnout jak to zmenime k lepsimu.
Co navrhujes?

Nenavrhuju nic. Podle me se s tim nic moc delat neda, alespon ne z pozice programatora. Chce to balancovat plusy a minusy tohodle businessu a zmenit hru az minusy zacnou prevazovat. Jinak nevim co s tim :)

No ja navrhuju s abysme zacali u sebe.
Myslim si, ze nevyrabet hnuj by byl slusny zacatek ;-).
Treba prijdem na to, ze vyrabet slusny SW neni o nic casove narocnejsi nez vyrabet hnuj.
Mentalne mozna... ale to dame.



Název: Re:Nový projekt vs. cizí kód
Přispěvatel: Jiří Havel 16. 09. 2020, 13:29:45
No ja navrhuju s abysme zacali u sebe.
Myslim si, ze nevyrabet hnuj by byl slusny zacatek ;-).
Treba prijdem na to, ze vyrabet slusny SW neni o nic casove narocnejsi nez vyrabet hnuj.
Mentalne mozna... ale to dame.
Tak vám děkujeme, pane hrabě.

Je to jen můj dojem, nebo jsou autoři podobných prohlášení podezřele skoupí na ty malé bezvýznamné implementační detaily?  ::)
Název: Re:Nový projekt vs. cizí kód
Přispěvatel: listoper 16. 09. 2020, 18:59:00
No ja navrhuju s abysme zacali u sebe.
Myslim si, ze nevyrabet hnuj by byl slusny zacatek ;-).
Treba prijdem na to, ze vyrabet slusny SW neni o nic casove narocnejsi nez vyrabet hnuj.
Mentalne mozna... ale to dame.
Tak vám děkujeme, pane hrabě.

Je to jen můj dojem, nebo jsou autoři podobných prohlášení podezřele skoupí na ty malé bezvýznamné implementační detaily?  ::)

Nevim co chces za detaily. tomas88 psal

Naproti tomu jestli bance dodas kybl hnoje co se bude tvarit jako SW tak co? No tak nic.

Ja jen rikam, ze bysme mohli prestad prestirat, ze "No tak nic".
Prijde mi, ze neni tak zcestne snazit se delat kvalitni praci.
Název: Re:Nový projekt vs. cizí kód
Přispěvatel: ondrama 17. 09. 2020, 08:46:37
Jasny... stejne tak si vydelaji vsechny zucastnene strany na obchodu s diamanty. Vcetne tech 9-ti letejch deti v dolech.

Ale OK shodneme se, ze je to spatne...
Tak a ted se jen dohodnout jak to zmenime k lepsimu.
Co navrhujes?

Nenavrhuju nic. Podle me se s tim nic moc delat neda, alespon ne z pozice programatora. Chce to balancovat plusy a minusy tohodle businessu a zmenit hru az minusy zacnou prevazovat. Jinak nevim co s tim :)

No ja navrhuju s abysme zacali u sebe.
Myslim si, ze nevyrabet hnuj by byl slusny zacatek ;-).
Treba prijdem na to, ze vyrabet slusny SW neni o nic casove narocnejsi nez vyrabet hnuj.
Mentalne mozna... ale to dame.

No taky zalezi na nastrojich, ktere mas k dispozi. Pokud mas udelat nejaky IS a pouzit Spring, Hibernate a podporu 3 hlavnich databazi a k tomu 10 ne moc zkusenych programatoru, tak z toho nic moc slusneho asi nevypadne.
Název: Re:Nový projekt vs. cizí kód
Přispěvatel: listoper 17. 09. 2020, 09:23:38
Jasny... stejne tak si vydelaji vsechny zucastnene strany na obchodu s diamanty. Vcetne tech 9-ti letejch deti v dolech.

Ale OK shodneme se, ze je to spatne...
Tak a ted se jen dohodnout jak to zmenime k lepsimu.
Co navrhujes?

Nenavrhuju nic. Podle me se s tim nic moc delat neda, alespon ne z pozice programatora. Chce to balancovat plusy a minusy tohodle businessu a zmenit hru az minusy zacnou prevazovat. Jinak nevim co s tim :)

No ja navrhuju s abysme zacali u sebe.
Myslim si, ze nevyrabet hnuj by byl slusny zacatek ;-).
Treba prijdem na to, ze vyrabet slusny SW neni o nic casove narocnejsi nez vyrabet hnuj.
Mentalne mozna... ale to dame.

No taky zalezi na nastrojich, ktere mas k dispozi. Pokud mas udelat nejaky IS a pouzit Spring, Hibernate a podporu 3 hlavnich databazi a k tomu 10 ne moc zkusenych programatoru, tak z toho nic moc slusneho asi nevypadne.

Me by ke slusnosti stacilo aby se za to ty programatori nemuseli stydet a nechteli za tim udelat tlustou caru a jit delat neco jineho.
Kdyz nejsou zkuseny tak samozrejme nemuze vzniknout nejakej klenot.
Ty zkusenosti naberou az tim ze se jim vrati chyby ktery sami udelali a budou je muset opravit.