Zobrazit příspěvky

Tato sekce Vám umožňuje zobrazit všechny příspěvky tohoto uživatele. Prosím uvědomte si, že můžete vidět příspěvky pouze z oblastí Vám přístupných.


Příspěvky - BoneFlute

Stran: 1 ... 53 54 [55] 56 57 ... 133
811
A proto jakékoliv ručně psané testy jsou z principu špatně. (Tím nechci říct, že by se neměli psát.) Bylo by mnohem lepší, když budou chyby hledat ti nejzkušenější vývojáři a zadrátuje se to do stroje.

812
Z pohledu firmy je jednodužší na organizaci říct, že schůzka bude v 9:00. A každý se podle toho zařídí.

Z pohledu vývojáře nemám problém dorazit na tu 9:00. Budu mít ale problém když nabudu dojmu, že ta schůzka kam mě tahaj přes půl republiky je zbytečná.

Pak taky záleží na vedení jak k tomu přistoupí - "Hele, bude to začínat v 9ráno. Co kdych ti koupil letenku na den předem. Večer se můžeš kouknout na město, ale aby si se mohl v klidu vyspat." versus "by si tam jel vlastním autem, a půl benzínu ti propatíme - dobrý, ne?".

Zda je takové chování firem v pořádku neřeším. Řeším vyhovuje/nevyhovuje. Když nevyhovuje a není s nimi domluva, tak měním lokál.

813
Mně se ten všežravý catch blok osvědčil. Nejspíš proto, že se do něj skoro nic nedostane,...
Ta věta nedává smysl. Tak osvědčil se ti ten všežravý catch, nebo ho nevyužíváš? Nemůžeš oboje najednou.

Dělám vše pro to, aby se mi v něm nic neobjevilo, ale je tam. Mohu oboje najednou. Nemohu však za to, že ti to nedává smysl.

Naopak. Teď to teprve dává všechno smysl. Pokud uvažuješ v duchu té věty, tak je to jasné. Pak je možné úplně cokoliv.

814
Mně se ten všežravý catch blok osvědčil. Nejspíš proto, že se do něj skoro nic nedostane,...
Ta věta nedává smysl. Tak osvědčil se ti ten všežravý catch, nebo ho nevyužíváš? Nemůžeš oboje najednou.

815
Otázka pak jen je, jestli má smysl se s nimi otravovat, když kombinace silného (závislostního) systému a maybe pro nepředvídatelné výjimečné situace vede k přehlednějšímu kódu.

Tak výjimky by měly být přehlednější. Měli by být schopny hezky vyjádřit triviální a chybovou/výjimečnou situaci. Zda je tomu tak, to je už jiná otázka.

816
Zásadní problém výjimek je IMO právě to, že jsou oddělené od výkonného kódu a nejsou vidět.
Při pohledu na cizí kód nevím, co může a nemůže házet.

+1

Chtělo by to něco do syntaxe, kterou by se dalo jasně specifikovat jaké výjimky to může házet. Skutečnost v Javě, kdy musíš definovat co ti to vrátí za výsledek, ale nemusíš definovat co ti to háže za výjimky mi přijde takové nekonzistentní.

817
Z mého pohledu jen s výjimkami neumí pracovat.
Připomíná se mi tady takové otřepané úsloví o OOP: Jsou lidé, kteří nepoužívají objekty protože jim nerozumí. A pak jsou lidé, kteří nepoužívají objekty, protože jim rozumí velmi dobře.

818
Nemám v zásadě nic proti výjimkám, ale návratová hodnota je vždycky značka ideál. Zvláště v typovaných jazycích.

Jak bys tedy vyřešil návratovou hodnotu funkce, která má vracet třeba string, ale uvnitř selže? Prosím jinak než v Golang, jehož řešení znám.

Asi se budu opakovat: Já bych v prvé řadě nevytvářel umělá omezení.

