Alternativa k Hibernate

BoneFlute

  • *****
  • 1 981
    • Zobrazit profil
Re:Alternativa k Hibernate
« Odpověď #45 kdy: 29. 07. 2018, 19:52:59 »
No ale on má částečně pravdu, overhead při práci s frameworkem může být docela velký, pokud ho člověk opravdu dobře neovládá. Chytrý a zkušený programátor ho sice lépe zvládne, ale to ještě neznamená, že je to ideální situace. Kdo z nás nestrávil x hodin kvůli nějaké chybě v nějaké knihovně?

Je docela zajímavý rozdíl mezi frameworkem a knihovnou. Framework vynucuje určitý styl, špatně se zaměňuje. Knihovna obvykle naopak; používat si ji můžete jak chcete, často jste omezeni prostředky jazyka, můžete ji snáz zaměnit, nebo použávat vícero zároveň. Což má pak samozřejmě vliv na důsledky bugu v takové knihovně či frameworku.


anonym

Re:Alternativa k Hibernate
« Odpověď #46 kdy: 04. 08. 2018, 18:05:03 »
No takže skusil jsem si JAX-RS přes Jersey, stáhnul jsem si obyč hello world appku:

https://maven.java.net/service/local/artifact/maven/redirect?r=releases&g=com.sun.jersey.samples&a=helloworld-webapp&v=1.19.1&c=project&e=zip

a redeploy na Tomcat je za 3-3.5 vteřiny. V porovnání moje appka je redeploynutá za 0.75 vteřiny.

Tohleto to je opravdu do nebe volající a neúnosné. 3.5 vteřiny to je pro počítač věčnost. Co to tam tyvole tak dlouho dělá? Vypočítává to nekonečno vakua? Chápu, že reflexe je pomalá, ale nemůže být přece až takhle pomalá, navíc je tam jen jediný controller s jedinou metodou. Tohleto to je prostě totální shit.

Vidím že pověsti o Javě jsou někdy bohužel pravdivé.

Re:Alternativa k Hibernate
« Odpověď #47 kdy: 04. 08. 2018, 20:10:39 »
No takže skusil jsem si JAX-RS přes Jersey, stáhnul jsem si obyč hello world appku:

https://maven.java.net/service/local/artifact/maven/redirect?r=releases&g=com.sun.jersey.samples&a=helloworld-webapp&v=1.19.1&c=project&e=zip

a redeploy na Tomcat je za 3-3.5 vteřiny. V porovnání moje appka je redeploynutá za 0.75 vteřiny.

Tohleto to je opravdu do nebe volající a neúnosné. 3.5 vteřiny to je pro počítač věčnost. Co to tam tyvole tak dlouho dělá? Vypočítává to nekonečno vakua? Chápu, že reflexe je pomalá, ale nemůže být přece až takhle pomalá, navíc je tam jen jediný controller s jedinou metodou. Tohleto to je prostě totální shit.

Vidím že pověsti o Javě jsou někdy bohužel pravdivé.

Tohle už je čistý trolling. Oboje je java - a pokud vám vadí 3s deploy tak použijte něco jiného, ne? Ať už v javě nebo něčem jiném. Stěžovací témata patří někam do volné diskuze, ne na technické fórum.

anonym

Re:Alternativa k Hibernate
« Odpověď #48 kdy: 04. 08. 2018, 20:50:54 »
Kurvadrát. Za 3.5 vteřiny dpč nabootuje celý Linux! Za 10 vteřin mi do plochy nabootují Windows 10! Ale Spring posraný Boot mi startuje v základu jen s Jersey 4.5 vteřiny!!! Co je to za bordel dpč. A teď jsem zjistil, že ikdyž udělám projekt jen s tou posranou Jersey, tak deploy na Tomcat zabere 3.5 vteřiny. No co to dpč. má být tohleto.

Ale genius Nemecek mi pise, ze si nemam stezovat a mam pouzit neco jineho. A co asi tak jineho nez JAX-RS chceš dpč v Javě používat???

Fakt lidi se prostě spokojií ss kdejakým shitem a ještě tě budou přesvědčovat, jak je to super.

David

