- Fórumok
- Szoftverfejlesztés
- Java programozás
- (kiemelt téma)
- Steam Deck
- AMD K6-III, és minden ami RETRO - Oldschool tuning
- Hobby elektronika
- Projektor topic
- Nem kell még temetni: 2 éves órajelcsúcsot döntöttek meg Raptor Lake-kel
- AMD vs. INTEL vs. NVIDIA
- Napokon belül váratlan versenyzővel bővül a VGA-piac
- Analóg fényképezés
- Kormányok / autós szimulátorok topikja
- AMD Ryzen 9 / 7 / 5 / 3 5***(X) "Zen 3" (AM4)
-
11900 - 11801
12211 - 12201 12200 - 12101 12100 - 12001 12000 - 11901 11900 - 11801 11800 - 11701 11700 - 11601 11600 - 11501 11500 - 11401 11400 - 11301 11300 - 11201 11200 - 11101 11100 - 11001 11000 - 10901 10900 - 10801 10800 - 10701 10700 - 10601 10600 - 10501 10500 - 10401 10400 - 10301 10300 - 10201 10200 - 10101 10100 - 10001 10000 - 8001 8000 - 6001 6000 - 4001 4000 - 2001 2000 - 1
-
Fórumok
PROHARDVER! - hardver fórumok
Notebookok TV & Audió Digitális fényképezés Alaplapok, chipsetek, memóriák Processzorok, tuning Hűtés, házak, tápok, modding Videokártyák Monitorok Adattárolás Multimédia, életmód, 3D nyomtatás Tabletek, E-bookok Nyomtatók, szkennerek PC, mini PC, barebone, szerver Beviteli eszközök Egyéb hardverek PROHARDVER! BlogokMobilarena - mobil fórumok
Okostelefonok Mobiltelefonok Okosórák Autó+mobil Üzlet és Szolgáltatások Mobilalkalmazások Tartozékok, egyebek Mobilarena blogokIT café - infotech fórumok
Infotech Hálózat, szolgáltatók OS, alkalmazások SzoftverfejlesztésGAMEPOD - játék fórumok
PC játékok Konzol játékok MobiljátékokLOGOUT - lépj ki, lépj be!
LOGOUT reakciók Monologoszféra FototrendFÁRADT GŐZ - közösségi tér szinte bármiről
Tudomány, oktatás Sport, életmód, utazás, egészség Kultúra, művészet, média Gazdaság, jog Technika, hobbi, otthon Társadalom, közélet Egyéb Lokál PROHARDVER! interaktív
Új hozzászólás Aktív témák
-
Lortech
addikt
Adott egy Counter és SubCounter, amely extendálja a Countert. Mindegyikben egy gc() methódus. A kérdésem, hogy a ciklusban (kérdőjeleknél), hogyan tudom az override-olt ősosztály gc()-t hívni?
ArrayList<Counter> cList = new ArrayList<>();cList.add(new SubCounter());cList.add(new Counter());for(Counter list:cList) {System.out.println(list.gc());??????????????}Itt a gc egy példányszintű metódus (instance method), ami késői kötést (late/dynamic binding) használ, így a Counter futásidejű típusa határozza meg, hogy melyik gc() metódus implementáció hívódik meg (polimorfizmus). Ha SubCounter újradefiniálta (override) a gc()-t, akkor ha a list változód futás idejű típusa SubCounter, akkor az override-olt változat fog hívódni, nem tudod meghívni a Counter gc() metódusát azon a példányon keresztül.
(azért írtam zárójeleket, hogy jobban utána tudj nézni ezeknek a fogalmaknak)
-
Ablakos
addikt
Adott egy Counter és SubCounter, amely extendálja a Countert. Mindegyikben egy gc() methódus. A kérdésem, hogy a ciklusban (kérdőjeleknél), hogyan tudom az override-olt ősosztály gc()-t hívni?
ArrayList<Counter> cList = new ArrayList<>();cList.add(new SubCounter());cList.add(new Counter());for(Counter list:cList) {System.out.println(list.gc());??????????????} -
btraven
őstag
Hívnak hogy menjek Full Stack Developer-nek Ukrajnába. Szerintetek menjek?
Full Stack-be a fegyverforgatás is beletartozik? -
sztikac
őstag
Ha megnézed a metódus paraméterét, akkor láthatod, hogy Object típussal érkezik be. Ahhoz hogy össze tud hasonlítani a különböző Person specifikus fieldeket, először le kell castolnod, hogy elkérhesd őket.
Huh, ha hiszed ha nem kb. 25x átfutottam ezt a kódrészletet és az agyam automatikusan így dolgozta fel:
public boolean equals(Person compared) {...}Köszi!
-
yossarian14
tag
Ha már MOOC... Van ez a kód:
public boolean equals(Object compared) {
// if the variables are located in the same position, they are equal
if (this == compared) {
return true;
}
// if the compared object is not of type Person, the objects are not equal
if (!(compared instanceof Person)) {
return false;
}
// convert the object into a Person object
Person comparedPerson = (Person) compared;
// if the values of the object variables are equal, the objects are equal
if (this.name.equals(comparedPerson.name) &&
this.age == comparedPerson.age &&
this.weight == comparedPerson.weight &&
this.height == comparedPerson.height) {
return true;
}
// otherwise the objects are not equal
return false;
}Itt nem igazán értem, hogy a type cast-ra (
Person comparedPerson = (Person) compared;) mi szükség van, hiszen a metódus már megkapja a compared objektumot
Ha megnézed a metódus paraméterét, akkor láthatod, hogy Object típussal érkezik be. Ahhoz hogy össze tud hasonlítani a különböző Person specifikus fieldeket, először le kell castolnod, hogy elkérhesd őket.
-
sztikac
őstag
Ha már MOOC... Van ez a kód:
public boolean equals(Object compared) {
// if the variables are located in the same position, they are equal
if (this == compared) {
return true;
}
// if the compared object is not of type Person, the objects are not equal
if (!(compared instanceof Person)) {
return false;
}
// convert the object into a Person object
Person comparedPerson = (Person) compared;
// if the values of the object variables are equal, the objects are equal
if (this.name.equals(comparedPerson.name) &&
this.age == comparedPerson.age &&
this.weight == comparedPerson.weight &&
this.height == comparedPerson.height) {
return true;
}
// otherwise the objects are not equal
return false;
}Itt nem igazán értem, hogy a type cast-ra (
Person comparedPerson = (Person) compared;) mi szükség van, hiszen a metódus már megkapja a compared objektumot
-
sztikac
őstag
-
Ablakos
addikt
-
Ablakos
addikt
-
floatr
veterán
Köszönöm, teljesen világos. Tehát a part.clear() helyett egy part = new ArrayList<>() a megoldás.
(Sajnos az elmélet és a gyakorlat még nincs szinkronban nálam.
Tudom, hogy referenciával megy az objektum másolás, de én foxi módra eltökéltem hogy átmásolódik az egyik lista tartalma a másikba.)Aztán ha ez megvan, jöhet a streames-collectoros megoldás is

-
Ablakos
addikt
A
partreferenciája nem szűnik meg, ha arra gondoltál. A belepakolt Stringeket a clear ugyan eltávolítja a listából, de apartél és virul. Egy referencia akkor szűnik meg, amikor semmilyen más élő objektum nem hivatkozik rá (mert mondjuk az utolsó hivatkozást is felülcsapod valami más referenciával).
Na meg a vezérlés kifutott a scope-jából is, ami a part esetén a metódus kapcsos zárójelei között található. (Ha a while ciklus kapcsos zárójelei közé tennéd a part deklarációt, akkor az lenne az ő scope-ja és minden körben új példány készülne belőle, de azt most nem akarod.)A csoda a
listRecipes.add(new Recipe(part));soron történik, apartreferenciáját megjegyzi a recipe ojjektum is - immáron nem csak apartváltozó fog arra hivatkozni -, az ő referenciáját pedig beledobjuk alistRecipeslistába, így az már nem vész el addig, amíg alistRecipeslétezik.Tehát a clear helyett bátran csinálhatsz egy új lista objektumot a
partváltozódnak, sőt illene is, ha nem akarod piszkálni a régi lista tartalmát, ami már alistRecipesbugyraiban pihen.Köszönöm, teljesen világos. Tehát a part.clear() helyett egy part = new ArrayList<>() a megoldás.
(Sajnos az elmélet és a gyakorlat még nincs szinkronban nálam.
Tudom, hogy referenciával megy az objektum másolás, de én foxi módra eltökéltem hogy átmásolódik az egyik lista tartalma a másikba.) -
Szmeby
tag
Egy kis segítséget szeretnék kérni. A mellékelt txt részlet (recept) szerkezetet szeretném listába olvasni. (A receptek üres sor szeparáltak. Recipe osztály 1db arraylist példány változót tartalmaz.)
Pancake dough
60
milk
egg
flour
sugar
salt
butterMeatballs
20
ground meat
egg
breadcrumbsTofu rolls
30
tofu
rice
water
carrot
cucumber
avocado
wasabiA tervem: string listába (part) tettem a sorokat és file üres sor esetén ezt a listát odaadtam a recepies listának, ami az osztályt tárolja. A gondom, hogy a part.clear(); hívással az átadott referencia is megszűnik. Hogy lehetne ez jól megoldani?
public static ArrayList<Recipe> readRecordsFromFile(String fileName) {ArrayList<Recipe> listRecipes = new ArrayList<>();ArrayList<String> part = new ArrayList<>();try {Scanner file = new Scanner(Paths.get(fileName));while (file.hasNextLine()) {String[] str = file.nextLine().split(System.lineSeparator());if (str[0].equals("")) {listRecipes.add(new Recipe(part));part.clear();} else {part.add(str[0]);}}if (!part.isEmpty()) {listRecipes.add(new Recipe(part));}} catch (IOException ex) {Logger.getLogger(RecipeSearch.class.getName()).log(Level.SEVERE, null, ex);}return listRecipes;}A
partreferenciája nem szűnik meg, ha arra gondoltál. A belepakolt Stringeket a clear ugyan eltávolítja a listából, de apartél és virul. Egy referencia akkor szűnik meg, amikor semmilyen más élő objektum nem hivatkozik rá (mert mondjuk az utolsó hivatkozást is felülcsapod valami más referenciával).
Na meg a vezérlés kifutott a scope-jából is, ami a part esetén a metódus kapcsos zárójelei között található. (Ha a while ciklus kapcsos zárójelei közé tennéd a part deklarációt, akkor az lenne az ő scope-ja és minden körben új példány készülne belőle, de azt most nem akarod.)A csoda a
listRecipes.add(new Recipe(part));soron történik, apartreferenciáját megjegyzi a recipe ojjektum is - immáron nem csak apartváltozó fog arra hivatkozni -, az ő referenciáját pedig beledobjuk alistRecipeslistába, így az már nem vész el addig, amíg alistRecipeslétezik.Tehát a clear helyett bátran csinálhatsz egy új lista objektumot a
partváltozódnak, sőt illene is, ha nem akarod piszkálni a régi lista tartalmát, ami már alistRecipesbugyraiban pihen. -
Ablakos
addikt
Egy kis segítséget szeretnék kérni. A mellékelt txt részlet (recept) szerkezetet szeretném listába olvasni. (A receptek üres sor szeparáltak. Recipe osztály 1db arraylist példány változót tartalmaz.)
Pancake dough
60
milk
egg
flour
sugar
salt
butterMeatballs
20
ground meat
egg
breadcrumbsTofu rolls
30
tofu
rice
water
carrot
cucumber
avocado
wasabiA tervem: string listába (part) tettem a sorokat és file üres sor esetén ezt a listát odaadtam a recepies listának, ami az osztályt tárolja. A gondom, hogy a part.clear(); hívással az átadott referencia is megszűnik. Hogy lehetne ez jól megoldani?
public static ArrayList<Recipe> readRecordsFromFile(String fileName) {ArrayList<Recipe> listRecipes = new ArrayList<>();ArrayList<String> part = new ArrayList<>();try {Scanner file = new Scanner(Paths.get(fileName));while (file.hasNextLine()) {String[] str = file.nextLine().split(System.lineSeparator());if (str[0].equals("")) {listRecipes.add(new Recipe(part));part.clear();} else {part.add(str[0]);}}if (!part.isEmpty()) {listRecipes.add(new Recipe(part));}} catch (IOException ex) {Logger.getLogger(RecipeSearch.class.getName()).log(Level.SEVERE, null, ex);}return listRecipes;} -
Drizzt
nagyúr
Én csak azt ismerem TDD-nek amit a 3. pontban írsz.
Programkódot nem szabad írni amíg a teszt nincs meg.
És nem szabad újabb tesztet írni amig nincs kész az előző tesztre a jó program.
unit teszt az más tészta, azt lehet írogatni szabadon a program mellett.
Tehát ha valaki unit tesztet használ az még nem TDD.De lehet rosszul tudja, Robert C. Martin könyvében olvastam.
Ezzel nem mondasz ellent annak, amit mondtam. Sehol nem állítottam, hogy az első 2 TDD lenne.

