Přepsání serveru v Javě

Re:Přepsání serveru v Javě
« Odpověď #105 kdy: 21. 06. 2017, 17:11:00 »
[V pohodě. Inference je v PHP běžná, jen jsem nevěděl, že se dostala už i do Javy.
Type inference v PHP? O tom bych rád slyšel detaily...


BoneFlute

  • *****
  • 1 842
    • Zobrazit profil
Re:Přepsání serveru v Javě
« Odpověď #106 kdy: 21. 06. 2017, 19:43:50 »
[V pohodě. Inference je v PHP běžná, jen jsem nevěděl, že se dostala už i do Javy.
Type inference v PHP? O tom bych rád slyšel detaily...
Já si zase počkám, zda bude Kit taky takovej frajer jako Nekola, a uzná chybu.

Re:Přepsání serveru v Javě
« Odpověď #107 kdy: 21. 06. 2017, 19:55:00 »
Já si zase počkám, zda bude Kit taky takovej frajer jako Nekola, a uzná chybu.

Koukam, ze latka na to byt frajer je v posledni dobe dost nizko :-D

BoneFlute

  • *****
  • 1 842
    • Zobrazit profil
Re:Přepsání serveru v Javě
« Odpověď #108 kdy: 21. 06. 2017, 19:56:31 »
A co třeba tohle?
Kód: [Vybrat]
val foo = (cond) ? new Foo() : new Bar();
foo.method();

Jak v takovém případě zafunguje inference? Bude hledat společná rozhraní obou tříd?

A co bys tak rekl? Jaky typ ma tenhle vyraz (cond) ? new Foo() : new Bar();? Nehledej slozitost, kde neni. Nebo se to alespon douc.

Tak já bych řekl, že buď vezme největší společný rozhraní, nebo spíš chcípne, protože je to otevřené. (Ale čerpám na základě zkušeností z Haskellu, Java tu interferenci nemá.)

Ale když by se to napsalo takhle:
Kód: [Vybrat]
void foo(Bool cond) {
  val foo = (cond) ? new Foo() : new Bar();
  foo.method();
}
Tak má všechny potřebné informace co potřebuje, a mohlo by to projít. (Když by to uměla.)

zboj

  • *****
  • 1 507
    • Zobrazit profil
    • E-mail
Re:Přepsání serveru v Javě
« Odpověď #109 kdy: 21. 06. 2017, 23:07:58 »
A co třeba tohle?
Kód: [Vybrat]
val foo = (cond) ? new Foo() : new Bar();
foo.method();

Jak v takovém případě zafunguje inference? Bude hledat společná rozhraní obou tříd?

A co bys tak rekl? Jaky typ ma tenhle vyraz (cond) ? new Foo() : new Bar();? Nehledej slozitost, kde neni. Nebo se to alespon douc.

Tak já bych řekl, že buď vezme největší společný rozhraní, nebo spíš chcípne, protože je to otevřené. (Ale čerpám na základě zkušeností z Haskellu, Java tu interferenci nemá.)
Typicky se bere prostě supremum, pokud typový systém tvoří úplný svaz. Nebo to je prostě chyba, když se výsledný typ neuvede explicitně, záleží na jazyku. Haskell je v tomto trochu specifický, když má de facto jen rozhraní.


BoneFlute

  • *****
  • 1 842
    • Zobrazit profil
Re:Přepsání serveru v Javě
« Odpověď #110 kdy: 21. 06. 2017, 23:47:24 »
A co třeba tohle?
Kód: [Vybrat]
val foo = (cond) ? new Foo() : new Bar();
foo.method();

Jak v takovém případě zafunguje inference? Bude hledat společná rozhraní obou tříd?

A co bys tak rekl? Jaky typ ma tenhle vyraz (cond) ? new Foo() : new Bar();? Nehledej slozitost, kde neni. Nebo se to alespon douc.

Tak já bych řekl, že buď vezme největší společný rozhraní, nebo spíš chcípne, protože je to otevřené. (Ale čerpám na základě zkušeností z Haskellu, Java tu interferenci nemá.)
Typicky se bere prostě supremum, pokud typový systém tvoří úplný svaz. Nebo to je prostě chyba, když se výsledný typ neuvede explicitně, záleží na jazyku. Haskell je v tomto trochu specifický, když má de facto jen rozhraní.
Stačilo říct: "jo" :-)

zboj

  • *****
  • 1 507
    • Zobrazit profil
    • E-mail
Re:Přepsání serveru v Javě
« Odpověď #111 kdy: 22. 06. 2017, 01:14:02 »
A co třeba tohle?
Kód: [Vybrat]
val foo = (cond) ? new Foo() : new Bar();
foo.method();

Jak v takovém případě zafunguje inference? Bude hledat společná rozhraní obou tříd?

A co bys tak rekl? Jaky typ ma tenhle vyraz (cond) ? new Foo() : new Bar();? Nehledej slozitost, kde neni. Nebo se to alespon douc.

Tak já bych řekl, že buď vezme největší společný rozhraní, nebo spíš chcípne, protože je to otevřené. (Ale čerpám na základě zkušeností z Haskellu, Java tu interferenci nemá.)
Typicky se bere prostě supremum, pokud typový systém tvoří úplný svaz. Nebo to je prostě chyba, když se výsledný typ neuvede explicitně, záleží na jazyku. Haskell je v tomto trochu specifický, když má de facto jen rozhraní.
Stačilo říct: "jo" :-)
Nestačilo, protože to chtělo opravit a upřesnit.

