Keresés

Részletes keresés

BalázsOrova Creative Commons License 2016.10.10 0 0 5840

a BankTech Java Challenge versenyen értékes díjak és izgalmas programozási kihívások várnak a résztvevőkre. Programozz és nyerj! 

Idén először miniQuizzel is ráhangolódhattok, 20 000 Ft-os különdíjért.
http://www.javachallenge.hu/miniQuiz/

padisah Creative Commons License 2016.08.21 0 0 5839
padisah Creative Commons License 2016.01.27 0 0 5838

van egy startup, amelyik java strack trace-ek indexelésével, és a megoldások keresésével foglalkozik

http://samebug.io

 

aki még nem ismeri...

sportweb Creative Commons License 2015.08.26 0 0 5837

Az IT Factory-n szeptemberbe lesz JAVA programozás és HTML5 tanfolyam. Ha valakit  érdekel tudok küldeni 50%-os kupon kódot, amit fel lehet használni.

 

Ha érdekel írjal, sportweb78@yahoo.com

Törölt nick Creative Commons License 2015.06.02 0 0 5836

UP!

 

Eléggé elhagyatott ez az egyébként valaha remek topic :)

p&bert Creative Commons License 2015.03.24 0 0 5835

Weblapfejlesztéssel és szerkesztéssel foglalkozó, magas technikai színvonalú vállalat keres Senior Java fejlesztőt külföldre!

 

Ezen cég kiemelkedő fizetés és juttatási csomagot és nyelvi készségfejlesztési lehetőséget biztosít leendő munkavállalója számára.

 

Bővebb információ: http://www.pbert.eu/allasok

 

Jelentkezni a fa@pbert.eu címen, fényképes önéletrajzzal lehet.

 

 

 

Pikker Creative Commons License 2015.03.23 0 0 5834

Az mennyire számít szokványos dolognak Javaban, hogy valaki "rendes" alkalmazásfejlesztéshez nem használ GUI editort?

 

Eddig inkább Lazarust használtam (Delphi klón), ami egész jó kódot generál automatikusan is, tehát olvasható, én sem tudnám jobban megírni, viszont mostanában egyre inkább Java felé fordulok főként a nagyobb támogatás miatt, de nem vagyok oda sem az Eclipse, sem a NetBeans által generált kódtól. Nagyjából értem, amit csinál - nem mindig - de nem tetszik, én nem úgy csinálnám. Viszont nem tudom, hogy összetettebb sok ablakos program esetén a GUI editor hiánya mennyire okoz majd gondot. Nekem ez több, mint hobbi, de nem ebből élek. Érdekelne, hogy a profik vagy legalábbis akiknek ez a munkájuk, azok esetén mi a jellemző GUI editor ügyben.

padisah Creative Commons License 2014.12.14 0 0 5833

köszi, megfontolom az érveidet

Előzmény: angyalhentes (5832)
angyalhentes Creative Commons License 2014.12.13 0 0 5832

String-gel viszonylag triviálisan működik, de azért vannak trükkös esetek:

 

1. Mi van, ha a paraméter/visszatérési érték deklarált tipusa egy interface?

2. Mi van, ha a paraméter/visszatérési érték tipusa egy enum?

3. Mi van, ha a feldekorált metódus kifejezetten számít null értékre?

4. Mi van, ha a behelyettesítendő érték generikus tipus?

5. Mi van, ha véletlenül egy metódust kifelejtesz?

 

De nekem személy szerint elvi problémám van az ilyen megoldásokkal, mégpedig az, hogy ha a program szarul lett megírva, akkor igenis hasaljon el, lehetőleg minél hamarabb. Ezért mondom azt, hogy elfedés helyett inkább már fordítási időben ki kéne szúrni ezeket a problémákat.

 

De ha mégis a másik utat választod, akkor is szerintem jobban jársz, ha annotációkkal vezérled a működést.

 

 

Előzmény: padisah (5830)
padisah Creative Commons License 2014.12.13 0 0 5831

értem, tehát a topik címéhez, és a témához illően stílszerűen:

NULL

:)

Előzmény: padisah (5830)
padisah Creative Commons License 2014.12.12 0 0 5830

az eredeti ötletről, a null-okat kicserélő aspectről mi a véleményed?

ezt lehet befelé menet is csinálni, hogy ha a kapott paraméter null, akkor azt típushelyesen egy Null objectre vagy default-ra cserélni

Előzmény: angyalhentes (5829)
angyalhentes Creative Commons License 2014.12.12 0 0 5829