-
btraven
őstag
[Például]
De egyébként A hello world egy unit tesztelhetőség szempontjából pont eléggé faramuci dolog, mert ott a függvényedet le kellene választani a környezetéről. Ha nem a környezetéről leválasztva tesztelsz valamit, akkor az az én szememben már inkább integration teszt.
Egy olyan függvényt, ami a standard outputra kiírja, hogy Hello world, nem lehet jól unit testelni, mert a standard outputot kell mockolni, ami meg csak ilyen nyakatekert módokon oldható meg.
Ha viszont olyan függvényed lenne, ami visszaadja, hogy: "Hello world" -> remekül unit tesztelhető. Olyan, ami kap egy outputstream-et input-ként és kiírja rá, hogy "Hello world" -> szintén remekül unit testelhető.
"Ritka volt az, amikor nem változott hétről hétre a követelmény, és nagyon kevés része volt a kódnak az, amiben unit tesztre érdemes dolgok történtek."
Ez utóbbi mindig nagyon gyanús. Én is mindig azt hiszem, ogy jó, triviális kódokat írok, aztán amikor elkezdem tesztelni, szinte mindig kijön valami turpisság. Nyilván a tesztelés mehet három módon: kézzel pöcögtetve: valószínűleg jó kódot eredményez, de ha legközelebb aki hozzányúl, nem olyan alapos, mint aki írta és kézzel tesztelte, akkor rögtön veszélyes lesz módosítani a kódot. 2.: vagy azonnal automata tesztet írni, vagy az előző pont kézi eseteit automatizálni. Ez elég jó általában. 3.: előre írni meg a tesztet és csak utána a kódot. Pont az a nagy előnye, ami miatt elsőre nagyon nehéz vele dolgozni: végig kell előre gondolni az elvárt viselkedést és a trükkös eseteket is. Erre gyakran használt kifogás, hogy sokat változik az elvárás, azért nem kezdenek vele. De nem teljesen korrekt érv, hiszen anélkül, hogy tudná mit akar csinálni az ember, el sem tud mit kezdeni programozni.
Én tényleg csak alkalomszerűen TDD-zek, de örülnék, ha valamikor elkezdenénk végignyomni vele teljes projekteket, mert minőségben ég és föld a különbség. Ha előre írsz tesztet, akkor sokkal jobban át tudod gondolni, hogy milyen osztályoknak, milyen interface-eken keresztül kell tudniuk egymással beszélni. Sokkal könnyebb elkerülni a spagetti kódokat.Én csak azt ismerem TDD-nek amit a 3. pontban írsz.
Programkódot nem szabad írni amíg a teszt nincs meg.
És nem szabad újabb tesztet írni amig nincs kész az előző tesztre a jó program.
unit teszt az más tészta, azt lehet írogatni szabadon a program mellett.
Tehát ha valaki unit tesztet használ az még nem TDD.De lehet rosszul tudja, Robert C. Martin könyvében olvastam.
-
axioma
veterán
Örülök h sikerült ennyiből meglátni minden aspektusát.
#11881 Drizzt
Többek között azért is más a minőség, mert sokkal jobban végiggondolt az egész. Szinte már waterfall
#11879 btraven
Ha már rendszerszemlélet, dobd bele egy bootba, kapja meg webfluxon a nevet, majd küldje el egy ELK-nek a generált szöveget. Tedd a szöveg generálást egy service-be, amire írhatsz 1 darab unit tesztet, minden másnál mókolsz, meg integrálsz, és többször becsapod magad.#11882 axioma
Ezért mondom, hogy ehhez túl cinikus vagyok. De az már megint nem agilis, ha droidokkal dolgozol. Ráadásul a tesztelt kód többszörösét megírod, ahol a tesztben ugyanúgy lehet hiba, amin átsiklasz, mert rosszul tesztel.Vak vagyok, kevertem a ket mikulast, mea culpa... es azt gyorsolvastam h engem cinikusozol, hiaba nem is allt ossze az agilis sztoriddal. [Pedig szabin vagyok, igaz lakasatrendezes miatt nem tul kipihent.]
A velemenyem all, csak nem neked kellett volna cimeznem. -
BE4GLE
senior tag
Vagy csak olyanok kozott dolgozom akik a problemat oldjak meg a szoftver letrehozasaval es az implementacio helyesseget tesztelik megfelelo szintu tesztekkel utat helyesebbnek tartjak.
Tesztet irni TDD-hez DE ugy, hogy az tenyleg minden lehetseges implementacio eseten minden hibat elkap, akkora befektetes, hogy annyi ido alatt az _egyik_ implementaciot tesztelessel egyutt egy-harom masik problemara is megcsinalja [JOL]. Teljes tesztet elore megirni ugy, hogy egy lehetseges implementacio mar a fejeben van, az meg a menet kozben kiderulo donteseknel csinal lyukat [aztan vagy betomik vagy nem... talan ahol merge feltetelbe fut].
Egy esetben jo lehet: az "agy" irja a teszteket, a code monkey-k/juniorok/etc. meg az implementaciot. De akkor sem biztos hogy kicsit is hosszabb tavra nezve.
[Termeszetesen az elozoleg irt kiveteleket fenntartva, altalanosabb meretu/beagyazottsagu/bonyolultsagu fejlesztesi feladatokra.] Es persze SZVSZ.Nem értem mi igényel ebben olyan sok időt.
Az én tesztjeim nem szoktak olyan robosztus kódok lenni. Hiszen csak pár mock adat, fake hívás, és assert az egész. Viszont a teszt nélküli legacy kódok javítására borzalmasan sok idő megy el. A menet közben kiderülő döntések pedig mindenképpen megkavarják a dolgokat. Ez nem érv a TDD-vel szemben. -
floatr
veterán
Örülök h sikerült ennyiből meglátni minden aspektusát.
#11881 Drizzt
Többek között azért is más a minőség, mert sokkal jobban végiggondolt az egész. Szinte már waterfall
#11879 btraven
Ha már rendszerszemlélet, dobd bele egy bootba, kapja meg webfluxon a nevet, majd küldje el egy ELK-nek a generált szöveget. Tedd a szöveg generálást egy service-be, amire írhatsz 1 darab unit tesztet, minden másnál mókolsz, meg integrálsz, és többször becsapod magad.#11882 axioma
Ezért mondom, hogy ehhez túl cinikus vagyok. De az már megint nem agilis, ha droidokkal dolgozol. Ráadásul a tesztelt kód többszörösét megírod, ahol a tesztben ugyanúgy lehet hiba, amin átsiklasz, mert rosszul tesztel. -
axioma
veterán
Túl cinikus vagyok a TDD-hez

