Hirdetés
- Milyen okostelefont vegyek?
- „Új mérce az Android világában” – Kezünkben a Vivo X300 és X300 Pro
- Hivatalos a OnePlus 13 startdátuma
- Folyamatos vérnyomásmérést kínál a Huawei Watch D2
- One mobilszolgáltatások
- Olyan lesz a Google Térkép, mint a segítőkész haver az anyósülésen
- Samsung Galaxy A54 - türelemjáték
- Új fülhallgatót is hoz a Motorola Európába
- Motorola Edge 50 Neo - az egyensúly gyengesége
- Beárazták a Nubia Z80 Ultra európai verzióját
Új hozzászólás Aktív témák
-
floatr
veterán
Ha már adott a rendszer, és nem szégyellném használni az OS adottságait, és shell parancsokat osztogatnék

Persze meg lehet kézzel csinálni a file másolgatást is, de a binugz shell parancsokkal gyorsabban lehet haladni, bár ezzel kötöd magad a rendszerhez.
-
floatr
veterán
Az új osztály definíciójánál az ősosztály paraméteres. Vagy konkretizálod, hogy mi a paraméter, vagy hagyod eredeti formájában. A paraméterre vonatkozó megszorítást (Termek) csak az éppen definiált osztálynál tehetsz. Ez a megszorítás annyit tesz, hogy a fordító csak olyan Raktar objektumot enged létrehozni, aminek a paramétere Termek típusú, vagy annak leszármazottja. Ha Gyumolcs paraméterrel hozod létre, akkor onnantól kezdve már nem adhatsz hozzá bármilyen Termek leszármazottat, csak ami a Gyumolcs-ből ered.
Ha pl a Kifli is termék (de ugyebár nem Gyumolcs), akkor ez nem fog fordulni:
new Raktar<Gyumolcs>().add(new Kifli());
mert ez egy "gyümölcsraktár" példány, ahová kiflit nem lehet raktározni
szerk.:
a paraméteres leszármaztatásnál vagy az osztály definíciójakor szabod meg, hogy mi a paraméter, vagy az osztály is paraméteres lesz. Ha paraméteresen hagyod, akkor megmondhatod, hogy milyen ősosztályból lehet paraméter használni, amikor az osztályt létrehozod. A megszorítást meg azért az új osztálynál kell bevésni, mert arra vonatkozik a megszorításod, nem az ősosztályra. -
floatr
veterán
válasz
alratar
#4885
üzenetére
Ha a cél a Vector használata, akkor nem életszerű.
Az ilyen nyilvántartásokat Map vagy Set használatával sokkal egyszerűbb, és gyorsabb is kezelni. Ha rendezési elv is van mögötte, akkor vannak rendezhető Map-ek is. Nem véletlen, hogy általában adatbázist is raknak mögé. -
floatr
veterán
válasz
alratar
#4878
üzenetére
Akkor hadd szóljak ki egy kicsit az enterspájzból én is. Ha egy metódusnak a neve "set...", de nem értéket állít be, hanem összead, akkor -- még ha azt is csinálná, amit kellene -- egy kód review-nál fognak hátba vágni. Másrészt meg sokak számára fájó pont, de célszerű legalább az elnevezések esetében angolt használni. Ha egy végzős egyemistát bedobnak a mély vízbe, nagy eséllyel kerülhet olyan projektbe, ami külföldi kooperációban készül.
De ha a konkrét példánál maradunk, akkor sokkal hatékonyabb lenne egy Map-be tárolni, és kulcs (név) alapján keresni, vagy Set-be pakolni, és hashCode/equals metódusokat használni. Ha ez valami oktatáshoz kötődik, akkor nem értem, hogy miért nem lehet életszerűbb példákon keresztül oktatni.
-
floatr
veterán
válasz
WonderCSabo
#4834
üzenetére
Majdnem 100%, hogy volt ilyen a standard lib-ben. De mindegy, legalább ez is tisztázódott

-
floatr
veterán
válasz
WonderCSabo
#4828
üzenetére
Az ArrayList egy equals metódust hív meg. Ez az Integer-ben instanceof-al kezdődik, ezt néztem be
Valamiért nekem még mindig az volt a fejemben, hogy az equals nullptr-t dob akkor is, ha a paraméter null.
-
floatr
veterán
válasz
WonderCSabo
#4825
üzenetére
Ja, instanceof. Nem szóltam