Hát akkor egy kicsit változik a megoldás, de az alapelv ugyanaz: a kombinált container kell gondoskodjon róla, hogy csak úgy lehessen példányosítani, ahogy értelme van.

 

Ezért nem szeretem pl. azokat a C stílusú megoldásokat, ahol az eredményt paraméterben adja valaki vissza, a visszatérési értékben meg egy hibakódot/objektumot, mert azt a hívó szinte garantáltan elfelejti majd ellenőrizni.

 

A fordított variáns, amit te írtál, ahol a hibát adjuk vissza paraméterben, sokkal jobb ebből a szempontból, mert nem lehet véletlenül nem kezelni a hibát, csak szándékosan. Akkor meg megérdemlik. :)

Előzmény: padisah (5828)
padisah Creative Commons License 2014.12.12 0 0 5828

hát a konrét esetben voltak paraméterek, pl meg kellett mondani melyik volt az extra url paraméter, ami miatt bad request-el válaszoltunk

Előzmény: angyalhentes (5827)
angyalhentes Creative Commons License 2014.12.11 0 0 5827

Java-ban a Google Guava Objects/MoreObjects.firstNonNull() az, ami ilyesmire szolgál.

 

Az általad vázolt opciók közül én mindenképp a becsomagolós megoldást választanám, mert bár az a legnyakatekertebb, még mindig az a leginkább olvasható és az fejezi ki legjobban, hogy mi történik. Ha többféle hibakód is lehetséges, de a hibáknak nincs egyéb paramétere, akkor meg valami ilyesmit csinálok:

 

public enum Eredmeny {

    OK,
    HIBA1,
    HIBA2;

    public static final class EredmenyContainer {
         private final Object hurra;
         private final Eredmeny hiba;
         private EredmenyContainer(Eredmeny hiba, Object hurra) {
               this.hiba = hiba;
               this.hurra = hurra;
        }
    }

    public EredmenyContainer newEredmeny( Object hurra ) {
          if ((this == OK) == (hurra == null))
                throw new IllegalArgumentException( "..." );
          return new EredmenyContainer(this, hurra);
    }
}

 

Ezzel garantálom, hogy akkor és csak akkor adok vissza nullt, ha hiba van, és nem kell a hívó fél jóindulatára hagyatkoznom.

Előzmény: padisah (5826)
padisah Creative Commons License 2014.12.11 0 0 5826

scala-ban az options úgy működik, hogy options.getOr(defaultOjjektum)

vagy options.getOrThrow(new GazVanException)

 

így nincs null pointer ellenőrzés - vagy csak nem látom mert bele van ágyazva az options függvényekbe

 

viszont az olvashatóságon javít

 

olyan konkrét példa volt - nem feltétlenül jó tervezés - hogy a válasz egy Collection

amiben vagy van elem, vagy nincs...

(ez persze átverés, mert egy másik fejlesztő azt várná hogy elemek lesznek benne többes számban, azért is jó hogy van ez az Option)

... így ha az elem feldolgozása berakható egy for (X x: c) ciklusba, amit semmit sem csinál ha üres a c Collection

 

de ezen spórolás nem lesz, és szebb sem lesz a kód, csak robosztusabb

 

komplex hibakezeléssel terhelt függvényeknél szaladtam bele néhányszor abba a dilemmába, hogy a hiba objektumot és a normál objektumot hogyan adjam vissza

 

itt most hiba alatt felhasználói hibát kell érteni, vagy más üzletileg értelmezett elágazást a normál folyamattól

exception handlinget elvetettem mondván nem célszerű control flow-ra használni, ami itt a tényleges funkció, lassú lesz, felesleges stack trace-ek keletkeznek, aminek nincs szerepe mert nem bugot kell keresni, a user elgépelte a dátumot

 

az egyik opció az volt, hogy olyan visszatérési típust választok, amibe becsomagolható a hiba és a normál válasz is, vagy olyan általános a típusa pl. Objektum, amiben visszajöhet a hiba is, és sima elágazásokkal irányt lehet a hívó oldalon váltani

 

a másik, hogy paraméterben adok vissza hibát, pl egy collection, amiben a folyamat közben gyűlnek a hibák, és a hívó kód egyből látja ha nem üres

 

Előzmény: angyalhentes (5824)
NevemTeve Creative Commons License 2014.12.11 0 0 5825

Off: Ha C-ben lennénk, azt javasolnám neki, hogy egyáltalán ne adjon vissza objektumot néven keresztül, hanem a visszaadott érték mindig a hibakód legyen (pl: 0: ok; 1: nincs találat; egyéb: nagy baj van), az 'igazi' válasz paramétereken keresztül jöjjön:

 