Zrovna případ Golang je super v tom, jak v jazyce kde "zapoměli" vynutit povinnost odebrat hodnotu, vyřešit návrat chyby.
V Javě jsou zvykem výjimky, dělal bych to tedy výjimkami. Ne proto, že by to byla nějaká zvláštní výhra, ale protože je to tam zvykem.
C++ nedělám, to je hnusnej jazyk.
Rust to řeší jako Golang, nebo případně monádama.
Lua to řeší jako Golang, ale výjimky to taky umí.
etc.

Je možno si všimnout, že mnoho, zvláště staticky typovaných jazyků, používají návratovou hodnotu. Mnoho dalších jazyků používá výjimky. Šermovat tu s CleanCode a brát výjimky jako písmo svaté je poněkud... nezkušené.

819
Jak to tedy uděláš, když ten chybový stav nesmíš předat returnem ani parametry nesmíš předávat odkazem?
To je ještě sranda. Ale jak to uděláš, když ten chybový stav nesmíš předat returnem ani parametry nesmíš předávat odkazem a nesmíš vyhazovat výjimky?
V parametrech předám vhodný objekt.
Takže side-effect. To jsme si teda pomohli.

O tom side-effectu vím a proto používám výjimky. Tak se předveď, jak bys to vyřešil.
Jednoduše. Já bych v prvé řadě nevytvářel umělá omezení.

Nemám v zásadě nic proti výjimkám, ale návratová hodnota je vždycky značka ideál. Zvláště v typovaných jazycích.

820
Argument? Co třeba ten, že je to v rozporu s Clean Code?
...
Někdo snad výjimky považuje za božstvo, ...
Zvýraznil jsem související.

821
Jak to tedy uděláš, když ten chybový stav nesmíš předat returnem ani parametry nesmíš předávat odkazem?
To je ještě sranda. Ale jak to uděláš, když ten chybový stav nesmíš předat returnem ani parametry nesmíš předávat odkazem a nesmíš vyhazovat výjimky?

V parametrech předám vhodný objekt.

Takže side-effect. To jsme si teda pomohli.

822
Jak to tedy uděláš, když ten chybový stav nesmíš předat returnem ani parametry nesmíš předávat odkazem?
To je ještě sranda. Ale jak to uděláš, když ten chybový stav nesmíš předat returnem ani parametry nesmíš předávat odkazem a nesmíš vyhazovat výjimky?

823
Taky mne napadlo, že vhodně poskládaný funkce vracející Maybe/Either s nějakou omáčkou kolem by se mohli celkem podobat fungování výjimek. Compile-time.
Ano, Maybe je isomorfní s výjimkami.

To je dost zajímavé tvrzení na to, jak je tu pojem "výjimky" dost abstraktní.

Idea výjimek je, že odchytáváš určitou skupinu konkrétních chybových stavů v konkrétním stromu výrazů. Víc toho není. IMHO zbytek je implementační detail.

824
Jen je k němu ta teorie prostě blíž než u C++.
Tak něco takového jsem víceméně chtěl říct. Plus to, že Haskel je víc deklarativní, což má IMHO velké důsledky. Jak na požadavky vývojáře, tak i na kvalitu výsledné práce.

Jak to myslíš? Především tu poslední větu, protože i v Haskellu jsem viděl dost nehezké věci...
To se nevylučuje.

Mám před očima kolegy, kteří programovali stylem: funguje - funguje. Proč? Nevím, nezajímá. Co když... - nevím, nezajímá. Funguje, tak neřeš.

Domníváma se, že obecně jazyky C++, Java, Python k tomu svádí víc, než Haskell. Ale třeba je to jen můj dojem.

Výjimky jsou především výrazně dražší.

Principielně?

Dobře, nejdřív by bylo asi vhodné si říct, co přesně pod výjimkami každý vidíme.
Co třeba tento pěknej článek: http://www.abclinuxu.cz/blog/radekm/2015/6/algebraicke-efekty

Taky mne napadlo, že vhodně poskládaný funkce vracející Maybe/Either s nějakou omáčkou kolem by se mohli celkem podobat fungování výjimek. Compile-time.

825
Výjimky jsou především výrazně dražší.

Principielně?

Stran: 1 ... 53 54 [55] 56 57 ... 133