Re:Alternativa k Hibernate
« Odpověď #49 kdy: 04. 08. 2018, 21:17:54 »
Vyjadřujete se jako idiot. Jinak Spring Boot aplikace s databázi a webserverem mi startuje 10-20 vteřin a přijde mi to v pořádku ;) Dělat se s tím nic nedá, ale to nevadí, protože jak často asi tu aplikaci spouštíte ;)


anonym

Re:Alternativa k Hibernate
« Odpověď #50 kdy: 04. 08. 2018, 21:37:43 »
Vyjadřujete se jako idiot. Jinak Spring Boot aplikace s databázi a webserverem mi startuje 10-20 vteřin a přijde mi to v pořádku ;) Dělat se s tím nic nedá, ale to nevadí, protože jak často asi tu aplikaci spouštíte ;)

Já se tak vyjadřuju a ty jím zřejmě jsi, jestli ti přijde v pořádku, aby ti pár sraček kódu startovalo 10-20 vteřin. Když pouštíš integrační test, tak to ti taky přijde v pořádku čekat, než ti ten sráč nastartuje? Jó aha, ty vlastně IT něděláš, ty si to totiž testuješ unit testy. Jo aha, jenže ty shitty zabordelené unit testy používat musíš, protože ti to jinak startuje 10-20 vteřin. Typický Javista.

Nejlehčí věc co se dá sehnat je Spark framewrok s jetty. Jenže i ten sráč ebedded jetty startuje 2.5 vteřiny.

Teď jsem si schválně zkusil Golang projekt s restem. Jak dlouho to startuje? Do 50ms to nastartuje a vrátí do prohlížeče hello world! Prostě okamžite! Takhle to má vypadat, konečně se cítím jako člověk.

PS: už se těším až ta Java chcípne, protože tohleto je takový bordel, že si to ani nic jiného nezaslouží. Do te doby ještě posedím v korporátě.

Trollopata

Re:Alternativa k Hibernate
« Odpověď #51 kdy: 04. 08. 2018, 21:59:46 »
Je docela zajímavý rozdíl mezi frameworkem a knihovnou. Framework vynucuje určitý styl, špatně se zaměňuje. Knihovna obvykle naopak; používat si ji můžete jak chcete, často jste omezeni prostředky jazyka, můžete ji snáz zaměnit, nebo použávat vícero zároveň. Což má pak samozřejmě vliv na důsledky bugu v takové knihovně či frameworku.
To také není úplně přesné. Framework také nemusí být nutně invazivní a nemusí nutit do konkrétního stylu, případně může poskytnout více možností, jak něčeho docílit (např. Spring – mohu použít třeba Spring Core k dependency injection, přičemž poskytuje více možností, jak definovat a injektovat beany, pro web už ale nemusím využít Spring MVC, když nechci, a místo toho třeba Vaadin).

Hlavní rozdíl je v tom, že knihovna zpravidla implementuje nějakou úzce specifickou logiku (knihovna pro matematické výpočty, pro přístup k DB, generování obrázků atd.), takže ve vlastní aplikaci nemusím vynalézat kolo. Framework zase poskytuje prostředky pro vytvoření "rámce" (kostry) aplikace. V každé aplikaci pak není třeba znovu psát tentýž "boilerplate" kód a v ideálním případě je možné se věnovat jen business kódu. Framework samozřejmě může poskytovat i různé integrované knihovny.

Re:Alternativa k Hibernate
« Odpověď #52 kdy: 04. 08. 2018, 22:50:26 »
Vyjadřujete se jako idiot. Jinak Spring Boot aplikace s databázi a webserverem mi startuje 10-20 vteřin a přijde mi to v pořádku ;) Dělat se s tím nic nedá, ale to nevadí, protože jak často asi tu aplikaci spouštíte ;)

Já se tak vyjadřuju a ty jím zřejmě jsi, jestli ti přijde v pořádku, aby ti pár sraček kódu startovalo 10-20 vteřin. Když pouštíš integrační test, tak to ti taky přijde v pořádku čekat, než ti ten sráč nastartuje? Jó aha, ty vlastně IT něděláš, ty si to totiž testuješ unit testy. Jo aha, jenže ty shitty zabordelené unit testy používat musíš, protože ti to jinak startuje 10-20 vteřin. Typický Javista.