Az utóbbi években csak olyan agilis projektekben dolgoztam, ahol az agilitás leginkább arra vonatkozott, hogy menetközben találja ki a megrendelő, hogy mit is akar (vagy nem). A projektek óriási keretrendszereket használnak, amiben az egyes funkciók deklaratív elemeken keresztül automatikusan készülnek el. Ritka volt az, amikor nem változott hétről hétre a követelmény, és nagyon kevés része volt a kódnak az, amiben unit tesztre érdemes dolgok történtek.
Ha ilyen projektekre valaki rávág egy coverage kritériumot, mert az jól mutat, a teljes csapat egy emberként áll fel, és megy át a konkurenciához.
De hello ${username} példakódban piszkosul jól mutat...Vagy csak olyanok kozott dolgozom akik a problemat oldjak meg a szoftver letrehozasaval es az implementacio helyesseget tesztelik megfelelo szintu tesztekkel utat helyesebbnek tartjak.
Tesztet irni TDD-hez DE ugy, hogy az tenyleg minden lehetseges implementacio eseten minden hibat elkap, akkora befektetes, hogy annyi ido alatt az _egyik_ implementaciot tesztelessel egyutt egy-harom masik problemara is megcsinalja [JOL]. Teljes tesztet elore megirni ugy, hogy egy lehetseges implementacio mar a fejeben van, az meg a menet kozben kiderulo donteseknel csinal lyukat [aztan vagy betomik vagy nem... talan ahol merge feltetelbe fut].
Egy esetben jo lehet: az "agy" irja a teszteket, a code monkey-k/juniorok/etc. meg az implementaciot. De akkor sem biztos hogy kicsit is hosszabb tavra nezve.
[Termeszetesen az elozoleg irt kiveteleket fenntartva, altalanosabb meretu/beagyazottsagu/bonyolultsagu fejlesztesi feladatokra.] Es persze SZVSZ. -
Drizzt
nagyúr
[Például]
De egyébként A hello world egy unit tesztelhetőség szempontjából pont eléggé faramuci dolog, mert ott a függvényedet le kellene választani a környezetéről. Ha nem a környezetéről leválasztva tesztelsz valamit, akkor az az én szememben már inkább integration teszt.
Egy olyan függvényt, ami a standard outputra kiírja, hogy Hello world, nem lehet jól unit testelni, mert a standard outputot kell mockolni, ami meg csak ilyen nyakatekert módokon oldható meg.
Ha viszont olyan függvényed lenne, ami visszaadja, hogy: "Hello world" -> remekül unit tesztelhető. Olyan, ami kap egy outputstream-et input-ként és kiírja rá, hogy "Hello world" -> szintén remekül unit testelhető.
"Ritka volt az, amikor nem változott hétről hétre a követelmény, és nagyon kevés része volt a kódnak az, amiben unit tesztre érdemes dolgok történtek."
Ez utóbbi mindig nagyon gyanús. Én is mindig azt hiszem, ogy jó, triviális kódokat írok, aztán amikor elkezdem tesztelni, szinte mindig kijön valami turpisság. Nyilván a tesztelés mehet három módon: kézzel pöcögtetve: valószínűleg jó kódot eredményez, de ha legközelebb aki hozzányúl, nem olyan alapos, mint aki írta és kézzel tesztelte, akkor rögtön veszélyes lesz módosítani a kódot. 2.: vagy azonnal automata tesztet írni, vagy az előző pont kézi eseteit automatizálni. Ez elég jó általában. 3.: előre írni meg a tesztet és csak utána a kódot. Pont az a nagy előnye, ami miatt elsőre nagyon nehéz vele dolgozni: végig kell előre gondolni az elvárt viselkedést és a trükkös eseteket is. Erre gyakran használt kifogás, hogy sokat változik az elvárás, azért nem kezdenek vele. De nem teljesen korrekt érv, hiszen anélkül, hogy tudná mit akar csinálni az ember, el sem tud mit kezdeni programozni.
Én tényleg csak alkalomszerűen TDD-zek, de örülnék, ha valamikor elkezdenénk végignyomni vele teljes projekteket, mert minőségben ég és föld a különbség. Ha előre írsz tesztet, akkor sokkal jobban át tudod gondolni, hogy milyen osztályoknak, milyen interface-eken keresztül kell tudniuk egymással beszélni. Sokkal könnyebb elkerülni a spagetti kódokat. -
BE4GLE
senior tag
Ha ez a kérdés fölmerült benned az számomra azt sugallja, hogy nagyon nem tudod mire való egy unit teszt. Vagy csak trollkodsz.
Az ilyen tesztekben az interface-eket mock-olod. A user interface-t is. Nem célja ezeknek a teszeknek ellenőrizni, hogy a layout-ot helyesen raktad e össze, és hogy a szöveged jól legyen tördelve. Viszont a Hello World-ig vezető utat le tudod tesztelni és a kimenetet is. -
btraven
őstag
Túl cinikus vagyok a TDD-hez

Az utóbbi években csak olyan agilis projektekben dolgoztam, ahol az agilitás leginkább arra vonatkozott, hogy menetközben találja ki a megrendelő, hogy mit is akar (vagy nem). A projektek óriási keretrendszereket használnak, amiben az egyes funkciók deklaratív elemeken keresztül automatikusan készülnek el. Ritka volt az, amikor nem változott hétről hétre a követelmény, és nagyon kevés része volt a kódnak az, amiben unit tesztre érdemes dolgok történtek.
Ha ilyen projektekre valaki rávág egy coverage kritériumot, mert az jól mutat, a teljes csapat egy emberként áll fel, és megy át a konkurenciához.
De hello ${username} példakódban piszkosul jól mutat...Ha már Hello World.
Azt hogy kell TDD-ben csinálni?
Hogy állapítja meg a teszt hogy kiírta-e a képernyőre hogy Helló világ?
És a jó pozícióba. Nem csak Helló vi és a lág meg kilóg oldalt. -
BE4GLE
senior tag
Túl cinikus vagyok a TDD-hez

Az utóbbi években csak olyan agilis projektekben dolgoztam, ahol az agilitás leginkább arra vonatkozott, hogy menetközben találja ki a megrendelő, hogy mit is akar (vagy nem). A projektek óriási keretrendszereket használnak, amiben az egyes funkciók deklaratív elemeken keresztül automatikusan készülnek el. Ritka volt az, amikor nem változott hétről hétre a követelmény, és nagyon kevés része volt a kódnak az, amiben unit tesztre érdemes dolgok történtek.
Ha ilyen projektekre valaki rávág egy coverage kritériumot, mert az jól mutat, a teljes csapat egy emberként áll fel, és megy át a konkurenciához.
De hello ${username} példakódban piszkosul jól mutat...Amit leírtál az távolról sem agilis fejlesztés. A rossz menedzsment mindig rányomja a bélyegét a projektminőségre. Ez nem a TDD hibája.
-
BE4GLE
senior tag
Nálunk se jutnál keresztül a felvételi folyamaton enélkül. És nem tudom miről beszélsz. Én sosem bántam meg. Az olyan kódokkal viszont nagyon nehéz dolgozni, amik teszt nélkül össze lettek gányolva. Már csak azért is, mert az ilyen kódok jellemzően később se teszteletőek. Egészen máshogy írsz meg valamit, ha a tesztelhetőség és karbantarthatóság is szempont, és nem csak az, hogy minél előbb legyen egy látszólag működő funkciód.
-
floatr
veterán
Nalam a tdd ott bukik, hogy mikor me'g semmi nincs a szoftverbol csak tervek, akkor forditjak le a kovetelmenyeket tesztesetekre. Ami meg csak akkor mukodik jol, ha vagy eleve valami mechanikus, a kimenetekkel csak elgepelest ellenorzo a feladat [protokoll vagy kodolas stb. megvalositasa], vagy meglevo 10 eve futo cuccba +1 feature, ahol minden mas kobe van vesve, nincs fejlesztoi dontesi helyzet. Ezektol eltero esetben nagy esellyel lesz menet kozbeni varialas vagy olyan fontos kepesseg amit elfelejtettek tesztesetbe fogalmazni, mert annyira trivialis ha az egeszet nezne a fejleszto, nem csak a fixalando teszteseteket egymas utan.
(Az meg nem tdd, hogy ir teszteket, ir ettol fgtl a kovetelmenyekbol egy szoftvert, es mikor kilora kesz akkor engedi ra a teszteket, es kezd javitgatni. Legalabbis szvsz.)Túl cinikus vagyok a TDD-hez

