Új hozzászólás Aktív témák
-
axioma
veterán
Igen, bocs, pongyola voltam, a leendo programozonak aki uj generacioju osztalyt lesz kenytelen bevezetni, kapasbol lassa hogy ez mandatory. (Vagy ha en leszek az akkor en is ha feledekeny lennek 10 ev mulva...)
De vegulis az adott eset inkabb csak azt mutatja, hogy eletszeru az igeny, elvi szinten erdekel. Mindjart nezem a linket. -
axioma
veterán
Igazabol en mar tegnap a linkelt magyarazat alapjan rajottem, hogy hulyeseget akartam. Raadasul csak elvi szinten erdekelt volna, (nyilvan minimalis modositas eseten me'g beleraktam volna), hogy ilyet miert nem lehet, es ahhoz csak siman azt kellett volna atgondolnom, hogy hogyan fogom azt a fuggvenyt meghivni...
Tokeletesen eleg lesz az, hogy az ososztalyba minden uj generacional boviteni kell azt a fuggvenyt, ami lekeri a generaciohoz tartozo hosszt (ez viszont kell, mert nem csak generaciok vannak, hanem felette tipusok is, csak ezt nem akartam belebonyolitani). Tovabb nincs ertelme kuzdeni vele, plane hogy az sem segiti jobban a karbantartast, ha absztraktabb is esetleg.
Aethelstone: neked is koszi, hogy probaltad ertelmezni, de az derult ki hogy en vagyok a problemaEgyebkent meg volt masik iranyban kerdezesnel olyan valasz is, hogy o az ilyenekert mondja hogy a generalt kod az igazi, mert akkor megtervezed az adatstrukturat amit modellezel, es akkor ezt az esetet beleirod a generalasba... na ez megint olyan, amit tuti hogy itt nemcsak hogy felesleges, de szinte alkalmatlan is, a programozo tok mashogy fogalmazza meg a feladatot mint ahogy eddig szokta (ergo gyakorlott benne, a kodirasban), plusz bizzon meg a generalasban (mikozben mint tudjuk minden rendes programban van legalabb egy elagazas, egy ciklus, es egy bug...)
-
aronkatona92
csendes tag
Pont most kezdtem olvasni a clean code magyar verzióját és a felület szónál azonnal eszembe jutott a forum. Amíg nem írt konkrét példát addig fogalmam nem lett volna mire gondol a költő
Általában neten szoktam angolul olvasni, de ez most kivétel.
Van még pár gyöngyszem amit tudnál mondani? -
Aethelstone
addikt
A Hibernate alatt pedig semmi perc alatt cserélhető az adatbázis implementáció.
Elvileg így van, gyakorlatilag ha MySql alatt raksz az ID oszlopra egy
@GeneratedValue(strategy=GenerationType.IDENTITY)
annotációt, Oracle esetén bajban lehetsz Stb. Egyébként igazad van
[ Szerkesztve ]
MI 10T Pro 8/256 , Arsenal FC - Go Gunnarz...
-
-v-
addikt
Na meg kérdés mi számít kimagasló bérezésnek Sokszor itt félreértések vannak azt hiszem a jó java fejlesztők meg a munkáltatók között Egyébként megdöbbentően sokan recruitolnak így fejvadászok, még a cég nevét se mondják meg, UI vagy backend, technológiák stb. stb. mégis mit várnak, időmilliomos az ember, hogy még ha ne adj isten tényleg épp aktuális is lehet a váltás ennyire hogy "java fejlesztőt keresünk" már ugrik is az ember és megy interjúzni?
[ Szerkesztve ]
-
plaschil
aktív tag
Hm... az if-es dolognál én is szívtam a fogamat, hogy vajon nem létezik erre valami sokkal egyszerűbb megoldás?! Mert ha most lett volna 100 féle PontKod-om az azé' csak 100 if.
Aztán úgy voltam vele, hogy egyelőre - ha működik - nem bántom. Nem csak ezt, semmit. Ezért is jöttem ide, és tettem közzé, hogy az avatottabbak segítsenek néhány dologgal, amit ők/ti egyből kiszúrtok, és tanuljak belőle. Amiket javasoltál, meg fogom nézni.
Minden percét élveztem a fejlesztésnek. Kár, hogy vége, de majd találok valami más kihívást.Creative G500 vezérlő panelt keresek// Hol vagy helyileg? - A kisszobába. // Szilvásbuktát, mert azt szeretem!
-
floatr
veterán
A filter annyit csinál, hogy egyazon session-t fog visszaadni a request idejére. Ez akkor kellhet, ha lazy collection-öket használsz, de nem inicializálod őket a betöltéskor. Ilyenkor session hibával hanyatt esik az egész.
A tranzakció egy kicsit más, azt definiálhatsz többet is pl. annotációval a business layer-ben. Ha egy controller több business metódust használ, akkor több tranzakció is kifuthat menetközben.
(#6230) jetarko nem lassabb lesz, hanem néha feleslegesen végzi a munkát, több memóriát ehet stb. Amikor EAGER-nek definiálsz egy kapcsolatot, akkor a tulaj betöltése nem egy szimpla select lesz, hanem hozzáfűzi az összes kapcsolatot, és egy menetben tölti be az adatokat.
Amikor a size() metódust használod LAZY-vel, akkor külön SQL fut le a collection-re.Ami duplikálódást illeti, asszem itt már azért látszódik, az oka az egésznek. EAGER az összes kapcsolatod, ezért szépen sorban hozzáfűzi JOIN-nal a TEAM táblához a lekérdezésnél. 1 join esetében a TEAM duplikálódik, minden további join esetében viszont a hozzáfűzött táblák rekordjai is. Itt lehet kutya elásva. Valószínűleg több collection is duplikált adatokat fog tartalmazni emiatt az összesített SQL miatt. Amikor a példámban néztem, nekem csak egy one-to-many kapcsolatom volt, amiben a tulaj szűrve volt, a collection elemei pedig egyszer jöttek a select-ből. Ha több ilyen van, akkor a select egyszerűen ilyen hulladék eredményt ad.
Emiatt is érdemes lenne subselect-eket használni valamilyen módon. Mondom, én a filtert javaslom LAZY-vel
[ Szerkesztve ]
-
TheProb
veterán
annyit sikerült közben kisilabizálnom, hogy ha a táblázat modelljében minden egyes boxot egyszer ki-be kattintok akkor utána már jó a dolog. Ez 1-2 sornál nem gáz, de ha sok van akkor már...
Amit írtál értem, csak ugye ezt a swing generálja, nem én hozom létre a változókat. Amit mondtál alapérték megadás jó lenne, viszont ilyet nem látok.
"Boba is Mickey, Mickey is Boba" - Finkle Einhorn | PC Rig: https://pcpartpicker.com/b/bBy48d
-
TheProb
veterán
én se kattintgatok (nem is írtam), fejléc alatt a fv nevét, típusát és argumentumát értem, kifejtetlenül. (vagy rossz szót használtam?) Hát én még csak most ismerkedek az FX-el, de egyelőre kicsit idegen ez a mindent kézzel írjunk meg dolog, nem értem mért nem lehet egyből begenárálni a dolgokat a kódba, mint ahogy swing-el teszi az NB.
Amúgy intelliJ-nek az ingyenes verziója is van olyan jó, mint a teljes értékű?
"Boba is Mickey, Mickey is Boba" - Finkle Einhorn | PC Rig: https://pcpartpicker.com/b/bBy48d
-
glutamin
őstag
Ez pl eszembe sem jutott hogy az utolsó hibaüzenettől kezdjem el nézni. Gondolom ott akad el végleg.
Még nagyon az elején vagyok ennek a HIBERNATE-es dolognak. Korábban PHP/ASP, MySQL/JET Database vonalon már foglalkoztam webes adatbázisos alkalmazással, de most ez nekem még elég kínai.
[ Szerkesztve ]
„When you have money in hand, only you forget who are you. But when you do not have any money in your hand, the whole world forget who you are. It's life.“
-
glutamin
őstag
Na sikerült. Még mindig vannak hibaüzenetek, de a tutorial szerint ez most nem érdekes. Valszeg a hibernate.cfg.xml fájlban volt hiba. Kommentezést kiszedtem. Projektben a JAVA környezetet átkapcsoltam 1.7-ről 1.6-ra. Utána már csatlakozott. Akkor még egy adatbázisjelszó javítás volt és most itt tartok:
SLF4J: Failed to load class "org.slf4j.impl.StaticLoggerBinder".
SLF4J: Defaulting to no-operation (NOP) logger implementation
SLF4J: See http://www.slf4j.org/codes.html#StaticLoggerBinder for further details.
Hibernate: insert into UserDetails (userName, userId) values (?, ?)Hétvégén nekifekszem és végigzongorázom az alap SQL műveleteket, aztán lassan megnézem mi az a Maven
„When you have money in hand, only you forget who are you. But when you do not have any money in your hand, the whole world forget who you are. It's life.“
-
jetarko
csendes tag
Na megcsináltam.
Fejlesztés közben a tokeneket tárolom 1db properties fájlban, lehet 10 nyelv, akkor is csak egyben tárolom.
Írtam egy fv-t, ami a property fájl alapján a tokeneket felveszi db-be, ha van értéke a fájlban, akkor az értéket beszúrja, ha nincs akkor az értékhez a token kerül be maga.
A másik fv az adott nyelvhez tartozó property fájlt módosítja a db tartalma alapján. Ha ezt meghívom, akkor vagy 1db token értékét cseréli az adott nyelv property fájlban, vagy a db-ben tárolt összes értéket kiírja a fájlba.
A db-be kerüljenek tokeneket csak akkor kell lefuttatni ha új token kerül a property-be, ekkor az új token bekerül db-be. Innentől csak a 2. fv dolgozik.
Erre írtam egy felületet, ami onblur műveletre ajaxosan frissíti az adott property fájlban és db-ben szereplő értéket is.
A cacheSeconds 1-re van állítva. Jelenleg 100 tokennel nagyon gyorsan változtatva a frontenden az értékeket remekül működik, a context újratöltéstől semmi memória nem növekszik.
Ugye ez által futás közben bármikor beletudok nyúlni a token értékekbe, de a rendszer mégis a property fájlok alapján dolgozik, amihez gondolom valami gyors fa van építve, nem kell szarakodnom folyamatos db basztatás, cachelés dolgokkal.
Azt még nem találtam ki, hogy ezzel a megoldással futás közben új nyelvet, hogy tudok hozzácsapni, de majd még agyalok rajta.
A hibája ennek amit jelenleg látok, hogy a property fájl frissítéskor a fájl egésze újraírodik, ez ha nagyon sok token van lehet sokáig tartana. Ezt letesztelem hamarosan mennyi idő lehet 1milla tokent fájlba írni. A másik pedig az lehet, ha sok ember nagyon gyorsan sok tokent módosít egyszerre, de hát ezt nem tudom egymagam leszimulálni
A db réteg fölöslegesnek tűnik és majdnem, hogy az is, de ha cserélem a war-t a tomcatemben és közben egyik token értékét átírtam, akkor a régi propertiekkel felül csapom a jelenlegit és elveszett a módosítás, ha nem szedem le előtte a property fájlt.
Vélemény? -
jetarko
csendes tag
Én is túlbonyolításnak érzem, de hát kísérletezek
A csak db-be tárolással az a gondom, hogy ha MVC-ben vagyok, akkor a modelhez mindig adjam hozzá azt a szöveget ami ott megjelenik ez sok-sok model.add sor is lehet vagy nem tudom, hogy lehetne máshogyan.Az új nyelv futásidőben való hozzáadás az én megoldásomnál bonyolult, mert entitáson keresztül kezelem a db-t és ha új nyelvet akarok, akkor bővítenem kéne az entitásomat és erről fogalmam nincs, hogy lehetne futásidőben, vagy teljesen máshogyan kéne felépítenem az entitás rendszert, tuti lehetne trükközni, de még nem jöttem rá.
-
floatr
veterán
JBoss tud olyant, hogy egy közös war-ba lehet telepíteni a közösen használt libeket. Mondjuk az sem sokkal jobb megoldás, de kicsit furcsállom ezt a classloader összeakadást. Most nézem, hogy maven plugin is van arra, hogy egy konkrét war-ból kimásolja a libeket az újba jettyhez.
Én mondjuk tutira kitesztelném ezt a dolgot egy saját jarba forgatott singletonnal, ami logol mindent, ami az életciklusával kapcsolatos.
-
Lortech
addikt
Nincs általános válasz, normálisan nem kéne ilyen probléma legyen két war között. A frameworköknek és konténereknek kéne megoldani, hogy ilyen ne legyen, mégis gyakran előfordulnak ehhez hasonló érdekességek.
A RuntimeDelegate lehet speciális, mivel javax-es package-ben van, és elképzelhető, hogy ezt a jetty a system classloaderrel tölti. Valami közös szülő classloadernek lennie kéne a két alkalmazás között, ami okozza a problémát, másként érvényesülne az, hogy a szóban forgó osztályok a war-ok WEB-INF/lib WEB-INF/classes-eiből töltenek, mivel ez prioritást élvez, és a két "különböző" verzió nem akadna össze.Meg egyáltalán... nem a thread contextclassloaderét kellene használnia egy objektum legyártásakor? Vagy ilyenkor a legyártást végző osztály classloaderét örökli az új objektum? Ezekszerint az utóbbi.
Utóbbi. A createUriBuilder működhetne úgy is, hogy a thread context classloaderrel tölt be egy implementációt, de a bemásolt kód nem ezt teszi (az se biztos, hogy ez a sor indukálja a class betöltését).
Amúgy hol vannak a resteasy lib-ek? WEB-INF/lib-ben van mindkét war-ban ugyanaz a verzió?
Én a "-verbose:class" -t is megnézném, hátha valami összefüggés kiolvasható belőle.[ Szerkesztve ]
Thank you to god for making me an atheist
-
Szmeby
tag
Úgy néz ki, sikerül megpatkolni. A jetty által system class-ként alapértelmezetten beállított cuccokat kicsaptam.
webapp.setSystemClasses(new String[0]);
Így minden class a webappok saját classloaderével töltődik be, még a RuntimeDelegate singletonból is készül 1-1 példány a webappokban. A PermGen szépen megugrott ennek hatására.
Kicsit pazarló, és talán drasztikus lépés, de úgy tűnik most működik. Még kicsit játszok vele.Az kavart meg, hogy a RuntimeDelegate javaxos package-ben volt, míg a resteasy-s leszármazottai org.jboss... package-ben voltak. Kiderült, hogy a RuntimeDelegate IS a resteasy része. Abban a hitben voltam a package alapján, hogy ez valami jdk-s cucc. És mivel a default jetty beállítások miatt ez a system classloaderrel töltődött be, meg sem fordult a fejemben, hogy ez a resteasy libből jön.
[ Szerkesztve ]
-
veterán
Többnyire gúglit nézek, aztán onnan mindenfelé vezetnek utaim, többek között a hibernate doksihoz is.
Nekem az 1-es megoldás tetszik a legjobban, és ha nem jön be, akkor megnézem a többivel. A gond lehet, hogy valójában nem is itt van, hanem a JSON parserrel, de ez még kiderül, mindenesetre most nőtt annyival a tudásom, hogy jó ideig ellegyek vele.
Egyébként több helyen is olvastam, hogy a hibernatenek tudnia kéne kezelni eager fetchelés közben az ilyen ciklikus, 2 irányú many-to-many kapcsolatokat, de úgy látszik a gyakorlatban még sincs így.
(#7191) emvy: Hmm, logikusan tűnik.
https://play.google.com/store/apps/details?id=com.lovemap.lovemapandroid
-
veterán
-
veterán
-
nagyúr
> Láttam olyan helyet, ahol ennek a menedzselésére bevezették a kódgenerálást. Ott aztán már durva állapotok vannak, ha az ember ilyesmire kényszerül. Egy xtend leíróban legózhatod össze a java forráskódot töredékekből, ezzel többféle forrást is generálhatsz
Jaja, kozben meg egy sor mellett elmagyarazzak neked, hogy a tobbszoros orokles egyebkent rossz, mert ize. Pl. a tobbszoros orokles hianya valami, ami _allandoan_ problema (nekem). A masik meg az, h nem lehet rendesen monkey patchelni, de az kisebb problema. Kodgeneralast mi akkor csinaltunk, amikor .Net-ben meg Javaban is el kellett erni ugyanazok az entitasokat -- ott tenyleg az volt a legegyszerubb, hogy mittudomen, XML-ben leirod, h hogy nez ki az ojjektum, aztan kesz.
while (!sleep) sheep++;
-
veterán
Alvás helyett gondolkodtam floatr hozzászólásán. Biztos, hogy JSON serialization-ről beszélt. Ha a kapcsolatokra teszek @JsonIgnore-t, akkor amikor csak alap információk kellenek az entitásokról, jól fog működni parszolás. Amikor pedig egy nagy objektumot küldenék, pl Movie, és benne minden kapcsolódó adattal, akkor ilyen esetekre definiálnék wrapper osztályt, és benne lenne minden szükséges adat egy mezőként.
Pl:
public class MovieWrapper {
private MoviesEntity movie;
private ArrayList<ActorsEntity> actors;
private ArrayList<WritersEntity> writers;
// többi kapcsolat
...
// getterek, setterek
}Ezt az objektumot gyönyörűen meg tudom konstruálni a business logic layerben, amikor még van hibernate sessionöm, és így nincs konverzió, kódduplikáció, csak 1 kis extra karbantartás.
Kérdés: Jackson tudni fogja ezt parszolni? Most nem tudom kipróbálni, mert már aludni akarok, és mobilról írtam.
[ Szerkesztve ]
https://play.google.com/store/apps/details?id=com.lovemap.lovemapandroid
-
norbert1998
veterán
Szia!
Valójában 3-400 soros programot kellene írni. Az első része az volt, hogy alkossunk egy feladat specifikációt, ami alapján elkészül a program. Extra dolgokat tudhat, viszont kevesebbet nem. Nos, kicsit nagyon elvetettem a sulykot a feladatspecifikacional. Így most tulajdonképpen iszom a levét.Jézus, mennyit írtál! köszönöm szépen
Sajnos ez nekem még mindig nagyon magasÉs tankonyvunk sincs. Semmit nem írt ki az oktatási minisztérium. Egy füzetbe jegyzetelunk és kész.
WonderCSabo: ha format left vagy right-tal kiiratod, akkor sincs elcsúszva a felső sor?
[ Szerkesztve ]
-
sutszi
veterán
Nem rossz. Az külön tetszik, hogy javafx. Egy másik funkcióra pont alkalmas is lesz.
A fenti témához viszont egy fixen a taskbarra ülő "valami"-t szeretnék használni. Két szerepe lenne. Az egyik, hogy mutatja a %-ot, a másik, hogy innen elérhető az alkalmazás fő ablaka.
Mondja, Mr. Babbage, ha rossz adatokat ad meg a gépnek, akkor is jó válasz fog kijönni belőle?" Képtelen vagyok felfogni azt az értelmi zavart, ami valakit egy ilyen kérdés feltevésére késztethet. - by Charles Babbage
-
floatr
veterán
-
Sk8erPeter
nagyúr
"Ja, pont akkora őrültség, mint aki a magyar mondataiban nem használ ékezetet. "
Hehe, hát igen.(#7687) bambano:
"teljes őrültségnek tartom, ha valaki kétféle klavi kiosztást használ..."
Meg ez is jó.(#7683) emvy:
"Teljes orultsegnek tartom, ha valaki HU layouttal kodol "
Jaj, de szeretem az ilyeneket. Mi az a komoly hátrány, ami származik abból, ha valaki átállítja például a toggle comment hotkey-jét az IDE-ben? (Csak egy példa arra, ami mondjuk HU layouttal nem szokott tipikusan működni, de na bumm, körülbelül fél perc átállítani.) Mi az, ami miatt probléma lenne, hogy valaki HU layoutot használ, amikor világéletében ezt szokta meg, mert mondjuk nem élt hosszabb távon külföldön, ami miatt feltétlenül át kellett volna magát állítania más kiosztásra?
Ez nagyjából olyan, mintha beszólok, hogy milyen gyökérség ékezetek nélkül írni, mert amúgy tök idegesítő egy magyar nyelvű fórumon, annak ellenére, hogy nyilván az itt tevékenykedők többsége folyamatosan tudja olvasni az ilyen szöveget is, mivel nem egy túl komoly agyi munka, de akkor is zavaró (másnak nem biztos, nekem például igen, és tudom, "így jártam"). Ha magyar fórumra írsz, miért nem állítod át a layoutot (vagy magadat) magyarra?(#7702): Egy ilyen tényleg nem lehet rossz, de mondjuk itt fura picit, hogy ennyire magasra van emelve, így az ember csuklójának tartása gépeléskor kicsit "megtörik", és nem folyamatos az emelés.
[ Szerkesztve ]
Sk8erPeter
-
gygabor88
tag
Volt több ilyen tárgyam is, ahol meg volt határozva keményen, hogy csak a tanár libjeit lehetett használni. Oop prog tárgyhoz írt prof valami horror libet millió template paraméterrel ellátva, aminek kb az volt a lényege, hogy nem lehetett ciklust írni, mert hogy akkor az nem OO. Az volt a terv, hogy a diák majd funktorokat ad át a lib osztályainak.
Bementem vizsgára, 30 sorban megoldottam a feladatot, majd megbuktattak egy for ciklus miatt. Ez ilyen, túl kell élni ezeket a tárgyakat.
-
Lortech
addikt
Jó, akkor anonymous vagy local class se lehet? Pl. nem implementálhatsz egy Comparatort inline. Miért? Hogyan?
Persze, a nested class is class, ha de ha pl. egy beadandó automatikus kiértékelő rendszer valamilyen mesterséges korláta az, hogy "1 db osztályt" használhatsz, akkor lehet opció.
Egyébként nyilván ökörség bármi ilyen megkötés.Thank you to god for making me an atheist
-
MODERÁTOR
Ezen gondolkoztam a mai nap. Lényegében adatokat töltök le, de muszáj 50 ms szünettel dolgoznom mert flood ként érzékeli a gép és letilt. Emiatt most már úgy gondolom, hogy nem jó megoldás.
"Ott szimatol a sarkadban vasfogait csattogtatva, minden egyes hétköznapod: kirúzsozott medvecsapda."
Új hozzászólás Aktív témák
A topicot kiemeltem. Valaki nem akar egy nyitó hsz-t írni?:))
- Robot fűnyírók
- HiFi műszaki szemmel - sztereó hangrendszerek
- bb0t: Gyilkos szénhidrátok, avagy hogyan fogytam önsanyargatás nélkül 16 kg-ot
- Kerékpárosok, bringások ide!
- Google Pixel 6/7/8 topik
- Alkoholista nevelde
- AMD off topik: VGA, CPU, APU és minden, ami AMD
- Android alkalmazások - szoftver kibeszélő topik
- LEGO klub
- Yettel topik
- További aktív témák...
Állásajánlatok
Cég: Ozeki Kft.
Város: Debrecen
Cég: Promenade Publishing House Kft.
Város: Budapest