C# .NET vs. Java?

Re:C# .NET vs. Java?
« Odpověď #300 kdy: 01. 03. 2015, 14:32:49 »
Celkove psat v Jave immutable tridy je za trest. Co jsem vygooglil, tak se to standardne dela hromadou accessoru.
... CODE ...
Neprijde mi o moc lepsi.

V daném případě můžeš vyhodit obě třídy. Nic nedělají a jsou k ničemu. Tím ušetříš nejvíc psaní.

A a data si budes strkat do map?


noef

  • *****
  • 897
    • Zobrazit profil
    • E-mail
Re:C# .NET vs. Java?
« Odpověď #301 kdy: 01. 03. 2015, 14:34:42 »
Celkove psat v Jave immutable tridy je za trest. Co jsem vygooglil, tak se to standardne dela hromadou accessoru.
... CODE ...
Neprijde mi o moc lepsi.

V daném případě můžeš vyhodit obě třídy. Nic nedělají a jsou k ničemu. Tím ušetříš nejvíc psaní.

Nesou data, to je podstata immutable trid. Vzhledem k tomu, jak Java pridava funkcionalni rysy, cekal bych, ze pujdou i k necemu vyuzivat.

Citace
Posledni co me napada je uplne vypustit gettery a prejit na verejne final fieldy. Co ctu, tak to ale moc Java-like neni (a u verejnych API uz vubec ne).

To se používá jen u messengerů. Co takhle vypustit gettery a fieldy ponechat private?

U verejneho API? Ehm, to jako vratim tweet instanci s privatnimi fieldy, at si to klientska aplikace reflexi precte? Asi se nechapeme.

Kit

Re:C# .NET vs. Java?
« Odpověď #302 kdy: 01. 03. 2015, 14:49:26 »
V daném případě můžeš vyhodit obě třídy. Nic nedělají a jsou k ničemu. Tím ušetříš nejvíc psaní.

Nesou data, to je podstata immutable trid. Vzhledem k tomu, jak Java pridava funkcionalni rysy, cekal bych, ze pujdou i k necemu vyuzivat.

Pokud nesou jenom data, tak to nejsou objekty, ale struktury.
Citace
To se používá jen u messengerů. Co takhle vypustit gettery a fieldy ponechat private?

U verejneho API? Ehm, to jako vratim tweet instanci s privatnimi fieldy, at si to klientska aplikace reflexi precte? Asi se nechapeme.

Proč? Klient přece nemá co hrabat na atributy objektu. Má být zapouzřený.

Re:C# .NET vs. Java?
« Odpověď #303 kdy: 01. 03. 2015, 14:54:40 »
Pokud nesou jenom data, tak to nejsou objekty, ale struktury.

Ty jsi zase nekde neco cetl, co? Asi jako kdyz jsi precetl neco o TDD a na zaklade toho "zjistil", ze nepotrebujes debugger...

Re:C# .NET vs. Java?
« Odpověď #304 kdy: 01. 03. 2015, 14:58:13 »
Pokud nesou jenom data, tak to nejsou objekty, ale struktury.

A kdyz taky nesou nejakou dalsi logiku? (A ani se nesnaz vytahnout single responsibility principle)


Kit

Re:C# .NET vs. Java?
« Odpověď #305 kdy: 01. 03. 2015, 15:00:56 »
Pokud nesou jenom data, tak to nejsou objekty, ale struktury.

Ty jsi zase nekde neco cetl, co? Asi jako kdyz jsi precetl neco o TDD a na zaklade toho "zjistil", ze nepotrebujes debugger...

Máš pravdu, ten debugger opravdu nepotřebuji.

Kit

Re:C# .NET vs. Java?
« Odpověď #306 kdy: 01. 03. 2015, 15:01:53 »
Pokud nesou jenom data, tak to nejsou objekty, ale struktury.

A kdyz taky nesou nejakou dalsi logiku? (A ani se nesnaz vytahnout single responsibility principle)

Pokud nesou logiku, tak nepotřebuji accessory.

Re:C# .NET vs. Java?
« Odpověď #307 kdy: 01. 03. 2015, 15:04:14 »
Kite, kite. Nenapadlo te, ze se ti muze hodit oboji? Trebas mit v objektu Workflow datum konce, k nemu getter a kousinek logiky v metode isFinished()?

Re:C# .NET vs. Java?
« Odpověď #308 kdy: 01. 03. 2015, 15:05:37 »
Máš pravdu, ten debugger opravdu nepotřebuji.

