Jak se postavit k nekvalitnímu projektu?

sdasdasdasd

Jak se postavit k nekvalitnímu projektu?
« kdy: 03. 09. 2015, 22:59:00 »
Zdravim,

mam taku malu dilemu.

Niekto dal moj kontakt niekomu druhemu s tym ze ma odporuca lebo som celkom kvalitny developer. Ten koncovy clovek sa mi ozval, predstavil mi ten projekt, dal mi pristup k repozitarom a mal som par dni na to aby som sa popozeral do coho by som isiel.

Ja som celkom prekvapeny ale je to celkom sprasene. Jedna sa o serverovu cast, nejake REST api + Spring + omacka okolo.

Mna z toho kodu proste bolia oci. Su to spagety, absolutne to nema vobec ziadne testy, unit ani integracne, je to malo robustne, malo modularizovane ...  a ten REST je dopraseny fakt uctihodne. (vsetky queries vracaju rovnaky http status kod) no ja neviem. Momentalne to vyzera tak ze by bolo jednoduchsie to cele prepisat odzova ako tam dopisovat endpointy "po starom". Ten projekt dost velky technical debt a neviem ako sa mam k tomu postavit.

Prva moznost je ze zatnem zuby, odkodim si svoje a rozlucim sa s tym projektom.

Druha moznost je ze sa pokusim vysvetlit tomu cloveku tie slabiny a povedat mu na rovinu ze to nevidim celkom ruzovo, viac menej mu zdelim to co vam a uvidim co bude.

Tretia ze mu navrhnem aby mi to nechal cele prepisat "tak ako sa to ma".

S tou tretou moznostou by to bolo najlepsie ale na to nebude chciet prisvedcit. Lenze mne sa uplne hnusi robit na projekte ktory je od zakladu napraseny a nic sa s tym uz neda robit ...
« Poslední změna: 04. 09. 2015, 08:23:50 od Petr Krčmář »


Re:ako sa postavit k nekvalitnemu projektu?
« Odpověď #1 kdy: 03. 09. 2015, 23:04:58 »
A co chces slyset? Otazka ma styl: ta tlusta blbka se mi sice vubec nelibi, ale sem nadrzenej jak prase...
Děkuji za možnost editace příspěvku.

eL

Re:ako sa postavit k nekvalitnemu projektu?
« Odpověď #2 kdy: 03. 09. 2015, 23:06:12 »
Dulezitymi faktory zde budou: kolik za to dostanes a za co, jestli aktualne tuto odmenu potrebujes, jestli kdyz to odmitnes, budes mit neco jineho...atp. A sam si pak odpovez, jestli ti to stoji zato. Domnivam se, ze jsi jediny clovek na planete, ktery to dokaze odpovedne rozlousknout.

Kit

Re:ako sa postavit k nekvalitnemu projektu?
« Odpověď #3 kdy: 03. 09. 2015, 23:43:10 »
quote author=sdasdasdasd link=topic=11799.msg141140#msg141140 date=1441313940]
Tretia ze mu navrhnem aby mi to nechal cele prepisat "tak ako sa to ma".
[/quote]

To je prosté: Navrhni mu třetí možnost se slovy: "ber nebo nechej být". Posledně jsem to tak udělal a vydělali jsme na tom oba, protože na to přistoupil a od té doby aplikace šlape tak jak má.

Krysa1

Re:ako sa postavit k nekvalitnemu projektu?
« Odpověď #4 kdy: 04. 09. 2015, 00:13:14 »
Otazka je jestli to funguje, protoze to koncoveho uzivatele zajima. Na tom jak moc je to zprasene az zas tak moc nesejde, pokud aplikace plni svuj ucel. Mnohdy je to tak, ze ta zprasenost ma svou historii a obsahuje spoustu funkcionalit, ktere byly zadany a dodavany postupne a mnohdy protichudne k pozadavkum z minulosti, placeny nepravidelne apod. Neznam detaily. Pokud chces byt siritelem evangelia cisteho kodu (dle tveho nazoru) je to tvoje volba, otazka je zdali za to dostanes zaplaceno.