BoneFlute

  • *****
  • 1 842
    • Zobrazit profil
Re:Přepsání serveru v Javě
« Odpověď #112 kdy: 22. 06. 2017, 02:11:57 »
A co třeba tohle?
Kód: [Vybrat]
val foo = (cond) ? new Foo() : new Bar();
foo.method();

Jak v takovém případě zafunguje inference? Bude hledat společná rozhraní obou tříd?

A co bys tak rekl? Jaky typ ma tenhle vyraz (cond) ? new Foo() : new Bar();? Nehledej slozitost, kde neni. Nebo se to alespon douc.

Tak já bych řekl, že buď vezme největší společný rozhraní, nebo spíš chcípne, protože je to otevřené. (Ale čerpám na základě zkušeností z Haskellu, Java tu interferenci nemá.)
Typicky se bere prostě supremum, pokud typový systém tvoří úplný svaz. Nebo to je prostě chyba, když se výsledný typ neuvede explicitně, záleží na jazyku. Haskell je v tomto trochu specifický, když má de facto jen rozhraní.
Stačilo říct: "jo" :-)
Nestačilo, protože to chtělo opravit a upřesnit.
Tak to udělej. Vždyť jsi řekl tu samou větu co já, jen jsi použil cizí termity :-D

Kit

Re:Přepsání serveru v Javě
« Odpověď #113 kdy: 22. 06. 2017, 08:56:26 »
[V pohodě. Inference je v PHP běžná, jen jsem nevěděl, že se dostala už i do Javy.
Type inference v PHP? O tom bych rád slyšel detaily...

Vím, že se tomu tak u dynamicky a slabě typovaných jazyků neříká, ale stejně jsem byl zvědav, kdo se ozve.

Vasek

Re:Přepsání serveru v Javě
« Odpověď #114 kdy: 23. 06. 2017, 01:02:58 »
Pokud se vylozejne nenudist tak nic neprepisovat. Zabere to spoustu casu a vysledek bude podobny. Pohraj si s profilerem (https://visualvm.github.io/) a zjisti v cem je problem. Pro paralelni zpracovani requestu pouzij ThreadPool:
https://docs.oracle.com/javase/8/docs/api/java/util/concurrent/ThreadPoolExecutor.html
https://www.javacodegeeks.com/2013/01/java-thread-pool-example-using-executors-and-threadpoolexecutor.html

Az to bude fungovat jak ma, tak se muzes pustit do prepsani.

andy

Re:Přepsání serveru v Javě
« Odpověď #115 kdy: 23. 06. 2017, 11:25:59 »
Tak to mas nieco fakt spatne, lebo s undertow som dal nejako 20000/s (SEKUNDU) ani som nic neladil a uzke hrdlo boli asi nastavenia ab. Go bol na tom velmi podobne a node.js ostalo niekde v prachu.

zboj

  • *****
  • 1 507
    • Zobrazit profil
    • E-mail
Re:Přepsání serveru v Javě
« Odpověď #116 kdy: 23. 06. 2017, 12:21:53 »
Tak to mas nieco fakt spatne, lebo s undertow som dal nejako 20000/s (SEKUNDU) ani som nic neladil a uzke hrdlo boli asi nastavenia ab. Go bol na tom velmi podobne a node.js ostalo niekde v prachu.
Go by mělo být v tomto optimální, je to bare bones implementace nad nejnižší možnou vrstvou (při zachování bezpečnosti) a má rychlé algoritmy pro HTTPS.

Aoidhghean

Re:Přepsání serveru v Javě
« Odpověď #117 kdy: 03. 09. 2017, 15:46:59 »
Go bol na tom velmi podobne a node.js ostalo niekde v prachu.
  Možná proto i sám tvůrce Node.js opustil svůj projekt a přešel na Go (schválně kdo jako první najde referenci).