Používáte ve firmě JRebel?

anonym

Používáte ve firmě JRebel?
« kdy: 04. 03. 2017, 21:51:54 »
Zdravím,
používáte ve firmě JRebel? Nebo Hotswap Agent?

Pokud používáte Hotswap Agent, tak ten nemá např. podporu pro MyBatis a v rámci Java EE kupříkladu nemá dodělanou podporu pro JSF. Oproti tomu JRebel zdá se funguje vždy a out od box.



Lol Phirae

Re:Používáte ve firmě JRebel?
« Odpověď #1 kdy: 05. 03. 2017, 01:13:07 »
Ententýky dva špendlíky bzum!  8)

asdad

Re:Používáte ve firmě JRebel?
« Odpověď #2 kdy: 05. 03. 2017, 13:24:08 »
chcel by som ale je to strasne drahe

Franta <xkucf03/>

Re:Používáte ve firmě JRebel?
« Odpověď #3 kdy: 05. 03. 2017, 14:31:23 »
Nějak není důvod. Píšeme aplikace, které jsou přenasazené během okamžiku a v lepším případě jsou modulární, takže člověk přenasadí jen tu část, kterou změnil. A i u těch klasických WARek umí aplikační server zachovat stav, takže to člověka neodhlásí a dělat úpravy v běžící aplikaci jde celkem v pohodě. A pak je tu klasický debugger a Netbeans a hot swap (tím jdou sice aktualizovat jen některé části kódu, ale jak jsem psal, ani přenasazení aplikace není žádná tragédie).

A taky dobré se trochu zamyslet nad návrhem aplikace – ne všechno se musí ladit/vyvíjet na běžící aplikaci – pokud je navržená dobře, tak toho spoustu odladíš jen proti jednotkovým testům.

anonym

Re:Používáte ve firmě JRebel?
« Odpověď #4 kdy: 05. 03. 2017, 14:59:48 »
Nějak není důvod. Píšeme aplikace, které jsou přenasazené během okamžiku a v lepším případě jsou modulární, takže člověk přenasadí jen tu část, kterou změnil. A i u těch klasických WARek umí aplikační server zachovat stav, takže to člověka neodhlásí a dělat úpravy v běžící aplikaci jde celkem v pohodě. A pak je tu klasický debugger a Netbeans a hot swap (tím jdou sice aktualizovat jen některé části kódu, ale jak jsem psal, ani přenasazení aplikace není žádná tragédie).

A taky dobré se trochu zamyslet nad návrhem aplikace – ne všechno se musí ladit/vyvíjet na běžící aplikaci – pokud je navržená dobře, tak toho spoustu odladíš jen proti jednotkovým testům.

1. Co když použijete Spring Boot a k tomu třeba Jersey a Wicket? Redeploy Springu, i s dev-tools, trvá dost dlouho. Dost dlouho = více než 10 vteřin. I když to budeš mít rozdělené do modulů, budue ti Spring dost dlouho strartovat.

Pokud použiješ JSF, jak co když si musíš hrát s Managed Beanou a jsf šablonou? Co když tam budeš mít juniory, kteří se to učí a nenapíšou něco hned, aniž by viděli výsledek - necháš je to zas a znova re-deployovat?


javaman ()

Re:Používáte ve firmě JRebel?
« Odpověď #5 kdy: 05. 03. 2017, 15:49:57 »
Nějak není důvod. Píšeme aplikace, které jsou přenasazené během okamžiku a v lepším případě jsou modulární, takže člověk přenasadí jen tu část, kterou změnil. A i u těch klasických WARek umí aplikační server zachovat stav, takže to člověka neodhlásí a dělat úpravy v běžící aplikaci jde celkem v pohodě. A pak je tu klasický debugger a Netbeans a hot swap (tím jdou sice aktualizovat jen některé části kódu, ale jak jsem psal, ani přenasazení aplikace není žádná tragédie).

A taky dobré se trochu zamyslet nad návrhem aplikace – ne všechno se musí ladit/vyvíjet na běžící aplikaci – pokud je navržená dobře, tak toho spoustu odladíš jen proti jednotkovým testům.

1. Co když použijete Spring Boot a k tomu třeba Jersey a Wicket? Redeploy Springu, i s dev-tools, trvá dost dlouho. Dost dlouho = více než 10 vteřin. I když to budeš mít rozdělené do modulů, budue ti Spring dost dlouho strartovat.

Pokud použiješ JSF, jak co když si musíš hrát s Managed Beanou a jsf šablonou? Co když tam budeš mít juniory, kteří se to učí a nenapíšou něco hned, aniž by viděli výsledek - necháš je to zas a znova re-deployovat?