int Employee_GetByName (String name, Employee **retptr);

angyalhentes Creative Commons License 2014.12.11 0 0 5824

Ilyenkor a függvény nullt nem adhat vissza, viszont cserébe kapunk egy helyesnek látszó, de mégsem a várt választ tartalmazó default objektumot, amivel lehet műveleteket végezni, de simán félrevihetik az alkalmazást.

 

És pont ezért jó, hogy van null. Persze kicserélhetnénk egy objektumra, amivel semmit nem lehet csinálni, és mennyivel jobb lenne, ha nem if (x==null)-okkal lenne tele a kód, hanem if (x==Null.of()) lenne helyette.

 

A megoldás szerintem egyáltalán nem a null eltörlése, hanem a fordító felokosítása lenne. Annak idején fejlesztett valaki PhD disszertáció gyanánt egy Nice nevű nyelvet, ami ugyanúgy a JVM-re épült (akkoriban ez eléggé újdonságnak számított, Scala még a fasorban se volt, Groovy meg pláne nem), és a Nice egyik alappillére az volt, hogy kétféleképp deklarálhattál változót:

 

private String x; // ez nem lehet null

private String? x; // ez viszont igen

 

És persze ugyanez metódusok paramétereire és visszatérési értékeire. A fordító pedig szépen ellenőrizte és betartatta, hogy null-t ne adhass át olyan helyen, ahol nem várják.

 

private void bar( Object x ) {...}

 

private void foo(Object? x) {

  bar( x ); // ilyet nem csinálhattál

 

  if (x != null) { //ilyet viszont igen

    bar( x );

  }

}

 

Az ötlet nyilván nem eredeti, bár most hirtelen nem jut eszembe, milyen másik nyelvekben van, viszont zökkenőmentesen beépíthető lenne a Java nyelvbe is, csak meg kéne fordítani: a jelöletlen deklaráció jelenti azt, hogy lehet null, és egy másik jelet (pl. !) használni akkor, ha a null tiltva van.

Előzmény: padisah (5822)
padisah Creative Commons License 2014.12.11 0 0 5823
Előzmény: padisah (5822)
padisah Creative Commons License 2014.12.11 0 0 5822

olvastam egy olyan blog cikket, amiben a szerző hosszan elmélkedett a null káros mivoltáról

a mondandó lényege az volt, hogy nem objektum-szerű az a szemlélet, hogy egy függvény vissza tud adni valamit ami maga nem objektum, és hogy a függvény válaszát kezelő kódnak kezelnie kell tudni a null választ is

 

a szerző a null object mintát propagálta, 

 

volt a cikk mögött egy jó kis vita is, hogy mi a jó megoldás, előkerült az Options<> meg egyebek

 

miközben jöttem hazafelé az jutott eszembe, hogy a null reference képezte egyik részproblémára lehetne egy jó kis aspect-es megoldást adni

 

a null válasz egyik részproblémája, amikor default értéket szeretnél visszakapni, ami tulajdonképpen ugyanaz mint a fent említett null object minta, részben azért mert nem akarod telerakni a kódodat if ( != null) elágazásokkal, amelyek ráadásul ismétlik önmagukat, vagy mert attól tartasz, hogy valahol el fogod felejteni a null check-et és élesben omlik össze miatta az alkalmazás, legyen valami ami ettől véd, a hibát felfedi és később lehet javítani

 

a másik részprobléma lenne hogy az adott kódban egy teljesen kódspecifikus elágazásra van szükséged, de ezt értelemszerűen nem lehet központosítani

 

Szóval az lenne a lényeg, hogy létrehozok egy aspect-et amit ráakasztok minden olyan függvényre, aminek a visszatérési értéke a kezelendő típusba tartozik, legyen ez a példa kevéért a String. Tehát minden String-et visszaadó függvényre ráakasztok egy olyan aspect-et, ami egy helyen megvizsgálja hogy amit a függény visszaadna az null-e. Ha igen, kicseréli egy nem-null default-ra, és azt adja vissza. 

 

Ilyenkor a függvény nullt nem adhat vissza, viszont cserébe kapunk egy helyesnek látszó, de mégsem a várt választ tartalmazó default objektumot, amivel lehet műveleteket végezni, de simán félrevihetik az alkalmazást.

 

Elég gyakori eset lehet, hogy keresek egy értéket, ha nincs, jó helyette egy default is, ami még üzleti tartalom szerint is helyes.

Flóra Cselényi Creative Commons License 2014.10.28 0 0 5821