sdasdasdasd

Re:ako sa postavit k nekvalitnemu projektu?
« Odpověď #5 kdy: 04. 09. 2015, 00:17:37 »
Otazka je jestli to funguje, protoze to koncoveho uzivatele zajima. Na tom jak moc je to zprasene az zas tak moc nesejde, pokud aplikace plni svuj ucel. Mnohdy je to tak, ze ta zprasenost ma svou historii a obsahuje spoustu funkcionalit, ktere byly zadany a dodavany postupne a mnohdy protichudne k pozadavkum z minulosti, placeny nepravidelne apod. Neznam detaily. Pokud chces byt siritelem evangelia cisteho kodu (dle tveho nazoru) je to tvoje volba, otazka je zdali za to dostanes zaplaceno.

chapem, diky za nazor

dustin

Re:ako sa postavit k nekvalitnemu projektu?
« Odpověď #6 kdy: 04. 09. 2015, 06:41:06 »
Nejsem si vůbec jist, že přepsání od nuly vyjde levněji než to při implementaci nových zadání postupně zrefaktorovat a vyčistit. Obzvláště REST, který se celkem snadno testuje.

peter

Re:ako sa postavit k nekvalitnemu projektu?
« Odpověď #7 kdy: 04. 09. 2015, 06:56:16 »
Nejsem si vůbec jist, že přepsání od nuly vyjde levněji než to při implementaci nových zadání postupně zrefaktorovat a vyčistit. Obzvláště REST, který se celkem snadno testuje.

Nevyjde. A to je dôvod, kôli ktorému sa to postupom času tak zhovadilo.

Re:Jak se postavit k nekvalitnímu projektu?
« Odpověď #8 kdy: 04. 09. 2015, 09:04:59 »
spis myslim, ze ten duvod popsala krysa. nemusi jit o neumetelstvi vyvojaru - sam si po sobe obcas rikam "to je prasecina", ale pak kouknu do dokumentace a do gitu a vidim jak to vznikalo.

1) pozadavek na jasnou funkci x = y.
2) v prubehu vyvoje pridana vyjimka, ze 1 se nerovna 1. proc? proste proto.
3) mesic po dokonceni vyvoje zadan pozadavek na detekci jestli je cislo binarni nebo desitkove. protoze pak uz skutecne 10 nemusi byt 10.
4) zadost o pridani vyjimky, ze 10 je vzdy 10 bez ohledu na soustavu.
5) pozadavek - pri zadani 100 vzdy vyhod chybu, ze neni mozne zadat takove cislo
6) oprava predchoziho pozadavku - nejdrive se zeptej jestli 100 je sto nebo jedna-nula-nula.
...

A uz to leti. Treba tvurci ucetnich SW maji muj naprosty obdiv - podivejte se jak se ty zakony meni.
Děkuji za možnost editace příspěvku.

dustin

Re:Jak se postavit k nekvalitnímu projektu?
« Odpověď #9 kdy: 04. 09. 2015, 09:21:46 »
Jenže měnící a vyvíjející se zadání je realita dlouhodobě funkčního projektu. Je na vývojářích, aby s kódem mohli/uměli cvičit a při každé změně jej refaktorovat k lepšímu. Při implementaci změny nejdříve pár (občas i desítky) commitů refaktoringu a až pak, až má kód správné názvy, rozpadlý do krátkých metod s jasným významem a jakžtakž se mi líbí, mohu změnu zaimplementovat. Často se vlastní změna pak ukáže jako drobnost. A příště je to samé, požadavky se mění, tomu musí odpovídat i refaktoring. Samozřejmě to vyžaduje IDE, které refaktoring umí dobře (a i na něm je vždy co zlepšovat).

Nevěřím, že přepisy funkčního používaného otestovaného kódu od nuly něčemu pomůžou. Nakonec to dopadne úplně stejně.

karel