jen tak ze zvedavosti - delal jsi nekde nejaky vyvoj? Jako doopravdy? Za penize, na skutecnem projektu, co dela neco, co nekdo jiny chce? Co ma netrivialni mnozstvi kodu?

Kit

Re:C# .NET vs. Java?
« Odpověď #309 kdy: 01. 03. 2015, 15:11:07 »
Máš pravdu, ten debugger opravdu nepotřebuji.

jen tak ze zvedavosti - delal jsi nekde nejaky vyvoj? Jako doopravdy? Za penize, na skutecnem projektu, co dela neco, co nekdo jiny chce? Co ma netrivialni mnozstvi kodu?

Dělal a dělám. Bez testů to prostě nejde. Bez debuggeru však v pohodě. V assembleru totiž už nedělám.

JurP

Re:C# .NET vs. Java?
« Odpověď #310 kdy: 01. 03. 2015, 15:11:22 »
Podla mna nerobi. Este som nevidel niekoho alebo nejaku firmu robit projekty vo VIMe, ako sa nam pochvalil Kit, ze robi :)

Re:C# .NET vs. Java?
« Odpověď #311 kdy: 01. 03. 2015, 15:16:24 »
Máš pravdu, ten debugger opravdu nepotřebuji.

jen tak ze zvedavosti - delal jsi nekde nejaky vyvoj? Jako doopravdy? Za penize, na skutecnem projektu, co dela neco, co nekdo jiny chce? Co ma netrivialni mnozstvi kodu?

Dělal a dělám. Bez testů to prostě nejde. Bez debuggeru však v pohodě. V assembleru totiž už nedělám.

Tvuj problem je, ze nechapes, ze ty veci se nevylucuji ale doplnuji...
(Jinak to samozrejme jde bez obojiho, jen je to pak strasny ojeb.)

Kit

Re:C# .NET vs. Java?
« Odpověď #312 kdy: 01. 03. 2015, 15:16:59 »
Kite, kite. Nenapadlo te, ze se ti muze hodit oboji? Trebas mit v objektu Workflow datum konce, k nemu getter a kousinek logiky v metode isFinished()?

A to je takový problém dát metodu isFinished() do toho objektu třídy Workflow?

Co to plácám. Stačí přece implementovat metodu notify() a ta už si v tom objektu třídy Workflow poradí i sama. A nechoď na mne se SRPem.

Re:C# .NET vs. Java?
« Odpověď #313 kdy: 01. 03. 2015, 15:22:44 »
Jo, jenomze jak tam das to isFinished, tak najednou mas neco, co nese data, ma acessor a jeste logiku. Bez dat to nepujde, logika i acessor tam davaji smysl.

noef

  • *****
  • 897
    • Zobrazit profil
    • E-mail
Re:C# .NET vs. Java?
« Odpověď #314 kdy: 01. 03. 2015, 15:26:27 »
V daném případě můžeš vyhodit obě třídy. Nic nedělají a jsou k ničemu. Tím ušetříš nejvíc psaní.

Nesou data, to je podstata immutable trid. Vzhledem k tomu, jak Java pridava funkcionalni rysy, cekal bych, ze pujdou i k necemu vyuzivat.

Pokud nesou jenom data, tak to nejsou objekty, ale struktury.

Jak presne se v Jave zapisuji struktury? Navic ta Scala implementace umi i copy metodu, tj. napr. Foo(1,2,"a").copy(name="b") vrati novou immutable instanci Foo(1,2,"b"), to si nejsem jisty, ze v Jave lze ani manualne napodobit (mozna neco jednodussiho ve stylu Foo(1,2,"a").updatedName("b")). Odpoved podle vas je tedy nepouzivat zadne postupy z funkcionalniho programovani?


To se používá jen u messengerů. Co takhle vypustit gettery a fieldy ponechat private?

U verejneho API? Ehm, to jako vratim tweet instanci s privatnimi fieldy, at si to klientska aplikace reflexi precte? Asi se nechapeme.

Proč? Klient přece nemá co hrabat na atributy objektu. Má být zapouzřený.

 ??? Klient (napr. moje stranka) si zazada o tweet uzitim nejake knihovny, dostane tweet instanci a jak z ni vybali ty privatni data bez getteru? Nebo jako tweet trida z knihovny treti strany se bude umet zobrazit v me aplikaci? Co si znovu ctu vase odpovedi, tak to na mne pusobi, ze neexistuje spravna cesta. Datove objekty nemam pouzit, accessory take ne, mam pouzivat pouze privatni fieldy. Jsem z toho hodne zmateny. Mohu poprosit o vysvetleni na urovni zacatecnika?