Az utóbbi években csak olyan agilis projektekben dolgoztam, ahol az agilitás leginkább arra vonatkozott, hogy menetközben találja ki a megrendelő, hogy mit is akar (vagy nem). A projektek óriási keretrendszereket használnak, amiben az egyes funkciók deklaratív elemeken keresztül automatikusan készülnek el. Ritka volt az, amikor nem változott hétről hétre a követelmény, és nagyon kevés része volt a kódnak az, amiben unit tesztre érdemes dolgok történtek.
Ha ilyen projektekre valaki rávág egy coverage kritériumot, mert az jól mutat, a teljes csapat egy emberként áll fel, és megy át a konkurenciához.
De hello ${username} példakódban piszkosul jól mutat... -
axioma
veterán
Nalam a tdd ott bukik, hogy mikor me'g semmi nincs a szoftverbol csak tervek, akkor forditjak le a kovetelmenyeket tesztesetekre. Ami meg csak akkor mukodik jol, ha vagy eleve valami mechanikus, a kimenetekkel csak elgepelest ellenorzo a feladat [protokoll vagy kodolas stb. megvalositasa], vagy meglevo 10 eve futo cuccba +1 feature, ahol minden mas kobe van vesve, nincs fejlesztoi dontesi helyzet. Ezektol eltero esetben nagy esellyel lesz menet kozbeni varialas vagy olyan fontos kepesseg amit elfelejtettek tesztesetbe fogalmazni, mert annyira trivialis ha az egeszet nezne a fejleszto, nem csak a fixalando teszteseteket egymas utan.
(Az meg nem tdd, hogy ir teszteket, ir ettol fgtl a kovetelmenyekbol egy szoftvert, es mikor kilora kesz akkor engedi ra a teszteket, es kezd javitgatni. Legalabbis szvsz.) -
Drizzt
nagyúr
Nagyon teves feltetelezes. Konkretan van ceg, ahol a felveteli reszekent TDD-ben kell megoldanod a feladatot. Mivel - meglepeteeees - TDD alapon dolgoznak. En viszonylag keves dolgot fejlesztettem TDD-ben, de amit igen, az mindig meghalalta.
-
btraven
őstag
A TDD zseniális ötlet.
De azért ara kíváncsi vagyok hogy a gyakorlatban hány cég fejleszt ezzel.
Kiderül hogy 1-2, de azok is megbánták. -
BE4GLE
senior tag
Sok cég projektjébe be se lehet mergelni olyan kódot, ami nincs letesztelve. Szóval jobb ha megbarátkozol velük, és úgy általában a TDD-vel, mert ha csak nem valami kontár projekten dolgozol, akkor legalább egy code coverage ellenőrzés le fog futni a projekten.
-
Ablakos
addikt
Mennyire használják a gyakorlati fejlesztésben a metódus tesztelés (assert) technikát? Érdemes komolyabban elmélyülni vagy elég az "ezt is láttám már" tudás?
-
floatr
veterán
-
Ablakos
addikt
A
containsteljeskörűen működik. Ha belenézel azObjectosztályba (ami minden osztály őse), láthatod, hogy azequalsmetódus referenciák egyenlőségét vizsgálja - lévén más információja nincs az osztályról. Azt csinálja, mint amit az == operátor.Tehát az
equalsés egyben acontainsalapértelmezett működése az, hogy csak akkor tekint két objektumot egyenlőnek / a lista egy tagjának, ha az az objektum ugyanaz az objektum, mondjuk úgy, hogy ugyanazon a memóriacímen található adathalmaz.Abban a pillanatban, hogy kiadod a
newutasítást, a jvm egy vadonatúj objektumot fog gyártani neked. Még ha ugyanazt a szöveget adod is meg neki a könyv címe paraméterben, még ha ugyanaz az évszám, még ha látszólag ugyanúgy is néz ki az az objektum, mint egy másik, a referenciájuk eltér, hiszen anewutasítással ezt kérted a jvm-től, egy új objektumot.A referencia alapú összehasonlítás időnként hasznos dolog, de a modelljeinkben többnyire nem ez a legjobb megoldás. Ezért készítünk az objektumainknak saját
equalst, amikor azokat egymással össze akarjuk hasonlítani, és azt várjuk el tőle, hogy egyenlőnek tekintsen két könyv objektumot, ahol a cím és az évszám egyenlő. Ezt sajnos meg kell írnod, mert a jáva túl buta, hogy kitalálja a programozó gondolatait, elvárásait.
(És készítünk nekik saját hashcode implementációt is, amikor azokat mondjuk HashSet-ben kívánjuk gyűjtögetni, vagy HashMap kulcsaként akarjuk felhasználni.)Tehát a
Book b1 = new Book("a", 1);és aBook b2 = new Book("a", 1);eltérő referenciával bír, az alapértelmezettequalsszerint ők különböző objektumok. Míg aBook b3 = b1;ugyanazzal a referenciával bír, mint a b1 objektumod, az alapértelmezettequalsszerint ők ugyanazok az objektumok.Értem és köszönöm a magyarázatot.
-
Szmeby
tag
A
containsteljeskörűen működik. Ha belenézel azObjectosztályba (ami minden osztály őse), láthatod, hogy azequalsmetódus referenciák egyenlőségét vizsgálja - lévén más információja nincs az osztályról. Azt csinálja, mint amit az == operátor.Tehát az
equalsés egyben acontainsalapértelmezett működése az, hogy csak akkor tekint két objektumot egyenlőnek / a lista egy tagjának, ha az az objektum ugyanaz az objektum, mondjuk úgy, hogy ugyanazon a memóriacímen található adathalmaz.Abban a pillanatban, hogy kiadod a
newutasítást, a jvm egy vadonatúj objektumot fog gyártani neked. Még ha ugyanazt a szöveget adod is meg neki a könyv címe paraméterben, még ha ugyanaz az évszám, még ha látszólag ugyanúgy is néz ki az az objektum, mint egy másik, a referenciájuk eltér, hiszen anewutasítással ezt kérted a jvm-től, egy új objektumot.A referencia alapú összehasonlítás időnként hasznos dolog, de a modelljeinkben többnyire nem ez a legjobb megoldás. Ezért készítünk az objektumainknak saját
equalst, amikor azokat egymással össze akarjuk hasonlítani, és azt várjuk el tőle, hogy egyenlőnek tekintsen két könyv objektumot, ahol a cím és az évszám egyenlő. Ezt sajnos meg kell írnod, mert a jáva túl buta, hogy kitalálja a programozó gondolatait, elvárásait.
(És készítünk nekik saját hashcode implementációt is, amikor azokat mondjuk HashSet-ben kívánjuk gyűjtögetni, vagy HashMap kulcsaként akarjuk felhasználni.)Tehát a
Book b1 = new Book("a", 1);és aBook b2 = new Book("a", 1);eltérő referenciával bír, az alapértelmezettequalsszerint ők különböző objektumok. Míg aBook b3 = b1;ugyanazzal a referenciával bír, mint a b1 objektumod, az alapértelmezettequalsszerint ők ugyanazok az objektumok. -
Ablakos
addikt
Akkor nem értem a problémát, nálam teljesen jól működik:
Name (empty will stop):
mybook
Publication year:
1
Thank you! Books added: 1
Name (empty will stop):
mybook
Publication year:
1
The book is already on the list. Let's not add the same book again.
Name (empty will stop):
Thank you! Books added: 1
Name (empty will stop):
yourbook
Publication year:
2
Thank you! Books added: 2
Name (empty will stop):
mybook 1
yourbook 2(Thank you! Books added: egy picit félrevezető kiírás, mert akkor is jön, ha nem adtunk hozzá semmit)
Most már, működik. Miután elárultad, hogy az equal-t is meg kell valósítani. (override)
Előtte nem tudtam, hogy a contains (teljeskörű) működéséhez azt is meg kell írni.Köszönöm.
-
Drizzt
nagyúr
Mindössze két tag változó van a Book osztályban:
private String name;private int publicationYear;
-----------------------------------------------------------//------------@Overridepublic boolean equals(Object obj) {if (this == obj) {return true;} else if (!(obj instanceof Book)) {return false;}return (((Book) obj).name.equals(this.name) && ((Book) obj).publicationYear == this.publicationYear);}Akkor nem értem a problémát, nálam teljesen jól működik:
Name (empty will stop):
mybook
Publication year:
1
Thank you! Books added: 1
Name (empty will stop):
mybook
Publication year:
1
The book is already on the list. Let's not add the same book again.
Name (empty will stop):
Thank you! Books added: 1
Name (empty will stop):
yourbook
Publication year:
2
Thank you! Books added: 2
Name (empty will stop):
mybook 1
yourbook 2(Thank you! Books added: egy picit félrevezető kiírás, mert akkor is jön, ha nem adtunk hozzá semmit)
-
Ablakos
addikt
A contains megmondja, hogy érték alapján van-e egyező elem az adott kollekcióban azzal az objektummal, amit paraméterként kapott. Azt, hogy érték szerint megegyezik-e valami, az equals metódus jelenti a Javaban. Ha van szerinted jó equals és nem így működik, akkor mutasd meg az equals-odat.
Mindössze két tag változó van a Book osztályban:
private String name;private int publicationYear;
-----------------------------------------------------------//------------@Overridepublic boolean equals(Object obj) {if (this == obj) {return true;} else if (!(obj instanceof Book)) {return false;}return (((Book) obj).name.equals(this.name) && ((Book) obj).publicationYear == this.publicationYear);} -
Drizzt
nagyúr
A contains megmondja, hogy érték alapján van-e egyező elem az adott kollekcióban azzal az objektummal, amit paraméterként kapott. Azt, hogy érték szerint megegyezik-e valami, az equals metódus jelenti a Javaban. Ha van szerinted jó equals és nem így működik, akkor mutasd meg az equals-odat.
-
Ablakos
addikt
Az Arraylist contains hasznalja az equalst. Ha nincs korrektul implementalt equals a Book classban, akkor csak abban az esetben fog igazat adni, ha ugyanazt a referenciat tartalmazza az egyik, meg a masik book. Erdemes viszont akkor mar hashCode-ot is implementalni, mert mas kollekciok hasznalhatjak azt is a contains eldontesehez.
Azt hittem olyan csoda metódus a contains.
Akkor mi értelme a contains-nek?
Az eddigi (oktatási) feladatokban is override-oltam az equals-t és az jól is üzemelt. (referenciát és minden változót végigvizsgálva az objektumban) -
Drizzt
nagyúr
Egy kis szakértést szeretnék kérni, mert nem tudom megfejteni miért nem akar a contains metodus nekem működni.
(book class a simple pojo)public static void main(String[] args) {Scanner scanner = new Scanner(System.in);ArrayList<Book> books = new ArrayList<>();while (true) {System.out.println("Name (empty will stop):");String name = scanner.nextLine();if (name.isEmpty()) {break;}System.out.println("Publication year:");int publicationYear = Integer.valueOf(scanner.nextLine());Book book = new Book(name, publicationYear);if (books.contains(book)) {System.out.println("The book is already on the list. Let's not add the same book again. \n Name (empty will stop):");} else {books.add(book);}System.out.println("Thank you! Books added: " + books.size());}for(Book b:books) {System.out.println(b.getName() + " " + b.getPublicationYear());}}Az Arraylist contains hasznalja az equalst. Ha nincs korrektul implementalt equals a Book classban, akkor csak abban az esetben fog igazat adni, ha ugyanazt a referenciat tartalmazza az egyik, meg a masik book. Erdemes viszont akkor mar hashCode-ot is implementalni, mert mas kollekciok hasznalhatjak azt is a contains eldontesehez.
-
Ablakos
addikt
Egy kis szakértést szeretnék kérni, mert nem tudom megfejteni miért nem akar a contains metodus nekem működni.
(book class a simple pojo)public static void main(String[] args) {Scanner scanner = new Scanner(System.in);ArrayList<Book> books = new ArrayList<>();while (true) {System.out.println("Name (empty will stop):");String name = scanner.nextLine();if (name.isEmpty()) {break;}System.out.println("Publication year:");int publicationYear = Integer.valueOf(scanner.nextLine());Book book = new Book(name, publicationYear);if (books.contains(book)) {System.out.println("The book is already on the list. Let's not add the same book again. \n Name (empty will stop):");} else {books.add(book);}System.out.println("Thank you! Books added: " + books.size());}for(Book b:books) {System.out.println(b.getName() + " " + b.getPublicationYear());}} -
Ablakos
addikt
-
Sirpi
senior tag
-
Ablakos
addikt
A paraméteres try mindig volt, vagy csak nekem újdonság?
-
Ablakos
addikt
Én is bejelentkeztem erre a kurzusra. Kíváncsi vagyok milyen ez a (ha jól látom finn) e-learning.
-
sztikac
őstag
if (number == -1)nem véd semmitől, feladatban volt úgy megadva, hogy -1 beírása esetén hagyja abba a számok beolvasását.#11853: máshonnan (C) ismerős az exception, de Java-ban még nem tartok ott és nem is volt a feladat része.
-
BE4GLE
senior tag
-
Ablakos
addikt
-
BE4GLE
senior tag
remélem nagyon kezdő kérdések is elférnek itt
Elkezdtem a MOOC.fi Java programozás kurzust és az egyik feladatnál elakadtam.
Illetve a feladatot magát meg tudtam oldani, az ellenőrzés mégis hibaüzenetet dob rá.
Ez lenne a kód:import java.util.Scanner;
public class InAHoleInTheGround {
public static void main(String[] args) {
printText();
}
public static void printText() {
Scanner scanner = new Scanner(System.in);
System.out.println("Give numbers:");
int sum = 0;
int count = 0;
int even = 0;
int odd = 0;
while (true) {
int number = Integer.valueOf(scanner.nextLine());
if (number == -1) {
break;
}
sum += number;
count++;
if (number % 2 == 0) {
even++;
} else {
odd++;
}
}
System.out.println("Thx! Bye!");
if (count != 0 && sum != 0) {
System.out.println("Sum: " + sum);
System.out.println("Numbers: " + count);
System.out.println("Average: " + 1.0 * sum / count);
System.out.println("Even: " + even);
System.out.println("Odd: " + odd);
}
}
}Tudnátok segíteni, mi lehet a gond?
Én a kilépő ágat try-catch blokban csináltam volna. Lekezelve a
NumberFormatExceptionkivételt. Az azif (number == -1)nem tudom mitől véd egész pontosan.
-
sztikac
őstag
remélem nagyon kezdő kérdések is elférnek itt
Elkezdtem a MOOC.fi Java programozás kurzust és az egyik feladatnál elakadtam.
Illetve a feladatot magát meg tudtam oldani, az ellenőrzés mégis hibaüzenetet dob rá.
Ez lenne a kód:import java.util.Scanner;
public class InAHoleInTheGround {
public static void main(String[] args) {
printText();
}
public static void printText() {
Scanner scanner = new Scanner(System.in);
System.out.println("Give numbers:");
int sum = 0;
int count = 0;
int even = 0;
int odd = 0;
while (true) {
int number = Integer.valueOf(scanner.nextLine());
if (number == -1) {
break;
}
sum += number;
count++;
if (number % 2 == 0) {
even++;
} else {
odd++;
}
}
System.out.println("Thx! Bye!");
if (count != 0 && sum != 0) {
System.out.println("Sum: " + sum);
System.out.println("Numbers: " + count);
System.out.println("Average: " + 1.0 * sum / count);
System.out.println("Even: " + even);
System.out.println("Odd: " + odd);
}
}
}Tudnátok segíteni, mi lehet a gond?
Hopp, megvan a hiba...
TMC-ben (TestMyCode - ezen keresztül ellenőrzik a megoldásokat) egy másik feladat alatt küldtem be a megoldásomat véletlenül
-
sztikac
őstag
remélem nagyon kezdő kérdések is elférnek itt
Elkezdtem a MOOC.fi Java programozás kurzust és az egyik feladatnál elakadtam.
Illetve a feladatot magát meg tudtam oldani, az ellenőrzés mégis hibaüzenetet dob rá.
Ez lenne a kód:import java.util.Scanner;
public class InAHoleInTheGround {
public static void main(String[] args) {
printText();
}
public static void printText() {
Scanner scanner = new Scanner(System.in);
System.out.println("Give numbers:");
int sum = 0;
int count = 0;
int even = 0;
int odd = 0;
while (true) {
int number = Integer.valueOf(scanner.nextLine());
if (number == -1) {
break;
}
sum += number;
count++;
if (number % 2 == 0) {
even++;
} else {
odd++;
}
}
System.out.println("Thx! Bye!");
if (count != 0 && sum != 0) {
System.out.println("Sum: " + sum);
System.out.println("Numbers: " + count);
System.out.println("Average: " + 1.0 * sum / count);
System.out.println("Even: " + even);
System.out.println("Odd: " + odd);
}
}
}Tudnátok segíteni, mi lehet a gond?
-
Ablakos
addikt
Egy félrenyelésnél is nemzetiségi útra megy az étel és az óvodában, iskolában is kisebbségi kereket kell vetni. Jobb ha megbarátkozunk ezzel.
-
Szmeby
tag
Ettől egyáltalán nem kevesebb lesz az alapfeszültség, hanem pont hogy feltépi ezt a sebet szerintem. Kb. fél éve váltottunk pont rendszert amikor szembesültem az új névvel. A mai napig egy pillanatig nem merült fel bennem, hogy egy ilyen abszurd baromság lenne a háttérben. Azt a majmot amelyik kitalálta, hogy sikerüljön frissen megbélyegezni egy csoportot a nevükben mindenkire rámért többlet szívás miatt, beállítanám, hogy az összes HDD és ODD jumpert pingálja át kézzel.
De jövő héttől, akkor majd légyszíves ne lehessen fekete ruhát kapni a boltokban, mert az egy általam nem ismert barátomat a nagymamája halálára emlékezteti és ettől traumatizált lesz. Ebben pedig "potenciálisan" a föld népességének 100% érintett, hiszen nagymamája még szegény Dollynak is volt.
Baszki lemaradt: tátsz end préjörsz. Így már biztos minden rendben lesz!Már bocsánat, de nem mondhatod azt, hogy "fekete ruha". A kommunikációdban légy szíves az afroamerikai - esetleg rövidebben az afro - ruha kifejezést használni, mert ezzel megsértesz embereket. Tanulhatnál egy kis empátiát! (Kappa)
-
floatr
veterán
Tőlem nevezhetjük csütörtöknek is a branchet, de nem lesz kevésbé rasszista a világnak az a fele, ami most is az.
-
Drizzt
nagyúr
Igen, azok valosak, s joval nagyobbak, illetve latvanyosabbak, alairom. Attol meg szerintem a master branch problemakore is tekintheto valosnak, ha joval kisebb meretu is a dolog.
Offnak reszemrol is vege. -
nevemfel
senior tag
Ettől egyáltalán nem kevesebb lesz az alapfeszültség, hanem pont hogy feltépi ezt a sebet szerintem. Kb. fél éve váltottunk pont rendszert amikor szembesültem az új névvel. A mai napig egy pillanatig nem merült fel bennem, hogy egy ilyen abszurd baromság lenne a háttérben. Azt a majmot amelyik kitalálta, hogy sikerüljön frissen megbélyegezni egy csoportot a nevükben mindenkire rámért többlet szívás miatt, beállítanám, hogy az összes HDD és ODD jumpert pingálja át kézzel.
De jövő héttől, akkor majd légyszíves ne lehessen fekete ruhát kapni a boltokban, mert az egy általam nem ismert barátomat a nagymamája halálára emlékezteti és ettől traumatizált lesz. Ebben pedig "potenciálisan" a föld népességének 100% érintett, hiszen nagymamája még szegény Dollynak is volt.
Baszki lemaradt: tátsz end préjörsz. Így már biztos minden rendben lesz!Dehogy tép fel ez sebeket. Semmi másról nem szól ez, csak a mostanában divatos nyelvi rendőrködésről. Mastercard, Master of Science, Master Chief ezekkel mi lesz?
Jah, és ugye az intézményesült képmutató álszentkedés nem csak a mastert -> mainre akarja megváltoztatni, hanem a blacklist/whitelistet, blackbox, blackhat/whitehat , man hours -> person hours, sanity check -> coherence check, dummy value -> placeholder value, a megmentendő elnyomottak csoportja végtelen hosszú.
-
fatal`
titán
Valós probléma pl., hogy az USA-ban a feketéket megbélyegzik a rendőrök. Vagy az, hogy a kormányunk a melegek ellen uszít.
Az, hogy a gitben, hogy hívják a fő branchet, az nem valós probléma, hanem fingreszelés.
De befejeztem az offolást.
-
Drizzt
nagyúr
Miert, mi a valos problema? Amugy ha off miatt van megfelelobb topic, szivesen koltozok. Ez pont egy valos problema, csak te nem erted, hogy az. Neked nem az, vannak akiknek igen.
-
Foglalt név
addikt
Sajnos nem erted az emberek mukodeset, meg a traumak hatasat. Hiaba mondod esetleg azt, hogy ma mar nincsen rabszolgasag, ezert nem lehet traumatizalo hatasa az emlitesenek, de a traumak jelentos resze generaciokon tovabboroklodik. Persze az egy remek dolog, ha ezzel el kezd foglalkozni az ember, de ott ahol a lakossag 12%-a potencialisan kitett ennek a problemanak, ott elegge irrealis azt mondani, hogy akkor mindenki oldja meg es menjen pszichologushoz kozuluk.
Valamint ott sem biztos, hogy mindenki arra a pontra fog eljutni, hogy ot valojaban ez nem is zavarja, mert nem neki szol, lehet inkabb az ezen kifejezesek megszunteteset kero enje fog eloterbe kerulni. Ha valaki azt erzi, hogy serti valami, akkor a pszihologusnal egyaltalan nem biztos, hogy az fog kijonni, hogy akkor elfogadom a sertest. Sokkal valoszinubb, hogy az fog kijonni, hogy akkor szembeszallok vele nyiltan, mert tartom magamat annyira, hogy ne engedjem megalazni masok altal.
Ez egy gesztus, ami egy lepes egy empatikusabb, bekesebb vilag fele. Nem oldja meg a vilag gondjait, sokaknak megis szebb lesz toluk a vilag, kevesebb az alapfeszultseguk.
Egyebkent en sem talaltam volna semmi bantot a master branch nevben, de nem nekem tisztem megitelni, hogy banto-e, mert nem vagyok erintett. Foleg ugy, hogy itt nincs melle mondva a slave kifejezes, ez nehezebben erthetove teszi a dolgot a szamomra is. De ez nem nekem szol. Annyira nem lesz nehez ket betuvel kevesebbet gepelnem, meg neha rajonni, hogy jeee, itt master van. Multbeli dolgokat, muveket en sem valtoztatnek meg, de azert raknek mellejuk disclaimereket.Ettől egyáltalán nem kevesebb lesz az alapfeszültség, hanem pont hogy feltépi ezt a sebet szerintem. Kb. fél éve váltottunk pont rendszert amikor szembesültem az új névvel. A mai napig egy pillanatig nem merült fel bennem, hogy egy ilyen abszurd baromság lenne a háttérben. Azt a majmot amelyik kitalálta, hogy sikerüljön frissen megbélyegezni egy csoportot a nevükben mindenkire rámért többlet szívás miatt, beállítanám, hogy az összes HDD és ODD jumpert pingálja át kézzel.
De jövő héttől, akkor majd légyszíves ne lehessen fekete ruhát kapni a boltokban, mert az egy általam nem ismert barátomat a nagymamája halálára emlékezteti és ettől traumatizált lesz. Ebben pedig "potenciálisan" a föld népességének 100% érintett, hiszen nagymamája még szegény Dollynak is volt.
Baszki lemaradt: tátsz end préjörsz. Így már biztos minden rendben lesz! -
fatal`
titán
Sajnos nem erted az emberek mukodeset, meg a traumak hatasat. Hiaba mondod esetleg azt, hogy ma mar nincsen rabszolgasag, ezert nem lehet traumatizalo hatasa az emlitesenek, de a traumak jelentos resze generaciokon tovabboroklodik. Persze az egy remek dolog, ha ezzel el kezd foglalkozni az ember, de ott ahol a lakossag 12%-a potencialisan kitett ennek a problemanak, ott elegge irrealis azt mondani, hogy akkor mindenki oldja meg es menjen pszichologushoz kozuluk.
Valamint ott sem biztos, hogy mindenki arra a pontra fog eljutni, hogy ot valojaban ez nem is zavarja, mert nem neki szol, lehet inkabb az ezen kifejezesek megszunteteset kero enje fog eloterbe kerulni. Ha valaki azt erzi, hogy serti valami, akkor a pszihologusnal egyaltalan nem biztos, hogy az fog kijonni, hogy akkor elfogadom a sertest. Sokkal valoszinubb, hogy az fog kijonni, hogy akkor szembeszallok vele nyiltan, mert tartom magamat annyira, hogy ne engedjem megalazni masok altal.
Ez egy gesztus, ami egy lepes egy empatikusabb, bekesebb vilag fele. Nem oldja meg a vilag gondjait, sokaknak megis szebb lesz toluk a vilag, kevesebb az alapfeszultseguk.
Egyebkent en sem talaltam volna semmi bantot a master branch nevben, de nem nekem tisztem megitelni, hogy banto-e, mert nem vagyok erintett. Foleg ugy, hogy itt nincs melle mondva a slave kifejezes, ez nehezebben erthetove teszi a dolgot a szamomra is. De ez nem nekem szol. Annyira nem lesz nehez ket betuvel kevesebbet gepelnem, meg neha rajonni, hogy jeee, itt master van. Multbeli dolgokat, muveket en sem valtoztatnek meg, de azert raknek mellejuk disclaimereket."Ez egy gesztus, ami egy lepes egy empatikusabb, bekesebb vilag fele."
Az ilyen hülyeségektől se empatikusabb, se békésebb nem lesz a világ, mert a valós problémákkal senki nem foglalkozik. -
nevemfel
senior tag
Persze hogy haladjunk a korral a régi projekt master-eket kellene main-re átrakni.
Én mindent átraktam/visszaraktam masterre, ahol nem ez az alap. Így egyszerűbb az élet.
-
Drizzt
nagyúr
Sajnos nem erted az emberek mukodeset, meg a traumak hatasat. Hiaba mondod esetleg azt, hogy ma mar nincsen rabszolgasag, ezert nem lehet traumatizalo hatasa az emlitesenek, de a traumak jelentos resze generaciokon tovabboroklodik. Persze az egy remek dolog, ha ezzel el kezd foglalkozni az ember, de ott ahol a lakossag 12%-a potencialisan kitett ennek a problemanak, ott elegge irrealis azt mondani, hogy akkor mindenki oldja meg es menjen pszichologushoz kozuluk.
Valamint ott sem biztos, hogy mindenki arra a pontra fog eljutni, hogy ot valojaban ez nem is zavarja, mert nem neki szol, lehet inkabb az ezen kifejezesek megszunteteset kero enje fog eloterbe kerulni. Ha valaki azt erzi, hogy serti valami, akkor a pszihologusnal egyaltalan nem biztos, hogy az fog kijonni, hogy akkor elfogadom a sertest. Sokkal valoszinubb, hogy az fog kijonni, hogy akkor szembeszallok vele nyiltan, mert tartom magamat annyira, hogy ne engedjem megalazni masok altal.
Ez egy gesztus, ami egy lepes egy empatikusabb, bekesebb vilag fele. Nem oldja meg a vilag gondjait, sokaknak megis szebb lesz toluk a vilag, kevesebb az alapfeszultseguk.
Egyebkent en sem talaltam volna semmi bantot a master branch nevben, de nem nekem tisztem megitelni, hogy banto-e, mert nem vagyok erintett. Foleg ugy, hogy itt nincs melle mondva a slave kifejezes, ez nehezebben erthetove teszi a dolgot a szamomra is. De ez nem nekem szol. Annyira nem lesz nehez ket betuvel kevesebbet gepelnem, meg neha rajonni, hogy jeee, itt master van. Multbeli dolgokat, muveket en sem valtoztatnek meg, de azert raknek mellejuk disclaimereket. -
nevemfel
senior tag
Nem tudom, ki kell próbálni, nem ismerem a githubot eléggé. Lokálban simán át lehet nevezni egy branchet egy lépésben, illetve a globál konfigban meg lehet adni a default branchet.
-
MrSealRD
veterán
Egyreszt magahoz a szakmahoz is van koze, ha masert nem, az emlitett fekete fejlesztok miatt. Masreszt meg a szakma termekeinek is van celkozonsege. Ott aztan vegleg hatalmas versenykepessegi eleses, ha nem gondolsz mindenfele marginalizalt csoportra.
Valahol a lenyeg ott van, hogy szerinted csak hipererzekeny viraglelkueket zavar a dolog, de valojaban nem. Az emberre a dolgok nem csak tudatosan hatnak, a felszin alatt hatalmas lelki es ezen keresztul kesobb fizikai bantalmat tudnak okozni. De errol ne nekem higyj, inkabb pszichologusok/pszichiaterek tapasztalatait vedd figyelembe.
Azzal, hogy aki ellenvelemenyt fogalmaz meg, en sem ertek egyet, hogy el kellene nyomni. Ellenvelemenynek mindig van helye.Ha valakit traumatizál az, hogy a branch neve master... az kezelésre szorul, és nagyobb baja is van ennél... Illetve, azt tegyük hozzá, hogy sok más helyen is ott vannak különböző szavak...amik triggerelhetik ezt az érzés...
-
axioma
veterán
Itt nem arról van szó, hogy valaki mimóza-e, hanem hogy elfelejtettük Babitsot és egyre több a néma.
Ha valakinek akkora lelki törése van, hogy egy reál szakon nem képes absztrakt fogalmakról személyes érzelmi befolyáltság nélkül társalogni, akkor kezeltesse magát. Nem hiszem, hogy az megoldás, hogy holnaptól átírjuk a halmazelméletet, mert Kolompár Eszmeraldát a kisebbségi hovatartozására emlékeztetik a részhalmazok.En szerintem eleg absztrakt gondolkodasu vagyok, de baromira nem latnek szivesen egy olyan nevezektant, amiben ami jo az pasis, ami rossz az noi megjelolest kap. Hidd el, abbol is lesz szovicc, me'g azoknal is akik amugy respektalnak, de kozben "csak a moka kedveert" viccbe csomagolva me'gis gunyolodik kicsit. Ez pont nem szakmai nevezektan, de tenyleg olyan mondta kozvetlen nekem aki "ferjen bele, ertse jol, ismer annyira hogy tudja nem gondolom komolyan" elv menten indokolta: a "mernokno"-vel az a problema, hogy az se nem mernok, se nem no.
Vagy elozo munkahelyemen mikor kitort a covid, csinaltak egy kepregeny stilusu "tajekoztato anyagot", hogy letezik a cegnel mentalhigieniai segitseg, csakhogy a rossz pelda az egy no volt rozsaszinben macskaval, a jo pelda aki kisegitette az infoval/url-lel meg egy tesztoszteronbomba... holott a teljes ceg pasi-tultengeses volt (nem csak IT), megis ezzel abrazolta'k... eloiteletek erositesere tokeletes, kozben meg masik szalon ment ezerrel a DEI trening. -
Foglalt név
addikt
Egyreszt magahoz a szakmahoz is van koze, ha masert nem, az emlitett fekete fejlesztok miatt. Masreszt meg a szakma termekeinek is van celkozonsege. Ott aztan vegleg hatalmas versenykepessegi eleses, ha nem gondolsz mindenfele marginalizalt csoportra.
Valahol a lenyeg ott van, hogy szerinted csak hipererzekeny viraglelkueket zavar a dolog, de valojaban nem. Az emberre a dolgok nem csak tudatosan hatnak, a felszin alatt hatalmas lelki es ezen keresztul kesobb fizikai bantalmat tudnak okozni. De errol ne nekem higyj, inkabb pszichologusok/pszichiaterek tapasztalatait vedd figyelembe.
Azzal, hogy aki ellenvelemenyt fogalmaz meg, en sem ertek egyet, hogy el kellene nyomni. Ellenvelemenynek mindig van helye.Itt nem arról van szó, hogy valaki mimóza-e, hanem hogy elfelejtettük Babitsot és egyre több a néma.
Ha valakinek akkora lelki törése van, hogy egy reál szakon nem képes absztrakt fogalmakról személyes érzelmi befolyáltság nélkül társalogni, akkor kezeltesse magát. Nem hiszem, hogy az megoldás, hogy holnaptól átírjuk a halmazelméletet, mert Kolompár Eszmeraldát a kisebbségi hovatartozására emlékeztetik a részhalmazok. -
btraven
őstag
Lehet törölni a master/main branch-et? Még sose próbáltam
Persze hogy haladjunk a korral a régi projekt master-eket kellene main-re átrakni.
Mert így meg kavarodás lesz. Ez a rengeteg projekt, egyik cvs, a másik svn a harmadik meg git. -
Drizzt
nagyúr
Ezzel csak egy baj van. Semmi köze nincs a szakmához... Fogadni mernék rá, hogy az eddigiekben fejlesztőként dolgozó feketék, totál nem foglalkoztak ezzel. Max 1-2 hiperézékeny viráglelkű... Csak most az a divat, hogy az feleljünk meg minden jogi aktivista csoportnak... Alig várom, hogy véget érjen ez a korszak... és végre a lényegre fókuszáljon a világ. És ha valakit ez zavar, akkor 3mp alatt kapja a különböző bélyegeket...de úgy hogy utána már életében nem fog tudni dolgozni... Ez abszurd.
Egyreszt magahoz a szakmahoz is van koze, ha masert nem, az emlitett fekete fejlesztok miatt. Masreszt meg a szakma termekeinek is van celkozonsege. Ott aztan vegleg hatalmas versenykepessegi eleses, ha nem gondolsz mindenfele marginalizalt csoportra.
Valahol a lenyeg ott van, hogy szerinted csak hipererzekeny viraglelkueket zavar a dolog, de valojaban nem. Az emberre a dolgok nem csak tudatosan hatnak, a felszin alatt hatalmas lelki es ezen keresztul kesobb fizikai bantalmat tudnak okozni. De errol ne nekem higyj, inkabb pszichologusok/pszichiaterek tapasztalatait vedd figyelembe.
Azzal, hogy aki ellenvelemenyt fogalmaz meg, en sem ertek egyet, hogy el kellene nyomni. Ellenvelemenynek mindig van helye. -
MrSealRD
veterán
Valoszinuleg sosem fogd megerteni, hogy mit jelent egy feketenek a mester szo hallata. En sem fogom, bar szeretnem azt hinni, hogy igen. De nem vagyok naiv, sosem fogom valoban aterezni milyen rabszolgacsalad sarjanak lenni, barmekkora is az empatiam. Az ilyen szavak tudat alatt is hatalmas karokat tudnak okozni az erintetteknek. S az is persze igaz, hogy Magyarorszagon tok mas az elsodleges jelentese a leforditott szonak, emiatt megint mas elkepzelni a pszichologiai hatasat. Idehaza persze elsosorban a mindenhez erto ember jon elo a szo kapcsan, nem a korbacsos rabszolgatarto. Meg az is igaz, hogy biztosan korulvesz minket ezer olyan szo, ami mas emberekben szorongast valt ki. Es persze eszre se vesszuk. Azert amik eleg szeles korben okoznak problemat, az reszemrol nem baj, ha atnevezesre kerul. Meg fogom birni szokni, hogy 1 betuvel kevesebbet kell gepelni.
Ezzel csak egy baj van. Semmi köze nincs a szakmához... Fogadni mernék rá, hogy az eddigiekben fejlesztőként dolgozó feketék, totál nem foglalkoztak ezzel. Max 1-2 hiperézékeny viráglelkű... Csak most az a divat, hogy az feleljünk meg minden jogi aktivista csoportnak... Alig várom, hogy véget érjen ez a korszak... és végre a lényegre fókuszáljon a világ. És ha valakit ez zavar, akkor 3mp alatt kapja a különböző bélyegeket...de úgy hogy utána már életében nem fog tudni dolgozni... Ez abszurd.
-
axioma
veterán
Valoszinuleg sosem fogd megerteni, hogy mit jelent egy feketenek a mester szo hallata. En sem fogom, bar szeretnem azt hinni, hogy igen. De nem vagyok naiv, sosem fogom valoban aterezni milyen rabszolgacsalad sarjanak lenni, barmekkora is az empatiam. Az ilyen szavak tudat alatt is hatalmas karokat tudnak okozni az erintetteknek. S az is persze igaz, hogy Magyarorszagon tok mas az elsodleges jelentese a leforditott szonak, emiatt megint mas elkepzelni a pszichologiai hatasat. Idehaza persze elsosorban a mindenhez erto ember jon elo a szo kapcsan, nem a korbacsos rabszolgatarto. Meg az is igaz, hogy biztosan korulvesz minket ezer olyan szo, ami mas emberekben szorongast valt ki. Es persze eszre se vesszuk. Azert amik eleg szeles korben okoznak problemat, az reszemrol nem baj, ha atnevezesre kerul. Meg fogom birni szokni, hogy 1 betuvel kevesebbet kell gepelni.
+1 meloban a dummy is tiltott, de pl. a buildcop is, build gardener a pol.korrekt - nyilvan mas a toltese erzelmileg az egyes - sajnos angolban overload-olt - szavaknak, amivel egyet lehet tenni, tiszteletben tartani
-
nevemfel
senior tag
Nem. A repo létrehozást.
Most én a github-on csinálok egy üreset.
git clone
majd ebbe az új könyvtárba másolom a libgds által generált cuccokat
és azt commit+pushmost újra csináltam, az előbb 2 branch lett, main meg master, én se tudom hogy
és mindez azért mert valaki sérelmezte a master nevet
legalább büdösnigger lett volna, akkor még értenémGithubon létrehozol egy master branchet, default branchet átállítod a masterre, maint törlöd?
-
Drizzt
nagyúr
Nem. A repo létrehozást.
Most én a github-on csinálok egy üreset.
git clone
majd ebbe az új könyvtárba másolom a libgds által generált cuccokat
és azt commit+pushmost újra csináltam, az előbb 2 branch lett, main meg master, én se tudom hogy
és mindez azért mert valaki sérelmezte a master nevet
legalább büdösnigger lett volna, akkor még értenémValoszinuleg sosem fogd megerteni, hogy mit jelent egy feketenek a mester szo hallata. En sem fogom, bar szeretnem azt hinni, hogy igen. De nem vagyok naiv, sosem fogom valoban aterezni milyen rabszolgacsalad sarjanak lenni, barmekkora is az empatiam. Az ilyen szavak tudat alatt is hatalmas karokat tudnak okozni az erintetteknek. S az is persze igaz, hogy Magyarorszagon tok mas az elsodleges jelentese a leforditott szonak, emiatt megint mas elkepzelni a pszichologiai hatasat. Idehaza persze elsosorban a mindenhez erto ember jon elo a szo kapcsan, nem a korbacsos rabszolgatarto. Meg az is igaz, hogy biztosan korulvesz minket ezer olyan szo, ami mas emberekben szorongast valt ki. Es persze eszre se vesszuk. Azert amik eleg szeles korben okoznak problemat, az reszemrol nem baj, ha atnevezesre kerul. Meg fogom birni szokni, hogy 1 betuvel kevesebbet kell gepelni.
-
btraven
őstag
Nem. A repo létrehozást.
Most én a github-on csinálok egy üreset.
git clone
majd ebbe az új könyvtárba másolom a libgds által generált cuccokat
és azt commit+pushmost újra csináltam, az előbb 2 branch lett, main meg master, én se tudom hogy
és mindez azért mert valaki sérelmezte a master nevet
legalább büdösnigger lett volna, akkor még érteném -
mobal
nagyúr
Na megint jól belekavarodtam. Az a baj hogy az ember évente egyszer csinál egy új git repository-t aztán közben main lett a master-ből a githubon?
A régi projektek meg master-ral futnak tovább?
Most figyelhetem melyik melyik?Egyébként jól csinálom?
libgdx generál egy gradle projectet x könyvtárba
ezt eclipse-be importálom mint existing gradle project
hogy kellene ennek a github-ra kerülnie?git push origin main?
-
btraven
őstag
Na megint jól belekavarodtam. Az a baj hogy az ember évente egyszer csinál egy új git repository-t aztán közben main lett a master-ből a githubon?
A régi projektek meg master-ral futnak tovább?
Most figyelhetem melyik melyik?Egyébként jól csinálom?
libgdx generál egy gradle projectet x könyvtárba
ezt eclipse-be importálom mint existing gradle project
hogy kellene ennek a github-ra kerülnie? -
floatr
veterán
Herokun SpringBoot + Angular kombóval nem jutok dűlőre.
A projekt mappában van mindkettő (külön mappában nem boldogult az angularral), leépül ahogy kell, bejön a frontoldal, válaszol a backend urlből hívva, örömebódottá'.
Ahogy én azt gondoltam.
Localon term kipróbáltam, és működött a registráció, és utána a login is, mongocloudon ott az user.
Felteszem herokura, ott meg azt írja, hogyCannot POST /api/auth/signin404 error
beírtam az ng fetchbe hogymode: 'cors',,
majd a backenden ezeket egyenként@CrossOrigin()WebSecurityConfig-ban ez alapból benne volt
//@CrossOrigin(origins = "*", maxAge = 3600)
//@CrossOrigin(origins = "http://localhost:4200", allowedHeaders = "*", allowCredentials = "true")http.cors().and().csrf().disable()
Kerestem, de csak olyan válaszokat találtam, hol külön appként tették fel a front-backet, nálam meg ugye egy dynon van. Ezek szerint rosszul gondoltam, hogy ilyenkor relatív pathokkal meg lehet oldani? Volt régebben vmi projektem, ahol beírtam a fetchbe hogyurl = 'api/questions, és azóta is megy herokun, szóval nem értem. Igaz, ez utóbbinak sima js-html frontendje van.Nem ismerem a herokut, de CORS problémákat az api gatewaynél oldottam meg
-
dudikpal
senior tag
Herokun SpringBoot + Angular kombóval nem jutok dűlőre.
A projekt mappában van mindkettő (külön mappában nem boldogult az angularral), leépül ahogy kell, bejön a frontoldal, válaszol a backend urlből hívva, örömebódottá'.
Ahogy én azt gondoltam.
Localon term kipróbáltam, és működött a registráció, és utána a login is, mongocloudon ott az user.
Felteszem herokura, ott meg azt írja, hogyCannot POST /api/auth/signin404 error
beírtam az ng fetchbe hogymode: 'cors',,
majd a backenden ezeket egyenként@CrossOrigin()WebSecurityConfig-ban ez alapból benne volt
//@CrossOrigin(origins = "*", maxAge = 3600)
//@CrossOrigin(origins = "http://localhost:4200", allowedHeaders = "*", allowCredentials = "true")http.cors().and().csrf().disable()
Kerestem, de csak olyan válaszokat találtam, hol külön appként tették fel a front-backet, nálam meg ugye egy dynon van. Ezek szerint rosszul gondoltam, hogy ilyenkor relatív pathokkal meg lehet oldani? Volt régebben vmi projektem, ahol beírtam a fetchbe hogyurl = 'api/questions, és azóta is megy herokun, szóval nem értem. Igaz, ez utóbbinak sima js-html frontendje van. -
zapikanka
tag
-
floatr
veterán
Sziasztok!
Egy olyan problémába futottam bele a mai nap, hogy egy Spring/Maven-es projektet szerettem volna importálni STS-be (File/Import../Check out Maven Projects from SCM).
Git az SCM connector, bemásolom a repo elérési útvonalát -> Import. Majd 98%-ig jut el minden egyes alkalommal, utána annyit ír csak, hogy "Importing Maven Projects - Resolve plugin dependency". Inditottam ujra az STS-t, gépet, próbáltam másik laptopról is az Importot, ott is ugyan ez volt. Ha letöltöm Github-ról ZIP-ként akkor tökéletesen tudom importálni.
Mit tehetnék még, ha nem férek jelenleg hozzá ahhoz a gépről ahonnan commit-oltam?Köszi esetleg ha van ötlet!
És ha kézzel klónozod a repót, és azt importálod be sima mavenes projektként? Ezekkel az eclipse-es pluginekkel régebben annyit pippantottam, nem csoda, hogy sokan utálják.
-
zapikanka
tag
Sziasztok!
Egy olyan problémába futottam bele a mai nap, hogy egy Spring/Maven-es projektet szerettem volna importálni STS-be (File/Import../Check out Maven Projects from SCM).
Git az SCM connector, bemásolom a repo elérési útvonalát -> Import. Majd 98%-ig jut el minden egyes alkalommal, utána annyit ír csak, hogy "Importing Maven Projects - Resolve plugin dependency". Inditottam ujra az STS-t, gépet, próbáltam másik laptopról is az Importot, ott is ugyan ez volt. Ha letöltöm Github-ról ZIP-ként akkor tökéletesen tudom importálni.
Mit tehetnék még, ha nem férek jelenleg hozzá ahhoz a gépről ahonnan commit-oltam?Köszi esetleg ha van ötlet!
-
Aethelstone
addikt
Ez teljesen életszerű, hogy ritkán találkozunk ilyesmivel, mert ahogy korábban már írtam, a tipikus usecase az, hogy a stringek valami db-ben laknak, ahonnan csak keveset szedünk elő, hogy baxtassuk őket. Db helyett lehet elastic, rabbit, kafka, solr, akármi..
-
floatr
veterán
Nem gyakori, de nem art, hogyha van az embernek az eszkotaraban valami, amivel tudja kezelni adott esetben. Nyilvan valos statisztikam nincs a dologrol, de egyebkent azert egyaltalan nem ritka, hogy sok duplikalt string van a heapen. Az mar ritkabb, hogy ezek hosszu eletuek is legyenek egyben. Es elsosorban akkor jon el az a szint, ahol erdemes kezelni.
Nem kötekedésképpen kérdezem, csak az elmúlt 25 év alatt egyszer sem kellett használnom, és másoktól sem láttam. Ez persze önmagában nem jelent semmit, mert lehet hogy egy interntelen buborékban élek ;)
-
Drizzt
nagyúr
Nem gyakori, de nem art, hogyha van az embernek az eszkotaraban valami, amivel tudja kezelni adott esetben. Nyilvan valos statisztikam nincs a dologrol, de egyebkent azert egyaltalan nem ritka, hogy sok duplikalt string van a heapen. Az mar ritkabb, hogy ezek hosszu eletuek is legyenek egyben. Es elsosorban akkor jon el az a szint, ahol erdemes kezelni.
-
floatr
veterán
És ez a tapasztalataid szerint mennyire gyakori feladat való életbeli projektekben?
-
Drizzt
nagyúr
Van amikor bitbaszas, de van amikor a heaped 95%-a ismetlodo stringekbol all. Akkor nem az. Az megint egy mas kerdes, hogy az ilyen esetben nem biztos, hogy a problema megoldasara idealis architecturalis megoldas lett kivalasztva.
-
floatr
veterán
Másrészt én speciel az intern használatáért kurva nagyot csapnék a fejlesztő kezére
Nekem ez már a bitb.szás kategóriába tartozik. A legtöbben tervezni sem tudnak elégséges szinten, nem hogy még erre optimalizáljanak.
-
Drizzt
nagyúr
Erre ott van a -XX:+UseStringDeduplication VM kapcsoló. Bár az csak a hosszú életű Stringeket internálja, de sok esetben az is elég lehet attól függően mi a cél.
Igen, az egy jó megoldás, de tudtommal csak G1GC mellett megy.
Vagy persze marad az, hogy csinál az ember saját dictionary-t és az abból lookupolt értéket rakja bele az objektumokba. -
Aethelstone
addikt
-
sztanozs
veterán
Lehet én vagyok oldschool, de lognak márpedig lennie kell
attól függ, mit fejlesztesz... egy Match-3 játékhoz nem feltétlenül kell logot generálni

