- A hozzászóláshoz be kell jelentkezni
Hozzászólások
Aranyos meg örülök hogy szivárognak a funkcionális programozásból a dolgok a mainstreambe de a JVMre ott van már a Scala (meghát a Clojure) most a redhat is belefog és lefejleszt egy új fordítót, elkészít hozzá egy újabb STLt... kicsit pazarlásnak érzem.
- A hozzászóláshoz be kell jelentkezni
+1
Én is jobban örülnék, ha egy komoly cég inkább a Scala mögé állna.
- A hozzászóláshoz be kell jelentkezni
En meg annak, ha az annotaciokat es az XML-programozast vegre ki lehetne dobni a kukaba, mert lenne egy alap JVM nyelv, ami az ezek altal implementalt dolgokat (lasd Spring) elegansan megvalositana. Scala vagy Clojure vagy akarmi, innentol mar tulajdonkeppen mindegy... ez egy legalabb akkora ugras lenne, mint volt anno a GC.
- A hozzászóláshoz be kell jelentkezni
-1, annotaciok FTW
- A hozzászóláshoz be kell jelentkezni
FTW WTF? ;-)
- A hozzászóláshoz be kell jelentkezni
Az annotáció jó dolog. Olyan kód-metaadat, ami kód. Ha egy programokód beszél önmagáról, az jó dolog.
- A hozzászóláshoz be kell jelentkezni
Persze, hogy jo dolog az annotacio - ha arra hasznalod, amire valo. Arra nem valo, hogy a nyelvi hianyossagokat probaljuk meg betomkodni vele.
- A hozzászóláshoz be kell jelentkezni
Nem is arra valo. A sok XML-alapu kod-metaadatot helyettesiti. Nem tudom, miert gondolod, hogy nyelvi hianyossagokat potol. Es ha igy gondolod, melyik hianyossagokat potolja, amelyek mas nyelvben meg vannak valositva?
- A hozzászóláshoz be kell jelentkezni
Egy példát tudnál írni?
- A hozzászóláshoz be kell jelentkezni
Mondjuk nekem ez kifejezetten tetszik
- A hozzászóláshoz be kell jelentkezni
A kerdeses library modositasai miat a futo kod es a verzio koveto rendszerben levo kod mar nem lesz azonos. Amint egy nem trivalis, azaz enterprise meretu project Productionbe kerul. Ez mar egy eleg jelentos hatrany tud lenni, mivel a stack trace alapjan meg nehezebb lesz megtalalni a hibat, mivel a kerdeses reszek az eredeti forrasban mar nem fognak letezni.
- A hozzászóláshoz be kell jelentkezni
sima getter/setter-eket hegeszt át...
- A hozzászóláshoz be kell jelentkezni
A kerdes project nem csak getter/setter athegesztesre kepes. Tovaba semmi garancia nincsen arra, hogy a generalt kodok nem toljak-e a tobbi kod sorrendjet. Az igy kapot stack trace egyertelmusege ezert nem garantalt.
- A hozzászóláshoz be kell jelentkezni
Ezen az alapon ne használják springet, meg hibernate-et se enterspájz méretű projectben, pláne nehogy productionbe kerüljön. tele leszel olyan cglib-es proxy-kkal meg tsaival, hogy öröm nézni a többszáz elemű stacktrace-t, pláne ha hatszor újradobott exception-ről van szó.
Nem a lombok lesz egy ekkora projektben a jelentős hátrány, hanem a hájbernáte.
Amúgy meg a VCS-el mi a gond???
- A hozzászóláshoz be kell jelentkezni
A VCS sel semmi, mindosze a Lombok modositasa utan a futo kod es a VCSben levo mar nem lesz azonos igy a debugolas jelentos mertekben megnehezul.
A Hibernate es a Spring eseteben nem a tenyleges foraskodot irodik at.
Ha mar minden aron a getter/setter boilerplatetol akarunk megszbadulni, akkor mar inkabb aspektekkel. Spring Roo-ba van ilyen kepeseg, bar nem trivialis projektek eseten szinte megkerdojelezheto a hasznalhatosaga.
A Hiberante eseten kulonben sem az altala legyartott CGLIBes proxyik leszenek a fo gond. Komeneted alapjan valoszinuleg volt hozza szerencsed.
- A hozzászóláshoz be kell jelentkezni
No, egyrészt még nem debugoltam lombok-os osztályt, így nem tudom 100%-osan védeni, bár nem egy kispiskóta eszközről van szó, ha megoldották, hogy az eclipse-be épkézláb módon integrálódjon (outline, assist ...), akkor elég nagy bizonyossággal merem azt gondolni, hogy a nem generált metódusok kivételével ugyanúgy debugolható. A generált metódusokkal kapcsolatban meg annyit, hogy még nem futottam bele olyan hibába, ahol az ilyen egyszerű getter/setter lett volna a büdös, szóval... eddigi tapasztalásom alapján merném használni a jelenlegi projektjeinkben is. Persze alapfeltétel, hogy mindenki tudja használni, mert egyébként nem ér semmit.
A hibernate/spring páros esetében ellenben volt már rá példa, hogy debugolás során egy bean-nek még az id-je sem került elő egyáltalán. Én ezen a ponton már más haját téptem, de gondolom ismerős a szitu. A proxykkal kapcsolatban az a meglátásom, hogy amíg 1-2 van két réteg közt, addig még valamennyire elviselhető, de ha mindenféle AOP-áldással, JTA-val megtűzdelve próbálsz egy kódot vizsgálni, egyre inkább a nullához konvergál a support hatékonysága.
Mindezt csak azért mondom, mert szerintem nem a lombok fogja derékba törni egy nagyobb projekt támogatását. Vannak erre a feladatra sokkal komolyabb és elterjedtebb aspiránsok.
- A hozzászóláshoz be kell jelentkezni
A fo gond nem is az extra getter/setter, hanem a megvaltozott sor szamok. Ez a stack tracek olvashatosagat jelentosen ronthatja. Bar ha ezeken sporolunk, akkor lesz ott mas magic, ami ennel sokkal rosszabb.
JTA+JPA(Hibernate)+Spring, na attol garantalt az elme baj. Foleg, ha meg nincs "szabad" strukturalis kontroll a DB felet es van backward compatibility kovetelmeny. Ha ezt meg megtuzdeljuk halado Springes featurokkel, pl autowire, massziv konfiguracio kategoriajaba tartozo annotacio hegyekkel, akkor aztan kesz az elmebaj.
Minnel tobb a magic annal gyorsabb (kezdetben) implementalni, de annal nehezebb lesz kibogozni, hogy mi ment tonkre.
Nalunk szerencsere idejeben megszbadultunk a Hibernatetol, helyet van "aranyos" iBatis. AOP csak kulon engedelyel, ha nincs mas megoldas. Springes annotaciok a SpringMVC-n kivul minden mashonnet kitiltva.
- A hozzászóláshoz be kell jelentkezni
Na, most örülök, hogy nem vezettük be a Hibernate-et, meg a többi varázslatot. Most nagyon utálnánk magunkat :D
iBatis: ezzel kapcsolatban mik a tapasztalatok?
- A hozzászóláshoz be kell jelentkezni
"Na, most örülök, hogy nem vezettük be a Hibernate-et, meg a többi varázslatot. Most nagyon utálnánk magunkat :D"
Sokan a világban azért sikeresen használják a Hibernate-t. Nem biztos, hogy azoknak van igazuk, akiknek ez nem sikerült.
- A hozzászóláshoz be kell jelentkezni
Ezzel a kijelentéssel azért óvatosabban bánnék. Nálunk pl rengeteg dolog "tökéletesen működik" hibernate alapon. Ezt a kliensek "tudják", a kommunikáció ebből a szempontból tökéletesen működik. Az viszont már csak belső igazság, hogy rengeteget szopunk miatta/vele. Nem akarnám ezt extrapolálni a világmindenségre, de pár helyről hallottam már vissza hasonló dolgokat, ami miatt értetlenül állok azelőtt a jelenség előtt, hogy mindenki lelkes ovulációban kitörve meg van veszve, hogy mennyire jó és tudományos, hogy a projektjeikben hibernate-alapú a perzisztencia réteg.
Továbbra is csak ismételni tudom azt a kicsit módosított Murphy-tételt, miszerint a hibernate-el elég jól orvosolhatók azok a problémák, amik hibernate használata nélkül fel sem merültek volna.
- A hozzászóláshoz be kell jelentkezni
Nálatok nem vált be. Neked nem tetszik.
Máshol meg megelégedéssel használják és nincs vele problémájuk.
Szerintem kár ezt ragozni.
- A hozzászóláshoz be kell jelentkezni
Épp hogy nem azt hangsúlyoztam, hanem a "Máshol meg megelégedéssel használják és nincs vele problémájuk" kijelentés valóságtartalmát. Mondjuk ragozni szerintem is kár...
- A hozzászóláshoz be kell jelentkezni
Ha zéró szakértelemmel rendelkeztetek Hibernate témakörben, akkor az egy relatíve jó döntés volt.
- A hozzászóláshoz be kell jelentkezni
Mondjuk úgy, volt már 1-2 kisebb projekt, ahol használtam a hibernate-et, de ugye mindig a nagyobbaknál derül ki, hogy ami a kisebbben jónak tűnik, a nagyban már bukós...
Most egy logikai DB interface-ünk van, és e mögé pakoltuk be a szimpla SQL query-ket. Olyan, mint egy EJB, csak az enterprise nélkül :D
- A hozzászóláshoz be kell jelentkezni
Mondjuk ezt annyira imádom. A hibernate tipikusan az, amit az ember a büdös életbe nem fog érdemben ismerni, amíg egy nagyobb projekt keretein belül nem használja legalább 1-2 évig. Egy kisebb projektnél lehet sokféle fals benyomása, de így gyakorlatilag eltanácsoltad a használatától mindazokat, akik eddig bepróbálkoztak vele valaha is.
Nem ismered, ne használd. Használat nélkül meg lehet ismerni? Nem ;] köszi
- A hozzászóláshoz be kell jelentkezni
Én csak azt mondtam, hogy ha zéró szakértelemmel (és ezt megint nem arra értem, hogy 1 ember vagy x ember egy csapatból, hanem mindenki) rendelkeznek hibernate témakörben, akkor az egy relatíve jó döntés volt, hogy nem vezették be.
Ha a projektben van annyi tartalék idő, hogy szabadon lehet ismerkedni egy ismeretlen (=zéró szakértelem) technológiával és kitapasztalni a problémákat és az azokra adaható válaszokat, akkor hajrá, de nekem az a tapasztalatom, hogy egy projektben ritkán szoktak betervezni ilyen időket.
Az meg egy teljesen más helyzet, amikor van olyan ember is, aki azért ismerős a hibernate háza táján. Ekkor meg ugye az a felvetésem nem állja meg a helyét, hogy zéró szakértelem.
- A hozzászóláshoz be kell jelentkezni
Nem a zero szakertelemmel volt a gond, hanem a DB struktura elkepsztoen pocsek allapotaval. Ami nem volt orvosolhato a backward compatbility kovetelmenyek es a customer oldali DBA ellenallasa miat. Igy pl egyetlen kereses, kb 70MB memoriat evet meg es lassu volt. Figyelembe veve, hogy szerverenkent 1500 felhasznalo van es 2.5GB heap, igy napi 90 ujarainditas volt app sezerverenkent.
Az iBatis alap megoldas mar memoria szempontbol elfogadhato volt, de 2-5 masodperces valaszido nem (DB processzor terheleserol nem is beszelve). Igy vegul keszult hozza egy kulon specializalt alkalmazas, ami 3-4 nagysagrendet ravert a DB alapu megoldasra.
A Hiberante addig mukodik, mig kozzel teljes kontrolod van a DB struktura felett es nincsen, vagy legalabbis minimalis, backward compatbility kovetelemeny. A teljes kontrol miat feltetelezheto, hogy rendesen normalizalt az adatbazis. Illetve a DB tartalom modosito muveletek realative magas aranya (nalunk 10% alatt volt).
A masik fo gond, hogy a Hiberante altal kiadott SQL utasitasok gyakorlatilag optimalizalhatatlanok. A legtobb amit tehetsz, hogy tele pakolod a DB-t indexekkel. Amik egy ido utan negativan foglyak befolyasolni a teljesitmenyt. Mind memoria mind a sok index frissitgetese.
- A hozzászóláshoz be kell jelentkezni
Nem neked szólt a reagálásom, de azért kösz a választ.
Hiberante altal kiadott SQL utasitasok gyakorlatilag optimalizalhatatlanok
@NamedNativeQuery?
- A hozzászóláshoz be kell jelentkezni
"A Hiberante addig mukodik [...]"
Nekem is volt ilyen legacy db szerkezetes projektem (természetesen db szerkezet kőbe vésve). Akkor tanultam meg így használni a hibernate-t. Nagy +1 jár neki ezért a tudásáért. Olyan sql-t írsz bele, amilyet akarsz.
- A hozzászóláshoz be kell jelentkezni
bookmarked
- A hozzászóláshoz be kell jelentkezni
Igen es el is erkeztunk oda, hogy visszabutitottuk az egeszet (majdnem) JDBC szintre. Ilyen korulmenyek kozott egy sokkal lightweightebb megoldas rendszerint celra vezetobb.
- A hozzászóláshoz be kell jelentkezni
Pontosan. Egy kelloen komplex projekt egy x.edik reteg fole ujra feltalalja az alacsonyabb reteget, feleslegesen.
- A hozzászóláshoz be kell jelentkezni
Az már egy másik kérdés, hogy megéri-e alkalmazni valamit. Ezt viszont kellő szakértelem/tapasztalat nélkül nem lehet csak úgy előre eldönteni.
- A hozzászóláshoz be kell jelentkezni
+1
- A hozzászóláshoz be kell jelentkezni
Épp ez a linkelt példa lényege, hogy lightweight, jdbc használat könnyítő libként is lehet használni a Hibernatet...
Azok a "mágikus" funkciói a hibernate-nek, mint a menedzselt entitások, a dinamikus proxyk, first level cache, HQL, mind külön-külön elhagyhatók, ha nem akarja az ember használni őket.
De ha tudsz jobbat ne tartsd magadban.
- A hozzászóláshoz be kell jelentkezni
Hogy jobb-e az jo kerdes, rendszerint iBatis/myBatis vagy Spring JDBCTemplatje sokat tud egyszerusiteni a native JDBC-n.
A linkelt pelda egyebkent elege csuny megvalositas szempontjabol. String konkatenacioval lehetoleg ne rakosgassunk ossze Java kodbol SQL queryiket. Sot lehetoleg ne is taroljuk oket Java kodba. Unit tesz eseten szvsz megbocsajthato.
- A hozzászóláshoz be kell jelentkezni
Egesz jo, a 2.3.4 verzio van hasznaltuk. A 3as migracio egyenlore kerdeses, a formatum valtozasok miat.
Keszult hozza egy Java Interface alapu, Convention Over Configuration elvekre epulo absztrakcios reteg. Ez lehetove tette, hogy tenylegesen csak az Interface-t es a mapping XML-t kelljen megirni (az esetek nagy reszeben). A konkret DAO implementacio dinamikus proxyikal jott letre deploy idoben. Igy minden konkret implementacio megorokolte a mar tobbszorosen kiprobalt callbackeket. Illetve az osszes DB-bol jovo entitas immutablekent lett definialva. Mivel a DB muveleteink 95% read only.
DBA reszerol jelentosen kisebb volt az ellenallas, mivel az SQLek optimializalhatobba valtak. Bar sajnos meg mindig tulsagosan szeretik a tarolt eljarasokat a Prepared Statementekkel szemben.
A deklarativ tranzakcio kezeles es iBatis integracio Springen keresztul tortent.
- A hozzászóláshoz be kell jelentkezni
Ez oke, csak ne keverjuk az annotation processing-el a Lombok-ot. A Lomboknak em sok koze van hozza, eltekintve hogy az annotation processing infrastrukturat hasznalja arra, hogy beepuljon, de attol meg az annotation processor-ok altalaban uj forrast gyartanak (amit a kov korben a Javac beolvas es lefordit), szemben a Lombok-al, ami meg bytekodot pakol a forditott class-ba.
Ami a sorszamokat illetve line order-t illeti, nem kellene neki feltetlenul rossznak lennie, ha csak setter/getter bytekod generalasrol beszelunk... eltekintve persze a getter/setter sorszamaitol, amire viszont valljuk be, sok szukseg nincs, tekintve hogy egy utasitasos metodusokrol beszelunk... a metodus neve tehat megmondja mit is csinal, es nem lehet tulsokfelekeppen megirni egy gettert vagy egy settert.
- A hozzászóláshoz be kell jelentkezni
-1
- A hozzászóláshoz be kell jelentkezni
Erős +1. :)
- A hozzászóláshoz be kell jelentkezni
subscribe
- A hozzászóláshoz be kell jelentkezni
hulyeseg, plane, h JVM felett fut.
- A hozzászóláshoz be kell jelentkezni
Gondolom megvárják az android per végét, mielőtt saját runtime-ban fognak. Amúgy miért hülyeség? A red6 az összes projektjét mögé állíthatja.
- A hozzászóláshoz be kell jelentkezni
JVM fole mar portoltak csomo nyelvet. en nem latom ez mit nyujtana amit azok nem... azon kivul max, h a redhat van mogotte.
- A hozzászóláshoz be kell jelentkezni
Egyszerűen csak annyit látok benne, hogy ők mintha komolyan gondolták volna a "fork java" jelmondatot. Belepakoltak pár olyan dolgot, ami a sunnak eddig büdös volt, az oracle meg képtelen volt rá. Mondjuk ez már nem az a community-s _izé_
- A hozzászóláshoz be kell jelentkezni
Ez IMHO ugyanolyan not invented here-szindróma, mint a KVM.
--
Web 2.0: you make the content, they make the money.
- A hozzászóláshoz be kell jelentkezni
Új, "Java-gyilkos" nyelvet mutatott be a Red Hat
prog.hu, én így szeretlek :)
- A hozzászóláshoz be kell jelentkezni
Ha nem lesz hozzá zero work Java2Ceylon konvertáló, akkor kb. halott ügy... sok cégnél még most állnak át 1.4-es Java-ra, mert még ez is sok munkával jár, nemhogy egy pármillió soros kódbázist átrittyentenek egy ismeretlen platformra.
Ezen túl alapvetően két dolgot tudok felhozni a cucc ellen:
- Enterprise világban kb. az utolsó dolgok között vannak fontossági sorrendben azok a nyelvi elemek, amelyekről szó van, ugyanakkor szó nincs azokról a dolgokról, amitől egy nyelv Enterprise lesz: a high availability és a reliability megoldásokat pedig nem látom a Ceylon mögött - pont az a RoR és a Scala problémája is.
- Ha nem Enterprise célra lesz, arra most is dögivel vannak jobbnál jobb megoldások, azokkal meg nem fogja tudni felvenni a versenyt.
--
http://wiki.javaforum.hu/display/~auth.gabor/Home
- A hozzászóláshoz be kell jelentkezni
Closure, local, stb., tiszta Groovy. Amúgy tetszik, csak... meglátjuk.
Szerk.
Még az "operator overloading" is ugyanaz: http://groovy.codehaus.org/Operator+Overloading
Biztos, hogy nem a Groovy-t mutatta be ez az ember? :)
- A hozzászóláshoz be kell jelentkezni
Már megint egy újabb XML-to-exception konverter? :)
--
Web 2.0: you make the content, they make the money.
- A hozzászóláshoz be kell jelentkezni
Gavin King? Van szakálla? Nincs? Kthxbai, end of story.
- A hozzászóláshoz be kell jelentkezni
nincs szakála, de elég jellegzetes arcvonásai vannak.
- A hozzászóláshoz be kell jelentkezni
újabb vaporware Kínából. úgy látszik minden évtizedben elő kell állniuk valami ilyesmivel. csakis MING/OSt kell majd alatta használni, úgy az igazi:D
lesznek impozáns bemutatók, ígéretes roadmap és minden külsőség, csak éppen használható kód nem lesz soha.
- A hozzászóláshoz be kell jelentkezni
pötty
- A hozzászóláshoz be kell jelentkezni
Minek kellett ehhez új nyelv?
A munkahelyemen azt a nyelvet kedvelik, amelyiket egyetemen oktatnak. A C# is hihetetlenül hasonlít a C++ java keverékre, gondolom az MS nem akart befürdeni. Emellett volt pénze oktatásra és reklámra...
Nekem ettől a nyelvtől Pascal reloaded érzésem van. Úgy látszik egyesek nem tudták megérteni, hogy a Pascal szerencsére kihalt.
- A hozzászóláshoz be kell jelentkezni
Megnéztétek egyébként a slide-okat?
- does not support method overloading??? WTF???
- egy csomó hagyományos keyword-tól megszabadultunk. Ez tényleg jó?
- := ??? visszatér a pascal? de jó, írjunk egy kicsit többet...
- nincs konstruktor, hanem az osztály kódjába írjuk bele a hozzá tartozó kódot. Igényes.
- a html-es példa még esetleg elég használhatónak tűnik így első látásra, de kb. ennyi
összefoglalva: egy újabb "zseniális" nyelv, aminek ebben az állapotban nem jósolok túl nagy jövőt, megérdemelten.
- A hozzászóláshoz be kell jelentkezni
Azért az = := különbség fontos tervezési kérdés, ugyanis nem mindegy, hogy az értékadás kifejezés vagy utasítás. És ez a kettő rendre a konvencionális jelölés.
----
Hülye pelikán
- A hozzászóláshoz be kell jelentkezni
"a html-es példa még esetleg elég használhatónak tűnik így első látásra, de kb. ennyi"
Az groovy-ban is hasonló, és azzal minden java-s kód használható, sőt a java érvényes groovy kód. Abban van konstruktor, named parameter, method overloading, megmaradtak a keywordök is, de a típusok opcionálisan elhagyhatók (def). Satöbbi. Plusz grails.
- A hozzászóláshoz be kell jelentkezni
Ugytunik, hogy minden "nagy nevu" programozonak elobb utobb akkorara no az egoja, hogy nem birja ki, hogy ujra feltalalja a kalapacsot. Egyesek megelegednek egy frameworkel, de nemelyik nem birja ki es ir egy "uj nyelvet".
- A hozzászóláshoz be kell jelentkezni
Csak várd ki a végét, még itt is megjelenhet ilyen kezdeményezés :-D
Amúgy meg hajrá, ego nélkül nem derül ki, hogy életképes-e az ötletük, és azért mert a jelen állás szerint 99%-uk nem az, még jöhet épp egy géniusz.
- A hozzászóláshoz be kell jelentkezni
HUP-ot forkolni?!
- A hozzászóláshoz be kell jelentkezni
Támadnak a Cylonok!
Őőő... Ceylonok!
- A hozzászóláshoz be kell jelentkezni