BankTech Java Challenge – Izgalmas szakmai verseny JAVA programozóknak és egyetemistáknak. Díjak: amszterdami utazás, iPad Air, Sziget/Balaton Sound hetijegyek. Jelentkezz a www.javachallenge.hu oldalon!

angyalhentes Creative Commons License 2014.09.04 0 0 5820

Plusz ha stack trace is van a hibához, akkor a forrásban megjelölni, hogy melyik sor hányadik.

Előzmény: NevemTeve (5805)
Állás keresési tanácsa Creative Commons License 2014.09.03 0 0 5819

Tisztelt Java szakember!

 

5 főt keresünk Senior Java fejlesztő pozícióra multinacionális céghez kimagasló bérezéssel.

 

Elvárások:

 

- Angol középfokú nyelvtudás (Nyelvvizsga nem számít)

- Min. 3-5 éves JAVA környezetben szerzett fejlesztői tapasztalat

- Önálló munkavégzés

- Jó kommunikációs képesség

- Egy műszakos munkarend

 

- Kimagasló juttatási csomag

 

Amennyiben Önt, rokonát, ismerősét, kollégáját érdekelheti a lehetőség, küldje el önéletrajzát a következő email címre:

 

maria.fekete1@upcmail.hu

 

Köszönettel és üdvözlettel:

 

Fekete Mária

HR tanácsadó

InfoCheck Kft

06-30-477-95-63

DJG Creative Commons License 2014.08.15 0 0 5818

2: nem találja a com osztályt (de néhol a debugger bugos a netbeans-ban és ott is hibát talál, ahol nincs, vagy más soron jelez hibát)

 

Én ugyan nem vonom kétségbe, hogy előfordulhat egy fordítóprogramban is hiba, természetesen, de azért induljunk ki abból, főleg, hogy ha magadat kezdő programozónak nevezed, és te nyilván tudod, hogy nem. Vedd kiindulási alapnak, hogy száz hibából száztíz a sajátod lesz, és csak a maradék egy lehet, talán, esetleg másé...

Előzmény: dr.Akula úr (5807)
NevemTeve Creative Commons License 2014.08.08 0 0 5817

Esetleg (csak találgatok, de hátha beválik), ha beírod, hogy milyen IDE-ben kattintgatsz, akkor lesz valaki, aki tudja, hogy hová kell klikkelni benne a classpath beállításhoz.

Előzmény: dr.Akula úr (5815)
dr.Akula úr Creative Commons License 2014.08.07 0 0 5816

Három dimenziót akartam írni

Előzmény: dr.Akula úr (5815)
dr.Akula úr Creative Commons License 2014.08.07 0 0 5815

És hogyan rajzoltatnál ki +D-ben pontokat úgy, hogy jelölve legyen egy tisztességes kooridnáta-rendszerben, melyik pont, hol van. Ez matlabban szánalmasan egyszerű, java-ban pedig napok óta nem boldogulok, pedig sokan örülnének neki.

Előzmény: NevemTeve (5814)
NevemTeve Creative Commons License 2014.08.07 0 0 5814

Miért működne, én nem töltöttem le ezt a csodaprogramot...

 

Egyébként az az érzésem, hogy te valami kattintgatós eszközzel (más szóval IDE-vel) harcolsz, és egyszerűen nem találod benne a Fordítási beállítások menüpontot... ebben persze távvezérléssel nemigen lehet segíteni.

Előzmény: dr.Akula úr (5813)
dr.Akula úr Creative Commons License 2014.08.07 0 0 5813

Nem boldogulok, nem tudsz egy print screen képet küldeni, ha neked működik?

Amúgy közben ezt is telepítettem: http://www.java3d.org/introduction.html

és ennek az importálásával már nincs baj, igaz, nem kell a teljes elérési utat megadnom

Előzmény: NevemTeve (5812)
NevemTeve Creative Commons License 2014.08.07 0 0 5812

Ilyesmi:

 

javac -classpath .;C:\VALAHOL\VALAMI.ZIP;C:\MASHOL\MASVALAMI.JAR;C:\MEGINT\VALAMI\MAS.JAR ScatterPlot3DDemo2.java

 

Ebből az elején a .pont is fontos, mert az jelenti az aktuális könyvtárat.

Előzmény: dr.Akula úr (5811)
dr.Akula úr Creative Commons License 2014.08.07 0 0 5811

sorry

és hogy állítom be ezt a classpath-ot?

Előzmény: NevemTeve (5810)

Ha kedveled azért, ha nem azért nyomj egy lájkot a Fórumért!