-
Aethelstone
addikt
-
sztanozs
veterán
Uh. Ha cmd-ben indítod, akkor a konzolon megjelenik. Ha nem, akkor ha az exe kimenetét egy fájlba irányítod, mint > log.txt akkor ott. Viszont ez vérgagyi megoldás.
mondjuk ha nem kell neki, akkor jólvanazúgy
-
Aethelstone
addikt
Erre ott van a -XX:+UseStringDeduplication VM kapcsoló. Bár az csak a hosszú életű Stringeket internálja, de sok esetben az is elég lehet attól függően mi a cél.
Agree, de jól mondod, az a lényeg, hogy mi a feladat, milyen környezet van, stb. Nincs univerzális megoldás
-
yossarian14
tag
-
Aethelstone
addikt
Jó kérdés. Nem gyakran ütközik az ember ilyesmi problémába, de tuti valami collectiont vagy sima tömböt használnék a gyakori Stringjeimhez. Hashelve esetleg. Mivel az adatok általában db-ben laknak, ezekből értelmesen keveset fetchelünk a feldolgozáshoz, ezért igazi usecase-t hirtelen nem is tudnék mondani. Max gyors szövegfeldolgozás memóriában vagy valami hasonló. Megfogtál.
-
Drizzt
nagyúr
Másrészt én speciel az intern használatáért kurva nagyot csapnék a fejlesztő kezére
Mit javasolsz helyette? Nekem van saját preferenciám, de kíváncsi vagyok mit mondanál rá.
-
Aethelstone
addikt
-
Aethelstone
addikt
-
floatr
veterán
Az OCP a nüansznyi kis apróságokkal szivat, hogy relevánsnak tűnjön laikusok szemében. Ilyen a pointeres őrület is, amivel egy jól képzett fejlesztő is elvétve találkozik (ha egyáltalán).
-
Ablakos
addikt
Engedjük el a string == -t :)
Megjegyeztem.
Persze jobb lenne, ha jeleznéd az OCP szerzői felé is, hogy kapják össze magukat. A prohardveren nem szeressük az ilyent.
-
Aethelstone
addikt
public static void main(String[] args) {
String s1=new String(args[0]);
String s11=new String(args[0]);
System.out.println(s1.intern() == s11.intern());
String s2="alma";
System.out.println(s1==s2);
}(a main "alma" paraméter kap.)
1. Tudna valaki magyarázatot, miért lesz a konzol kimenete a true/true a fenti esetben?
Úgy tudom a String immutable. Az s1 a heap-en jön létre az s2 literál az SCP-n ül.
Az intern() miatt átkerül az SCP-re?
2. Amit végképp nem értek, ha a 3.és 4.utasításokat felcserélem akkor true/false a kimenet.
Engedjük el a string == -t :)
Új hozzászólás Aktív témák
-
11900 - 11801
12211 - 12201 12200 - 12101 12100 - 12001 12000 - 11901 11900 - 11801 11800 - 11701 11700 - 11601 11600 - 11501 11500 - 11401 11400 - 11301 11300 - 11201 11200 - 11101 11100 - 11001 11000 - 10901 10900 - 10801 10800 - 10701 10700 - 10601 10600 - 10501 10500 - 10401 10400 - 10301 10300 - 10201 10200 - 10101 10100 - 10001 10000 - 8001 8000 - 6001 6000 - 4001 4000 - 2001 2000 - 1
-
Fórumok
PROHARDVER! - hardver fórumok
Notebookok TV & Audió Digitális fényképezés Alaplapok, chipsetek, memóriák Processzorok, tuning Hűtés, házak, tápok, modding Videokártyák Monitorok Adattárolás Multimédia, életmód, 3D nyomtatás Tabletek, E-bookok Nyomtatók, szkennerek PC, mini PC, barebone, szerver Beviteli eszközök Egyéb hardverek PROHARDVER! BlogokMobilarena - mobil fórumok
Okostelefonok Mobiltelefonok Okosórák Autó+mobil Üzlet és Szolgáltatások Mobilalkalmazások Tartozékok, egyebek Mobilarena blogokIT café - infotech fórumok
Infotech Hálózat, szolgáltatók OS, alkalmazások SzoftverfejlesztésGAMEPOD - játék fórumok
PC játékok Konzol játékok MobiljátékokLOGOUT - lépj ki, lépj be!
LOGOUT reakciók Monologoszféra FototrendFÁRADT GŐZ - közösségi tér szinte bármiről
Tudomány, oktatás Sport, életmód, utazás, egészség Kultúra, művészet, média Gazdaság, jog Technika, hobbi, otthon Társadalom, közélet Egyéb Lokál PROHARDVER! interaktív
- Fórumok
- Szoftverfejlesztés
- Java programozás
- (kiemelt téma)
A topicot kiemeltem. Valaki nem akar egy nyitó hsz-t írni?:))
- Arc Raiders
- Steam Deck
- AMD K6-III, és minden ami RETRO - Oldschool tuning
- Suzuki topik
- Hobby elektronika
- Samsung Galaxy S23 Ultra - non plus ultra
- Projektor topic
- Debian GNU/Linux
- Nem kell még temetni: 2 éves órajelcsúcsot döntöttek meg Raptor Lake-kel
- Kamionok, fuvarozás, logisztika topik
- További aktív témák...
- Garanciális samsung galaxy watch 8 classic
- Samsung QVO 870 SSD (1 TB) 100/100%
- Új, bontatlan - Apple MacBook Air 13 M4 16/256GB - Sky Blue
- Új Dobozos ASUS VivoBook Go 15 Laptop 15,6" -20% Ryzen 5 7520U 16/512 Radeon Graphics FHD OLED
- Új HP ZBook Firefly 16 G10 Profi Tervező Vágó Laptop -50% i7-1355U 16/1TB FHD+ RTX A500 4GB
- Lenovo Legion 9 16" 3.2K Mini LED Laptop! i9-13980HX / RTX 4090 / 32GB DDR5 / 2TB NVMe! BeszámítOK
- HP EliteOne 800 G4 All-in-One i5-8500 16GB 512GB 23.8" Érintőkijelző!! 1 év garancia
- Xcover 7 128/6
- Ryzen 7 9800X3D + RX 9070 XT Gamer PC///Beszámítás
- ASUS ROG Strix SCAR 16 / Ultra 9 275HX / RTX5090 / 32GB / 2TB NVMe! BeszámítOK
Állásajánlatok
Cég: aiMotive Kft.
Város: Budapest
Cég: Laptopműhely Bt.
Város: Budapest




Tudom, hogy referenciával megy az objektum másolás, de én foxi módra eltökéltem hogy átmásolódik az egyik lista tartalma a másikba.)
Előtte nem tudtam, hogy a contains (teljeskörű) működéséhez azt is meg kell írni.
Coming soon...