(#4826) Karma nem, az ArrayList-nek saját implementációja van. Legalábbis abban a verzióban ami most kéznél van
Amúgy bármikor bejöhet az, hogy a listádba egy null is becsúszik tőled többnyire függetlenül is
-
floatr
veterán
-
floatr
veterán
válasz
S0m30n3
#4813
üzenetére
Akkor fogadj el pár tanácsot. Ha bármiféle szoftvert készítesz, kell lennie egy tervnek, hogy hogyan akarod használni. Ebből lesznek funkciók, azt összeírod bárhová, az alapján ki tudod találni -- ha nem adott -- hogy milyen technológiát érdemes használni. Ezekből már ki tudod sakkozni, hogy milyen részletei lesznek az egésznek, adatmodellel együtt. Aztán egyből összerakod az alapokat: projekt egy IDE-ben, adatbázis szigorúan TCP alapon projekthez beállított júzerrel. Ez utóbbi persze nem triviális, mert minden adatbáziskezelő máshogy települ. Az SQL Server domain alapon szeret beléptetni, az Oracle TNS listener-je alapból nem indult, amikor én használtam, a MySQL és PostgreSQL telepítéskor beállítható, a derby/javadb csomagjait sokáig meg sem találtam... ezeket mind tudni kell kezelni.
Ha ezekkel megvagy, akkor lehet folytatni minden mást, mert ezek nélkül még teszteket sem igazán lehet faragni, nemhogy komolyabb dolgokat. Ha nem megy a beállítás, akkor addig kell a google-t faggani, amíg meg nem lesz. Érdemes ezekre a dolgokra kifejezetten rágyúrni, és összeírni egy kis doksiba, blogba, mert el fogod felejteni. Érdemes lehet biankó projekteket készíteni, ahol ezek a dolgok már eleve benne vannak, és később elég csak kopipésztelni. Már ha komolyabban érdekel az egész...
-
floatr
veterán
válasz
S0m30n3
#4798
üzenetére
Ahogy Karma is mondja. Engedélyezni kell, hogy adott ip címen meg lehessen szólítani a 1433-as TCP porton, és hogy user/pwd párossal lehessen csatlakozni. Ez alapból le szokott lenni tiltva, és csak win domain becsatlakozást fogad el. Ami a jelenlegi kódodban van, az szintén domain alapú azonosítással futna, de ezek szerint nem tetszik a szervernek a te géped jelenlegi domain-beli állapota, vagy nem vagy jogosult mint domain júzer.
Emellett érdemes még egy egyéb felhasználót létrehozni az adatbázisodhoz, aminek jelszót adsz, és nem sa-t használni, mert ha netán élesbe kerül egy fejlesztésed, akkor csúnya problémákat tudsz ezzel magadnak okozni.
Azt esetleg javasolnám, hogyha egy kicsit is komolyabb a fejlesztés, akkor legalább egy connection pool-t használj, ha mást nem is.
-
floatr
veterán
válasz
WonderCSabo
#4793
üzenetére
Lehet h velem van a baj, de már 15 évvel ezelőtt is elvétve láttam csak használatban java serialization-t (max RMI). Amikor fősulira jártam, meg egyemista voltam, még nem oktatták, így magamtól tanultam gyakorlatilag mindent, de ez most szíven ütött
Többek közt azért is mert olyan témát feszeget, aminek a gyakorlatban nullához konvergál a határhaszna. Tipikus egyemista feladat. Nem véletlenül használnak inkább XML-t vagy JSON-t.Az egészben az a mókás, hogy ha a való életben beleszaladnál egy ilyen problémába, hogy meg kéne fejteni a működést, akkor olyan mérnökösen unit tesztelnéd, hogy biztosra legyél benne, és ne rúgassad ki magadat egy esetleges tárgyi tévedésért, ami -- valljuk be -- bármikor beüthet. Ellenben az egyemista vizsgázó kolléga (de a vizsgáztató is) nézne nagyokat, ha azt kapná feladatnak, hogy egy kódolt, aláírt SAML alapján kéne beléptetni egy felhasználót, mondjuk könnyítésképpen úgy, hogy a kliens a jó kulcsot és aláírást adja meg

-
floatr
veterán
válasz
Superhun
#4751
üzenetére
Csak megnéztem a dolgot, de érdekes [link]
testArrayListAdd 234.896 ops/msec
testVectorAdd 274.886 ops/msec
testArrayListTraverse 1718.711 ops/msec
testVectorTraverse 34.843 ops/msecvégülis csak majdnem két nagyságrendi különbség van a kettő közt. Elhanyagolható
Majd amikor nem példaprogramokból él meg az ember, és az ügyfél a haját tépi, hogy miért tart 10 percig egy funkció, akkor majd könnyebb lesz megérteni, csak egy többezres kódbázisú projekten újra végigfutni azért elég necces lesz. Pláne ha nyomorultul van megtervezve a struktúra. -
floatr
veterán
válasz
WonderCSabo
#4748
üzenetére
Arany ember vagy

-
floatr
veterán
válasz
WonderCSabo
#4746
üzenetére
Ja, csak elcsesztem a paraméterezést a table/map esetében

Helyesen Hashtable<K,V> meg HashMap<K,V>
-
-
floatr
veterán
válasz
smallmer
#4729
üzenetére
Ha egyébként tényleg érdekel az ékezethelyes rendezés, akkor nézz be ide
-
floatr
veterán
válasz
WonderCSabo
#4731
üzenetére
Majd ír rá egy saját Comparator-t

-
floatr
veterán
Menet közben beugrott a triviális eset, amikor kell runtime kivétel. Van egy alkalmazásod, amihez AOP-t kell használni (pl. tranzakciókezelés, jogosultságkezelés). A megpatkolt metódusod nem tudhat róla, hogy milyen egyéb mechanizmusok ülnek a nyakába, ezért deklaráltan nem dobhat rajta kívül álló extra kivételeket -- ez sértené is a szuverenitási elvet. Ellenben az advise végrehajtása közben történhetnek olyan dolgok, amikor nem tudsz egyebet csinálni, mint dobni egy kivételt -- pl jogosulatlan hozzáférés esetén. Ezt a kivételt nem tudod sehol sem deklarálni, ezért nem ellenőrzött formában dobod el, amit max a framework konténere láthat
-
floatr
veterán
válasz
M_AND_Ms
#4724
üzenetére
és (#4725) WonderCSabo
Egyszerűbb esetekben hasznos, mert nem akar senki sem vájkálni a felszín alatt. Amikor viszont egy kicsit összetettebb dologra kerül a sor, eleinte csak vakarod a fejedet, de már futottam bele megoldhatatlan problémába.
A konkrét kódra nem emlékszem már, de a lényege annyi volt, hogy annotációs SQL-el működő perzisztencia motor leszármaztatott interfészeknél elvesztette a fonalat, amikor a metódusokat override-oltam. Ennek az oka a felszín alatt lévő tényleges kompatibilis implementáció, hogy egyszerűen Object-et használ a típusparaméter helyett. Ez meg letarolja az OOP-alapelveket.
Ha lesz egy kis időm rá, megpróbálom rekonstruálni a dolgot.
-
floatr
veterán
válasz
M_AND_Ms
#4716
üzenetére
Vannak teoretikusok, akik mindenbe belekötnek, amikor megírják a könyveiket. Az ellenőrzött kivételek a saját kódodat erősítik, közvetlen megoldásokkal. A RuntimeException származékok pedig pl. egy konténert címeznek meg valami fatális tévedéssel. Az egyik legjobb példa erre, amikor SOA backended van, és központosított hibakezeléssel akarsz kommunikálni a kliens felé. A nagyobb problémákat egyszerűen nem lehet vagy nem éri meg ellenőrzött kivételekkel visszavezetni, amikor a konténer ezt automatikusan elvégzi egy kis testreszabással.
De ha már itt tartunk, akkor a generics inkább egy baromi nagy tervezési hiányosság, mint ez

-
floatr
veterán
Lehet h van olyan, aki vitatja

Egy metódus kódjában keletkező kivételeket vagy elsikálod helyben, vagy "delegálod" a metódust hívó félnek. Ha nem foglalkozol vele metóduson belül, akkor azt deklarálni kell. Ez nem csak a fordító idegeit nyugtatja, de a QA-hoz sem árt. Önkéntelenül is leellenőrzöd, hogy megfelelő-e a kivételkezelési láncod.
Amúgy a kivételeket úgy általában sokan nem használják jól, nem csupán a deklarációt.
-
floatr
veterán
Anno a Netbeans-ben jelent meg először a Matisse, amit a MyEclipse is "átvett". Az tényleg elég egyszerű, bár a generált kódra már nem mondanám ugyanezt. Netbeans alatt még hagyján, mert amíg azt használtam, az IDE írásvédetté tudott tenni egy file-on belül kódrészleteket, így kézzel nem tudta az ember összebarmolni a builder által megértett kódot. MyEclipse alatt viszont nem tudok ilyesmiről.
-
floatr
veterán
Erre a kérdésre jó választ nem fogsz találni. Most jobban végiggondoltam, hogy nálunk mi alapján megy a felvételiztetés, és nem vagyok tőle boldog. A CTO-val beszélve mondott pár technikai jellegű kvízkérdést, amire mondjuk egy könyvben megtalálod a választ, de szvsz nem sok értéket képvisel h a speciális eseteket kisujjból vágod.
Többet számít inkább az, hogy mennyire vagy csapatban hajlandó dolgozni, mennyire vagy rugalmas, alkalmazkodó, tanulékony, beilleszkedő, mennyire van rálátásod technológiákra, és nem utolsó sorban, milyen meggyőzően adod ezt elő. Minden cégnek, minden projektnek megvan a maga technológiája, azt egy juniornak úgyis meg kell tanulnia használni, és sokszor fontosabb, ha a metodikával tisztában vagy.
Új hozzászólás Aktív témák
A topicot kiemeltem. Valaki nem akar egy nyitó hsz-t írni?:))
- Trollok komolyan
- Milyen okostelefont vegyek?
- Gumi és felni topik
- „Új mérce az Android világában” – Kezünkben a Vivo X300 és X300 Pro
- Milyen processzort vegyek?
- Milyen videókártyát?
- Porszívók - akkus és klasszikus vezetékes
- Battlefield 6
- Hivatalos a OnePlus 13 startdátuma
- One otthoni szolgáltatások (TV, internet, telefon)
- További aktív témák...
- Eladó Apple iPhone 15 Pro Max 256GB fekete, független
- Samsung S22 Ultra 12/256GB / Fekete / Kártyafüggetlen / Karcmentes kijelző
- HP Compaq Elite 8200 SFF (i3, 5GB DDR3, 250GB HDD, Win 10 kulcs)
- ASUS TUF Gaming A17 FA707RM - Ryzen 7 6800H, 17.3FULL HD 144Hz, 1.5TB, 16GB, Geforce RTX 3060 6GB
- Corsair RM850e 2025 850W 80+ Gold / ATX 3.1 / PCIe 5.1 - ~ÚJ - Alza garancia 2032.09.05.
- HIBÁTLAN iPhone 13 mini 128GB Midnight -1 ÉV GARANCIA - Kártyafüggetlen, MS3337, 94% Akkumulátor
- HIBÁTLAN iPhone 13 Pro 128GB Alpine Green -1 ÉV GARANCIA - Kártyafüggetlen, MS2978
- Telefon felvásárlás!! Xiaomi Redmi Note 10, Xiaomi Redmi Note 10s, Xiaomi Redmi Note 10 Pro
- Telefon felvásárlás!! iPhone X/iPhone Xs/iPhone XR/iPhone Xs Max
- BESZÁMÍTÁS! ASUS ROG STRIX RTX 3080 10GB videokártya garanciával hibátlan működéssel
Állásajánlatok
Cég: Laptopműhely Bt.
Város: Budapest
Cég: PCMENTOR SZERVIZ KFT.
Város: Budapest

Majd amikor nem példaprogramokból él meg az ember, és az ügyfél a haját tépi, hogy miért tart 10 percig egy funkció, akkor majd könnyebb lesz megérteni, csak egy többezres kódbázisú projekten újra végigfutni azért elég necces lesz. Pláne ha nyomorultul van megtervezve a struktúra.


