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 - Ondra Satai Nekola

Stran: 1 ... 115 116 [117] 118 119 ... 177
1741
Hardware / Re:Notebook na vysokou
« kdy: 10. 08. 2016, 08:10:42 »
slusnou grafiku potrebujes i na ten tvuj 27" 4K aby jel na 60 Hz

Na 4k@60 podle tebe nestaci prakticky libovolna aktualni integrovana GPU?

1742
Vývoj / Re:Online IDE pro Javu s možností debugování
« kdy: 09. 08. 2016, 21:10:43 »
Ty si delas srandu?

Nedělám a pořád mi to neni jasné.

Tak jeste pomaleji:

Kód: [Vybrat]
final Foo f = foo()
f.bar()

V tomhle kodu neni bez dalsi znalosti/studia jasne, zda f muze byt null ALE f.bar() je naprosto bezny obrat a proto projde casto bez povsimnuti.

V
Kód: [Vybrat]
final Optional<Foo> f = foo()
f.get().bar()

je naprosto zrejme, ze
  • foo() muze vratit "nic"
  • f.get() bez kontroly je krajne podezrely obrat

Podtrzeno secteno - veci jsou zrejmejsi (ze neco muze nemit hodnotu je explicitni) a zaroven bezpecnejsi (nebezpecne operace jsou podezrele na prvni pohled jak pro lidi tak pro statickou analyzu). Navic dostavas prostredky pro bezpecnou praci s tou (ne) hodnotou, jako je map(), filter(), flatMap(). Ty jsou casto elegantnejsi nez if (f.isPresent()), protoze  lepe umozni retezit operace.

Samozrejme je tady dalsi prostor pro zlepseni, z toho prikladu je trebas celkem videt, ze by Jave prospela typova inference... ale to je uz jiny pribeh.

1743
Vývoj / Re:Online IDE pro Javu s možností debugování
« kdy: 09. 08. 2016, 18:59:01 »
V čem je to bezpečnější než null?

Ty si delas srandu?

Ze neco muze a nemusi byt je diky Optional explicitni. Vznika jasne patterny, kde je pouziti spravne a kde je prinejmensim podezrele.

1744
Vývoj / Re:Online IDE pro Javu s možností debugování
« kdy: 09. 08. 2016, 18:51:13 »
Už se v těchto situacích používá null případně nějaké NullObjekty. Optional nebude například fungovat v Clojure při použití some-> a some->>. Prázdný Optional se vyhodnocuje jako True.

NullObjekty je duplicita v kodu a nutnost vytvaret zbytecne hierarchie *). Null je nejdrazsi chyba v historii pocitacu. Tohle je (pro mnoho pripadu, samozrejme ne pro uplne kazdou situaci) vyborne reseni - kompakni a bezpecne.

Ze to nejde pouzit v clojure mi zilu netrha. Pokud chteji, aby jim to fungovalo, tak at si to v clojure opravi...


*) tim nerikam, ze nemaji smysl. Nekdy jo. Ale situaci, kdy se moc nehodi, je strasne moc.

1745
Vývoj / Re:Online IDE pro Javu s možností debugování
« kdy: 09. 08. 2016, 18:03:01 »
Mluvil jsem o situaci bez použití Optional.

Celkově mi Optional přijde jako zbytečná abstrakce, která nic neusnadní. Sám jsi psal, že jde pomocí map řetězit i funkce, které Optional nevrací.

Ano, muzes pouzit map, flatMap (a dalsi metody, jeste jednou ti rikam RTFM), ktere bys uz otaznicky nenahradil.

Ne, neni to zbytecna abstrakce. Mas moznost napsat kod, ktery funguje (coz tvuj navrh reseni s catchem neni, ten je naprosto spatny) a nemusis ho prospikovat ify.

1746
Vývoj / Re:Online IDE pro Javu s možností debugování
« kdy: 09. 08. 2016, 17:58:53 »
prestozesi nejsem uplne jisty, jak by se mel v Jave chovat, protoze tam je jak null tak Optional

Další důvod proč nepoužívat Optional.

A na to jsi prisel jak?

1747
Vývoj / Re:Online IDE pro Javu s možností debugování
« kdy: 09. 08. 2016, 17:43:59 »
Aby to nevyznelo nejak ve spatnem - ten otaznickovy syntakticky cukr se mi celkem libi (prestozesi nejsem uplne jisty, jak by se mel v Jave chovat, protoze tam je jak null tak Optional), ale co se mi rozhodne nelibi jsou nesmyslne navrhy typu chytani NPE.