Spring Boot tohle normálně umí, takže nestartuje celý. Nevím, proč bys používal Spring a Jersey. Pokud ti to trvá dlouho, tak kup lepší stroj a nebo nenasazuj tak často. JRebel měl smysl tak před 10 lety, dnes je v podstatě k ničemu, ale prodat ho potřebují, že jo.

Pokud použiješ JSF, tak je to tvůj problém. Dneska to žádný smysl nemá. Pokud junioři dělají redeploy, tak jejich čas je pořád tak levný, že ho můžou dělat často.

Co vlastně teda řešíš?

skybber

Re:Používáte ve firmě JRebel?
« Odpověď #6 kdy: 08. 03. 2017, 12:56:39 »
Používame poslední verzi HotswapAgent a není tak uplně pravda, že se to nevyplatí na rychle startující projekty. I zde se člověk dostane do situace, kdy například hledá chybu, která vznikla v nějaké předchozí revizi a kombinace dcevm+git-bisect je killer fičura. Nehledě na to, že si člověk velmi snadno zvykne na to nerestartovat JVM celý den...

skybber

Re:Používáte ve firmě JRebel?
« Odpověď #7 kdy: 08. 03. 2017, 13:50:26 »
Přidám ještě něco k otázce, jestli má JRebel/HotswapAgent v dnešní době rychlých restartů operací smysl nebo ne. Restarty jsou věc, na kterou si člověk zvykne a pak to bere jako fakt, něco, s čím se nedá nic moc dělat. Na druhou stranu, většina z nás ma při práci zapnutý SQL client nebo browser. Asi bysme těžko akceptovali to, že se musí SQL client/browser s každým novým SQL dotazem/URL přestartovat...

javaman ()

Re:Používáte ve firmě JRebel?
« Odpověď #8 kdy: 08. 03. 2017, 16:44:20 »
Spíše si patlalové zvyknou, že se aplikace nevypíná a ladí se za chodu. To je dost špatný zvyk, který speciálně u Javy nemá co dělat.

Takže ty ten SQL client/browser zkompiluješ a on rovnou nahodí novou verzi bez restartu? Nebo co mi na tom uniká?

skybber

Re:Používáte ve firmě JRebel?
« Odpověď #9 kdy: 08. 03. 2017, 17:09:42 »
Proč by měly být úpravy tříd nad běžícím JVM špatným zvykem? Speciálně u aplikací s komplikovaným stavem,  jako jsou některé aplikace v průmyslové automatizaci nebo hry (Minecraft) to ušetří fůru času. Na REST server aplikaci v Jersey samozřejmě ušetříš času méně, ale přece to nebudš jak lopata restartovat, když máš k dispozici nástroj, co to umí.

javaman ()

Re:Používáte ve firmě JRebel?
« Odpověď #10 kdy: 08. 03. 2017, 18:55:24 »
Jak už tu někdo psal, na složité stavy máš testy, takže není důvod.

Minecraft může být pěkná patlanice a nic to neříká o tom, jestli je to obecně potřeba.

Spring Boot to právě umí, takže nevím, proč bych používal lopaťácký nástroj.

Celkově mi to přijde dost k ničemu. Možná na "agilní" vývoj, kdy nikdo neví, co se dělá a pak to může být cool.

skybber

Re:Používáte ve firmě JRebel?
« Odpověď #11 kdy: 08. 03. 2017, 19:14:23 »
Minecraft může být pěkná patlanice a nic to neříká o tom, jestli je to obecně potřeba.

Spring Boot to právě umí, takže nevím, proč bych používal lopaťácký nástroj.

SpringBoot umí to co mu dovolí jvmtiredefine (hotswap) v JVM  a ta je standardně limitována na změnu uvnitř metod. Změny signatury třídy umí, co vím, jen dcevm.

javaman ()

Re:Používáte ve firmě JRebel?
« Odpověď #12 kdy: 08. 03. 2017, 19:29:57 »
Přesně tak. Takže normálně to nepotřebuju vůbec, ale pokud už dělám na Bootu, tak ho můžu využít. Prostě zbytečný a stejně se tak nevyvíjí v Javě.

Třeba by ti víc seděl Smalltalk.

anonym

Re:Používáte ve firmě JRebel?
« Odpověď #13 kdy: 08. 03. 2017, 19:47:34 »
Jestli neznáš javamana, tak ti ho doporučuju ignorovat, je to psychicky narušený jedinec.

trr

Re:Používáte ve firmě JRebel?
« Odpověď #14 kdy: 08. 03. 2017, 19:49:36 »
Nepoužíváme, u nás Javu máme jenom ke strašení programátorů.