Recept na špagety - java vs. net

Prog Ramator

Recept na špagety - java vs. net
« kdy: 10. 10. 2017, 15:04:52 »
Obcas mam chut v praci na spagety. Jaky je osvedceny recept?
Je rozdil v chuti pro programatory javy nebo. net?

Kteri z nich jsou vic zvykli na spageti code?


Kit

Re:Recept na špagety - java vs. net
« Odpověď #1 kdy: 10. 10. 2017, 15:46:25 »
Ke špagetovému kódu vede používání else (ve smyslu řídící struktury) a víc než 4 úrovně zanoření zdrojového kódu. V tom si zmíněné jazyky nemají co vyčítat, záleží spíš na autorovi kódu.

Strukturované else je zcela postradatelnou komponentou - některé jazyky ji vůbec nemají a nechybí jim.

dustin

Re:Recept na špagety - java vs. net
« Odpověď #2 kdy: 10. 10. 2017, 16:32:47 »
4 úrovně zanoření už obvykle bývá pěkně nepřehledná špageta... Nejlépe jen jedna, ale někdy jdou i dvě. Samozřejmě je pak potřeba používat víceslovné názvy metod a při rozdělování kódu do metod se hodí rozumné IDE...

Re:Recept na špagety - java vs. net
« Odpověď #3 kdy: 10. 10. 2017, 16:46:43 »
Ke špagetovému kódu vede používání else (ve smyslu řídící struktury) a víc než 4 úrovně zanoření zdrojového kódu. V tom si zmíněné jazyky nemají co vyčítat, záleží spíš na autorovi kódu.

Strukturované else je zcela postradatelnou komponentou - některé jazyky ji vůbec nemají a nechybí jim.

Prave naopak. Viz jazyky, kde je if then else vyraz.

If bez else ma tendenci vest k tomu, ze kod pouziva sideeffecty.

Lol Phirae

Re:Recept na špagety - java vs. net
« Odpověď #4 kdy: 10. 10. 2017, 17:05:57 »


Kit

Re:Recept na špagety - java vs. net
« Odpověď #5 kdy: 10. 10. 2017, 17:23:47 »
Ke špagetovému kódu vede používání else (ve smyslu řídící struktury) a víc než 4 úrovně zanoření zdrojového kódu. V tom si zmíněné jazyky nemají co vyčítat, záleží spíš na autorovi kódu.

Strukturované else je zcela postradatelnou komponentou - některé jazyky ji vůbec nemají a nechybí jim.

Prave naopak. Viz jazyky, kde je if then else vyraz.

If bez else ma tendenci vest k tomu, ze kod pouziva sideeffecty.

Proto jsem psal "strukturované else", aby zase nějaký chytrák nevyrukoval s else, které je součástí výrazu.

balki

Re:Recept na špagety - java vs. net
« Odpověď #6 kdy: 10. 10. 2017, 17:28:34 »
Moje recepty pre javu:

1. pisat v jave, ako keby to bol proceduralny turbo pascal a vsetko public static
2. spravit architekturu aplikacie a potom si zmysliet idiotske featury, co to cele rozbiju
3. pokusat sa spravit aplikaciu rock solid, aby spracovala kazdy vstup bez ohladu na to, aky je zmrdany, miesto toho, aby sa zmrdany vstup hned na zaciatku odmietol.
4. Copy paste koderina, a pokusit sa nacpat vsetko do jednej metody, nech ma aspon 300 riadkov a viac. Co na tom, ze sa kod opakuje ...
5. Hashmap je univerzalny datovy typ, vsade pouzijes hashmap a mas vystarane

Re:Recept na špagety - java vs. net
« Odpověď #7 kdy: 10. 10. 2017, 17:32:00 »
Ke špagetovému kódu vede používání else (ve smyslu řídící struktury) a víc než 4 úrovně zanoření zdrojového kódu. V tom si zmíněné jazyky nemají co vyčítat, záleží spíš na autorovi kódu.

Strukturované else je zcela postradatelnou komponentou - některé jazyky ji vůbec nemají a nechybí jim.

Prave naopak. Viz jazyky, kde je if then else vyraz.

If bez else ma tendenci vest k tomu, ze kod pouziva sideeffecty.

Proto jsem psal "strukturované else", aby zase nějaký chytrák nevyrukoval s else, které je součástí výrazu.