Nejlehčí věc co se dá sehnat je Spark framewrok s jetty. Jenže i ten sráč ebedded jetty startuje 2.5 vteřiny.

Teď jsem si schválně zkusil Golang projekt s restem. Jak dlouho to startuje? Do 50ms to nastartuje a vrátí do prohlížeče hello world! Prostě okamžite! Takhle to má vypadat, konečně se cítím jako člověk.

PS: už se těším až ta Java chcípne, protože tohleto je takový bordel, že si to ani nic jiného nezaslouží. Do te doby ještě posedím v korporátě.

Pokud potřebujete start do 50ms tak použijte ten Golang a máte po starosti, ne? Jinak mě startuje Spark s embedded Jetty 300ms. Ale podle mě skutečně trollíte a bavíte se tím.

anonym

Re:Alternativa k Hibernate
« Odpověď #53 kdy: 04. 08. 2018, 22:56:25 »
Zápis do deníčku:

Milý deničku. Po předchozích nezdarech a rozčarování z pomalých startů java aplikací jsem ještě jednou, naposledy, zkusil dát Javě šanci, a změřit čas, za který se rozjede Vert.x, který má být v současnosti snad jeden z nejrychlejších http serverů:

Kód: [Vybrat]
public class HelloWorldEmbedded {

  public static void main(String[] args) {
    long timer = System.currentTimeMillis();
    // Create an HTTP server which simply returns "Hello World!" to each request.
    Vertx.vertx().createHttpServer().requestHandler(req -> req.response().end("Hello World!")).listen(8080);

    timer = System.currentTimeMillis() - timer;
    System.out.println(timer);
  }

}

Milý Deníčku. Ten sráč startoval celých 2400ms:

Kód: [Vybrat]
2391

Píšu výsledek tohoto benchmarku tobě, Deníčku, protože ty nejsi takový idiot abys mi na to řekl, že tento způsob benchmarkování není přesný a nemá vypovídající hodnotu.

anonym

Re:Alternativa k Hibernate
« Odpověď #54 kdy: 04. 08. 2018, 22:58:57 »
Vyjadřujete se jako idiot. Jinak Spring Boot aplikace s databázi a webserverem mi startuje 10-20 vteřin a přijde mi to v pořádku ;) Dělat se s tím nic nedá, ale to nevadí, protože jak často asi tu aplikaci spouštíte ;)

Já se tak vyjadřuju a ty jím zřejmě jsi, jestli ti přijde v pořádku, aby ti pár sraček kódu startovalo 10-20 vteřin. Když pouštíš integrační test, tak to ti taky přijde v pořádku čekat, než ti ten sráč nastartuje? Jó aha, ty vlastně IT něděláš, ty si to totiž testuješ unit testy. Jo aha, jenže ty shitty zabordelené unit testy používat musíš, protože ti to jinak startuje 10-20 vteřin. Typický Javista.

Nejlehčí věc co se dá sehnat je Spark framewrok s jetty. Jenže i ten sráč ebedded jetty startuje 2.5 vteřiny.

Teď jsem si schválně zkusil Golang projekt s restem. Jak dlouho to startuje? Do 50ms to nastartuje a vrátí do prohlížeče hello world! Prostě okamžite! Takhle to má vypadat, konečně se cítím jako člověk.

PS: už se těším až ta Java chcípne, protože tohleto je takový bordel, že si to ani nic jiného nezaslouží. Do te doby ještě posedím v korporátě.

Pokud potřebujete start do 50ms tak použijte ten Golang a máte po starosti, ne? Jinak mě startuje Spark s embedded Jetty 300ms. Ale podle mě skutečně trollíte a bavíte se tím.

Děláš si zadek???? Jak jenom 300ms, mě to startuje 2.5 vteřiny!!! Co máš za stroj? Já mám notebookové i7 dvoujádro, ssd a 16gb ram.

Ty vole jestli zjistím, že mi to dělá antivir něbo nějaký podobný shit, tak asi budu muset obrátit svou zlobu zcela jinam.