Re:Jak se postavit k nekvalitnímu projektu?
« Odpověď #10 kdy: 04. 09. 2015, 09:23:04 »
ja pouzivam rest api taky jen s kodem 200
a rozlisuju jesli se mi vraci jako klic result nebo error a podle toho kod reaguje
je to dano jquery kdyz pouzivas $.get nebo $.post tak ti errorovy status kody vse domrvi musel bys pouzivat jen $.ajax a psat dva callbacky takhle se to da spachat v jednom a kod se zbytecne nestepi.

navic pokud jedes na nejakem verejnem hostingu tak brzo zjisitis ze ti neprojdou jine metody nez get a post
a nazaver nelze rict ze kazdy prohlizec pokud vratis error kod ti to posle dal do javascriptu, byli taci co to proste zahodili protoze error a mozna jeste jsou.

navic co je prasecina pro tebe nemusi byt prasecina pro jineho a obracene

k testum, vetsina mensich projektu se robi proste bez nich, protoze je to neco za co ti nikdo neda ani korunu, protoze odpoved je, ale my nehodlame uz nic predelavat proste to napiste mi si to ozkousime



Kit

Re:ako sa postavit k nekvalitnemu projektu?
« Odpověď #11 kdy: 04. 09. 2015, 09:24:33 »
Nejsem si vůbec jist, že přepsání od nuly vyjde levněji než to při implementaci nových zadání postupně zrefaktorovat a vyčistit. Obzvláště REST, který se celkem snadno testuje.

V mém případě tam ten REST původně vůbec nebyl. Byla to jedna dlouhá nefunkční špageta a ten REST to zpřehlednil. Stavěl jsem ho od nuly - nyní funguje tak jak má, i když má pouze třetinovou délku proti původní verzi. Zato běží cca 100× rychleji.

dustin

Re:Jak se postavit k nekvalitnímu projektu?
« Odpověď #12 kdy: 04. 09. 2015, 09:29:44 »
Tak přepis na rest je defacto nový projekt...

Kit

Re:Jak se postavit k nekvalitnímu projektu?
« Odpověď #13 kdy: 04. 09. 2015, 09:40:32 »
ja pouzivam rest api taky jen s kodem 200
a rozlisuju jesli se mi vraci jako klic result nebo error a podle toho kod reaguje.

I když stránka neexistuje? Tak na co ty HTTP kódy máme?

Citace
navic pokud jedes na nejakem verejnem hostingu tak brzo zjisitis ze ti neprojdou jine metody nez get a post

Ale jedou. Dokonce často jedou i vlastní metody - které si vymyslíš a přitom nikde nejsou zdokumentovány. Obvyklou podmínkou je, že musí být psány verzálkami a nesmí obsahovat diakritiku. Samotný protokol HTTP to umožňuje. Formuláře HTML však umí pouze GET a POST.

Citace
a nazaver nelze rict ze kazdy prohlizec pokud vratis error kod ti to posle dal do javascriptu, byli taci co to proste zahodili protoze error a mozna jeste jsou.

Někteří vývojáři zahazují errory a staví vlastní chybové kanály. Prostě si přidělávají zbytečnou práci.

Citace
k testum, vetsina mensich projektu se robi proste bez nich, protoze je to neco za co ti nikdo neda ani korunu, protoze odpoved je, ale my nehodlame uz nic predelavat proste to napiste mi si to ozkousime

Záleží na tom, jak se vývojář k testům staví. Pokud jako k povinnosti, kterou mu nikdo nezaplatí, tak se bude koukat tomu vyhnout. Pokud se však k němu budeš stavět jako k prototypu, který od počátku píšeš jako dvojici (test, kód), stane se z toho zábava.

Kit

Re:Jak se postavit k nekvalitnímu projektu?
« Odpověď #14 kdy: 04. 09. 2015, 09:47:00 »
Tak přepis na rest je defacto nový projekt...

Ne tak docela. Téměř vše, co bylo v Javascriptu, jsem mohl ponechat beze změny. Pouze jsem kódy, které byly v hlavičce HTML, společně s tím HTML vystrnadil do výstupních šablon, které tam původně vůbec nebyly. To byl také významný krok DRY - HTML už do PHP nedávám vůbec.