Tak si nejdriv ujasni pojmy. I else jako soucast vyrazu je "strukturovane".

Kit

Re:Recept na špagety - java vs. net
« Odpověď #8 kdy: 10. 10. 2017, 17:39:56 »
Ke špagetovému kódu vede používání else (ve smyslu řídící struktury) a víc než 4 úrovně zanoření zdrojového kódu. V tom si zmíněné jazyky nemají co vyčítat, záleží spíš na autorovi kódu.

Strukturované else je zcela postradatelnou komponentou - některé jazyky ji vůbec nemají a nechybí jim.

Prave naopak. Viz jazyky, kde je if then else vyraz.

If bez else ma tendenci vest k tomu, ze kod pouziva sideeffecty.

Proto jsem psal "strukturované else", aby zase nějaký chytrák nevyrukoval s else, které je součástí výrazu.

Tak si nejdriv ujasni pojmy. I else jako soucast vyrazu je "strukturovane".

Else, které je součástí řídicích struktur.

V ternárních operátorech Java ani C# nepoužívají else, ale dvojtečku.

Musíš do toho pokaždé vrtat jako nějaký troll? Ostatní už dávno vědí, o co se jedná, tak ze sebe nedělej hnidopicha.

Re:Recept na špagety - java vs. net
« Odpověď #9 kdy: 10. 10. 2017, 17:52:13 »
Tak jeste jinak:

Kód: [Vybrat]
if (a) {
    x = y;
}

je nejspis problem.

Obdoby
Kód: [Vybrat]
if (a) {
    return foo;
} else {
    return bar;
}
maji vetsi sanci byt OK.

To neni o nejakych otazniccich vs klicovych slovech ale o vysledne semantice a sideefectech. A je to jinak, nez pises - prave absence else je jedno z mnoha varovani.

jpu

Re:Recept na špagety - java vs. net
« Odpověď #10 kdy: 10. 10. 2017, 18:15:28 »
takze ako nahradit napr. 4 vnorene ify?

Re:Recept na špagety - java vs. net
« Odpověď #11 kdy: 10. 10. 2017, 18:34:32 »
takze ako nahradit napr. 4 vnorene ify?

Záleží na okolnostech. Často je řešení refaktoring, kdy vnitřky extrahuješ do samostatných (obvykle privátních) metod. Což tě donutí je pojmenovat. A to tě zase donutí těm kusům případně nějaký jasný význam.

Kit

Re:Recept na špagety - java vs. net
« Odpověď #12 kdy: 10. 10. 2017, 18:58:37 »
takze ako nahradit napr. 4 vnorene ify?

Nevnořovat je, ale dát je pod sebe, každý zvlášť. Uvnitř každé z nich mít throw nebo return. Podmínky je obvykle je nutné negovat. Teprve pokud není splněna žádná podmínka, provede se výkonná část kódu, která se nachází až za nimi.

https://wpshout.com/unconditionally-refactoring-nested-statements-cleaner-code/
https://softwareengineering.stackexchange.com/questions/206816/clarification-of-avoid-if-else-advice
https://www.youtube.com/watch?v=kisKOhifiC0

Gll

Re:Recept na špagety - java vs. net
« Odpověď #13 kdy: 10. 10. 2017, 19:29:49 »
Ke špagetovému kódu vede používání else (ve smyslu řídící struktury) a víc než 4 úrovně zanoření zdrojového kódu. V tom si zmíněné jazyky nemají co vyčítat, záleží spíš na autorovi kódu.

Strukturované else je zcela postradatelnou komponentou - některé jazyky ji vůbec nemají a nechybí jim.

Prave naopak. Viz jazyky, kde je if then else vyraz.

If bez else ma tendenci vest k tomu, ze kod pouziva sideeffecty.

Souhlas. Obecne naduzivani ifu byva znamka programu lepeneho bez rozmyslu.

K42

Re:Recept na špagety - java vs. net
« Odpověď #14 kdy: 10. 10. 2017, 19:40:57 »
Obcas mam chut v praci na spagety. Jaky je osvedceny recept?

https://cooking.nytimes.com/recipes/1017306-pasta-aglio-olio-e-peperoncino

Boloňský taky dobrý, samozřejmě - udělaný doma, ne upatlaný z polotovaru. A když je sezona, tak spaghetti pomodoro, jednoduchý jak cvičky a naprosto luxusní. Obé kompatibilní s Javou i .NETem  ;D