S Optional je to tak, ze si je potreba sednout, v klidu si projit dokumentaci, pripadne nejake blogposty a pak je pouzivat nejak rozumne. Ale to nejde, dokud clovek nejdriv neudela domaci ukoly a neujasni si zaklady.

1748
Vývoj / Re:Online IDE pro Javu s možností debugování
« kdy: 09. 08. 2016, 17:39:57 »
Kód: [Vybrat]
o.flatMap(a -> foo.bar(1, a, 2))
totiž vůbec není řetězení metod. Stačilo by jednoduše vložit volání předchozí funkce na místo parametru.

Chtel jsi priklad neceho slozitejsiho, tak jsi ho dostal.

A pochopitelne v tomhle pripade nestaci vlozit volani predchozi funkde na misto parametru, protoze ta
- vraci Optional, coz ten parametr neni
- neresis tim None

1749
Vývoj / Re:Online IDE pro Javu s možností debugování
« kdy: 09. 08. 2016, 17:31:37 »
Je to kód navíc a foo.bar stále musí vracet Optional.

Dale bych na obhajobu tohohle kodu proti chytani NPE rad poznamenal, ze to bude fungovat. Coz tvuj napad nebude.

1750
Vývoj / Re:Online IDE pro Javu s možností debugování
« kdy: 09. 08. 2016, 17:30:30 »
Tak to jsi pochopil spatne. Muzes pouzit libovolnou lambdu.

Kód: [Vybrat]
o.flatMap(a -> foo.bar(1, a, 2))

Je to kód navíc a foo.bar stále musí vracet Optional.

Hele, a jak by sis to predstavoval s otaznicky v tomhle pripade, aby to bylo kratsi?

Jinak pokud ti foo.bar nevraci Optional, tak pouzijes map()

RTFM!

1751
Vývoj / Re:Online IDE pro Javu s možností debugování
« kdy: 09. 08. 2016, 17:17:57 »
Jestli jsem to správně pochopil, tak flatMap s Optional funguje jen pro metody bez parametru, které vrací Optional.

Tak to jsi pochopil spatne. Muzes pouzit libovolnou lambdu.

Kód: [Vybrat]
o.flatMap(a -> foo.bar(1, a, 2))

Nemluve o tom, ze zachytavani (ne jen) NPE pro rizeni behu aplikace je dost velky humus. M.j. protoze si vetsinou nemuzes byt jisty, zda pochazi prave z te derefernce, ze ktere bys to cekal.

Při použití ?. také nevím, na které dereferenci to skončilo. Vědět to nepotřebuju.


Kód: [Vybrat]
a?.foo(c)?.bar(d)

Kdyz tam zacnes chytat NPE a myslis si, ze tim osetrujes situace kdy a je null nebo foo vrati null... tak se pak seredne divis, ze jsi zamaskoval chybu uvnitr foo, kde je vyhozena NPE trebas protoze c je null nebo to nekdo nejak jinak pokazil...

1752
Vývoj / Re:Online IDE pro Javu s možností debugování
« kdy: 09. 08. 2016, 16:24:53 »
Použití třídy Optional je komplikovanější než zachytávání vyjímek.

To zalezi. Jak si navyknes na pouziti map()a a flatMap()u, tak to zacne davat podstatne vetsi smysl.

Nemluve o tom, ze zachytavani (ne jen) NPE pro rizeni behu aplikace je dost velky humus. M.j. protoze si vetsinou nemuzes byt jisty, zda pochazi prave z te derefernce, ze ktere bys to cekal.

1753
Vývoj / Re:Online IDE pro Javu s možností debugování
« kdy: 07. 08. 2016, 15:36:55 »
Ale zase nepůjde refaktorovat a opravovat. Takže pokud jsi nějaký čas ušetřil, což není jisté, tak jsi ho po nějaké době ztratil tak desetinásobek. Skriptovací jazyky na velké projekty nebrat.

Nepůjde to pomocí špatného IDE od IntelliJ. Pomocí vhodných nástrojů to půjde snadno.

Nebylo tu uz nekolikrat receno, ze z principu NE?
Kvuli dynamickemu typovani nejsi obene schopen poznat v compiletime ktere jmeno patri k cemu.

1754
Vývoj / Re:Online IDE pro Javu s možností debugování
« kdy: 06. 08. 2016, 15:28:19 »
Jasne. A trebas strejda Bob bude prase nejvetsi.

Proč označuješ strejdu Boba za prase? Co ti provedl?

Sarkasmus.

1755
Vývoj / Re:Online IDE pro Javu s možností debugování
« kdy: 06. 08. 2016, 15:23:33 »
Co se tyka "praseni", tak je spis v agile udelat malo ale rychle, lepe a predpovidatelne.

Stran: 1 ... 115 116 [117] 118 119 ... 177