none_

Re:Alternativa k Hibernate
« Odpověď #55 kdy: 04. 08. 2018, 23:55:26 »
Predppkladam, ze jste troll, ale je miziva šance, ze si tohle precte nekdy nekdo, kdo to bude opravdu resit.

Kazdy framework ma nejaky overhead. Ukazte mi jazyk, ve kterem startuje aplikace stejne rychle s frameworkem jako s jednim servletem. Zadny takovy neexistuje. Framework neslibuje rychly start, ale mnozinu nastroju, ktere zlepsi vasi celkovou produktivitu, prehlednost kodu, vyresi klicove oblasti.

Pokud delate na projektu, kde tyto vyhody nevyuzijete, asi nemate dostatecne velky projekt. To nevadi. Pouzijte si neco jineho. Nebo si to klidne napraste jako 20 IFu za sebou.

Spring byl primarne navrzen jako nahrada za JavaEE. Takze se pouziva na vyvoj aplikaci, kde vas trápí jine problemy nez to, jestli server nastartuje za 0s, 2s nebo 2 min.

Podobny pribeh je Hibernate. Ocividne ho neznate, nechapete a neumite pouzivat. To nevadi, nemusite ho pouzivat. Klidne si pouzivejte JDBC. Co na tom, ze ten vas kod na namapovani jednoho objektu prochazi resultset 2x a jeste vam to kazda zmena v DB rozbije (protoze poradi sloupcu).

Hodne stesti a preju mnoho dlouhych noci stravenych hledanim chyb v tom vasem projektu (hlavne pokud na tom nekdy bude delat vic nez jeden clovek).

Re:Alternativa k Hibernate
« Odpověď #56 kdy: 05. 08. 2018, 01:00:43 »
Vyjadřujete se jako idiot. Jinak Spring Boot aplikace s databázi a webserverem mi startuje 10-20 vteřin a přijde mi to v pořádku ;) Dělat se s tím nic nedá, ale to nevadí, protože jak často asi tu aplikaci spouštíte ;)

Já se tak vyjadřuju a ty jím zřejmě jsi, jestli ti přijde v pořádku, aby ti pár sraček kódu startovalo 10-20 vteřin. Když pouštíš integrační test, tak to ti taky přijde v pořádku čekat, než ti ten sráč nastartuje? Jó aha, ty vlastně IT něděláš, ty si to totiž testuješ unit testy. Jo aha, jenže ty shitty zabordelené unit testy používat musíš, protože ti to jinak startuje 10-20 vteřin. Typický Javista.

Nejlehčí věc co se dá sehnat je Spark framewrok s jetty. Jenže i ten sráč ebedded jetty startuje 2.5 vteřiny.

Teď jsem si schválně zkusil Golang projekt s restem. Jak dlouho to startuje? Do 50ms to nastartuje a vrátí do prohlížeče hello world! Prostě okamžite! Takhle to má vypadat, konečně se cítím jako člověk.

PS: už se těším až ta Java chcípne, protože tohleto je takový bordel, že si to ani nic jiného nezaslouží. Do te doby ještě posedím v korporátě.

Pokud potřebujete start do 50ms tak použijte ten Golang a máte po starosti, ne? Jinak mě startuje Spark s embedded Jetty 300ms. Ale podle mě skutečně trollíte a bavíte se tím.

Děláš si zadek???? Jak jenom 300ms, mě to startuje 2.5 vteřiny!!! Co máš za stroj? Já mám notebookové i7 dvoujádro, ssd a 16gb ram.

Ty vole jestli zjistím, že mi to dělá antivir něbo nějaký podobný shit, tak asi budu muset obrátit svou zlobu zcela jinam.

Mám i7-2860QM, 16GB RAM a SSD, testuju takhle:

Kód: [Vybrat]
import static spark.Spark.*;
public class Run {
    public static void main(String[] args) {
        get("/hello", (req, res) -> "Hello World");
    }
}

Kód: [Vybrat]
java -cp .:javax.servlet-api-4.0.1.jar:jetty-client-9.4.12.RC1.jar:jetty-http-9.4.12.RC1.jar:jetty-io-9.4.12.RC1.jar:jetty-security-9.4.12.RC1.jar:jetty-server-9.4.12.RC1.jar:jetty-servlet-9.4.12.RC1.jar:jetty-util-9.4.12.RC1.jar:jetty-webapp-9.4.12.RC1.jar:jetty-xml-9.4.12.RC1.jar:slf4j-api-1.7.25.jar:slf4j-jdk14-1.7.25.jar:slf4j-simple-1.7.25.jar:spark-core-2.7.2.jar:websocket-api-9.4.12.RC1.jar:websocket-client-9.4.12.RC1.jar:websocket-common-9.4.12.RC1.jar:websocket-server-9.4.12.RC1.jar:websocket-servlet-9.4.12.RC1.jar Run
(...)
INFO: == Spark has ignited ...
Srp 05, 2018 12:54:57 DOP. spark.embeddedserver.jetty.EmbeddedJettyServer ignite
(...)
Srp 05, 2018 12:54:57 DOP. org.eclipse.jetty.server.Server doStart
INFO: Started @345ms

Včetně kompilace toho Run.java to trvá cca 700ms.

andy

Re:Alternativa k Hibernate
« Odpověď #57 kdy: 05. 08. 2018, 03:46:48 »
Znamy problem je resolve localhostu cez dns vo windows co sposobuje pomaly start serverovych apiek. Treba si pridat do hosts.
Tie procky sa v tych bankach stale pouzivaju a implementuju, nie je to ziadny archaizmus a pouzivaju sa z rovnakeho dovodu ako pouzivate v jave interfacy.
Co sa klasickeho springu tyka, je to moloch a křáp a nevidim dovod to dnes pouzit. Bolo to inovativne vo svojej dobe, ale motivacia pouzit to na novy projekt je nulova.
To s tym golangom je pravda. Je to rychle ako sracka a usporne aj pri zlozitejsej apke. Nestopoval som ako dlho startuju frameworky, ale ked som to skusal nasekal som tam zavislosti od vymyslu sveta a ziadne spomalenie sa nekonalo. Tam je to totiz staticky kompilovane, ma to vstavane performance testy a ta kultura je taka, ze kazdy tuninguje co to da.. Ale ten jazyk mi ako javistovi dost nevyhovuje.

anonym

Re:Alternativa k Hibernate
« Odpověď #58 kdy: 05. 08. 2018, 10:25:23 »
No zkusil jsem ten Vert.x (jede to nad Netty) rozjet jak na "localhost", tak na "127.0.0.1" a žádný rozdíl se nedostavil. Používám Windows 7, zkoušel jsem porovnávat perfromance s Linuxem při startu aplikací, ale není to lepší o více než 10%. Nicméně mám takovou teorii, že Oracle začal těžit na mém JVM Bitcoiny.

Jenže problém je, že v Javě se bez Springu nebo jinému Servlet sráči neobejdeš a to převážně kvůli SOAP. A když už tam teda máš JAX-WS, tak potom tam chceš samozřejmě mít i JAX-RS. A jsi v 3,14či. Ve frameworku jako je Spark prostě SOAP nedáš. Na SOAP navíc prostě už potřebuješ reflexi a anotace, protože musíš mít z čeho vygenerovat WSDL, s tím se manuálně štvát nechceš.

Jo a ten Spark mi nastartuje s Jetty za 1 vteřinu. Ale štve mě že Vert.x nad Netty za 2.5 vteřiny. A mimochodem, ono i ta 1 vteřina je hodně, když to porovnám s Go. Teď se to zdá málo, ale jasně to ukazuje, jaký je to pomalý shit, ono se to totiž nastřádá.

Naštěstí alespoň relativně je na tom Java dobře, protože pořád je násobně rychlejší než Python a je v ní mnohem větší pořádek než v Node.js. S .NETem to bude +- srovnatelné, ale tipnu si, že .NET má méně bugů.

none_

Re:Alternativa k Hibernate
« Odpověď #59 kdy: 05. 08. 2018, 12:29:07 »
Mel byste si hlavne ujasnit, co chcete delat. V kazdem vasem prispevku to vypada, ze zacinate jinej projekt.