Felvételi feladat, webshop kedvezmények kezelése
2012-04-08T18:09:42+02:00
2012-04-11T09:09:20+02:00
2022-07-24T03:47:24+02:00
  • Hát azé sajnos van sejtésem, nagyon bonyi tud lenni egy új rész beintegrálása Java ban.
    Mondjuk a Spring Social ami ezért van, hogy tudd használni a Facebook, Twitter ... funkcióit szerintem eléggé nehézkes.
    Mivel nem vagyok nagy Java s, ezért még bizakodom, hogy később jobban fog menni.

    (Ja, és elfelejtettem hozzá tenni, hogy a Spring Roo elsősorban a CRUD os alkalmazások fejlesztésében erős)
    Mutasd a teljes hozzászólást!
  • Java területen play frameworkot nézegettem egy időben, szimpatikus volt. Most python+django-val ismerkedem, szintén jóféle, és a java illetve a python is biztosabb nyelvek, mint a php. Csak valamiért a php most a "menő" a megrendelőknél, annak ellenére, hogy vannak nála sokkal jobbak is. Esetleg erre valaki adhatna egy magyarázatot.

    Arról nem is beszélve, hogy egyes "magas szintű" művelői miatt a php programozó foglalkozás sokszor már pejoratív jelentéssel bír a programozó iparban.
    Mutasd a teljes hozzászólást!
  • Off:
    Hát nekem most nagyon bejön a Spring Roo, annyiban hasonlít a Symfony ra, hogy az is command line ba generál mindent amit kézzel kéne irogatni.
    De, úgy cserélgetheted vele a web layert mint sehol máshol:Vaadin, Prime Faces, Spring mvc + Tiles, GWT
    ORM: Hibernate, EclipseLink
    DB: akármi, nem csak MySQL
    + reverse engeneer
    ... és még lehetne sorolni
    Mutasd a teljes hozzászólást!
  • Én meg utálom a jávát XD
    Mutasd a teljes hozzászólást!
  • Symfony2-ben is van lehetőség php-s template-re. Szvsz a template az template, nem pedig kód. Ha írhatsz a template-be kódot, úgysem fogod tudni megállni, hogy kisebb-nagyobb logikát odaírj, szóval én támogatom, hogy a template-nek saját formátuma és leírónyelve legyen.

    Egyébként ajánlom, hogy térj át(vagy legalább ismerd meg) a symfony2-re. Nekem az 1.4 után annyival sokkal jobban tetszik. Ha mostanában egy-egy 1.4-es projektbe bele kell nyúlni, kábé olyan érzés, mint java után c-ben programozni.
    Mutasd a teljes hozzászólást!
  • Egyáltalán nem ismerem a 2.0 t, egy időben beszálltam még egy Eclipse plugin fejlesztébe is a 2.0 Symfony hoz, de nekem túl nagy falat volt, pedig nagyon tetszett volna.
    Sajnos az Eclipse dolgok nagyon alul vannak dokumentálva.
    Mutasd a teljes hozzászólást!
  • én még mindig azt használom, nincs energiám átírni/megismerni a sok bundlet. Amúgy is a halálom az új template kezelés. Azzal a smartys jelöléssel nem vagyok kibékülve. Kicsit hasonlítson már a PHP-hoz a kód.
    Mutasd a teljes hozzászólást!
  • Én is toltam a symfony t 1.4 ig, mivel csak hobbi volt 2.0 ra már nem volt more power.
    Mutasd a teljes hozzászólást!
  • Én symfonyban fejlesztek. Szerintem 10 perc alatt el tudom dönteni valakiről hogy ért hozzá vagy nem ért hozzá. Csak elég elbeszélgetnem vele, egyetlen feladatot sem kellene megoldania. Persze ahol egy hr-es dönt arról hogy ki a jó fejlesztő, meg az egyetlen követelmény hogy beszéljen angolul (mivel Ő is csak angolul beszél, nyilván symfonyul, vagy javaul nem), ott sok ember jön-megy, mire a hr megy.
    Mutasd a teljes hozzászólást!
  • Igazad van, specifikáció úgy mondja, ahogy írod.

    De az én felvetésem a reálisabb, meg a programozóból is többet lehetne látni, ha úgy kellene működnie a beadott programnak, ahogy én gondoltam. Remélem ez nem túl nagy elvárás
    Mutasd a teljes hozzászólást!
  • Szerintem eltérően értelmezzük a feldatot:

    A kedvezménytípusok nem összevonhatóak, mindig a legnagyobb
    kedvezményt nyújtót kell figyelembe venni az egész kosárra.


    Tehát megnézem, hogy megapack-kal mennyi lenne az egész kosáron a kedvezmény, aztán pedig, hogy 3=2-vel, aztán a nagyobbat kapja.

    Szerintem a második pontod a hozzászólásodban nem lehetséges kedvezmény adás, a feladat szerint. (Bár amúgy logikus, ebben az esetben külön számlára vásárolnék kétszer... )

    Ha pedig akarom a kombinált kedvezményt, akkor származtatok még egy Kedvezmeny-t, ami számol kombináltat, és felveszem a MaxKedvezmeny-be azt is.
    Mutasd a teljes hozzászólást!
  • Gratulálok! Két tagmondatot megértettél, a többi meg mintha ott se lenne...
    Mutasd a teljes hozzászólást!
  • Csodás hiba, 3 mp alatt javítható..

    3=2 akciónál: haromketto += .... megapack ellenőrzésénél: megapack += .... if megapack > haromketto then return megapack else return haromketto

    Az összevonás szintén két if elágazással megoldható.
    Mutasd a teljes hozzászólást!
  • De miért gáz a 2 órás feladat, egy 10-20 percesnél ki sem derül, hogy értesz-e hozzá.
    Mutasd a teljes hozzászólást!
  • Benjynél nem látszik, hogy kettéválasztotta, de ami miatt nem jó a tied sem:

    Ha van egy multipackos vásárlás, és mondjuk 15-öt vesz, akkor a két lehetséges kedvezmény:
    1. 15 után 5 * 3=2 kedvezmény
    2. 12 után 6000 kedvezmény és a maradék 3 után 1 * 3=2 kedvezmény

    A 2. eset, a kedvezmények vegyes alkalmazása nincs meg egyikőtöknél sem.
    Mutasd a teljes hozzászólást!
  • Nice try!
    Mutasd a teljes hozzászólást!
  • Szerintem Benjy és az én válaszomban is benne volt, hogy a kettő közül a maximum kedvezményt adom vissza, a kedvezmények közül, azaz a kedvezőbbet.
    Mutasd a teljes hozzászólást!
  • Lehet, hogy 5 perc volt, de ez meg is látszik rajta. Biztos, hogy nem te kapnád meg a melót

    Alapvetően hibás elgondolás leprogramozása, ugyanis a kedvezmények nem összevonhatók. Mindig a kedvezőbbet kellene választani, ez pedig nincs benne.

    Szomorú vagyok, hogy ezt egyik nagytudású kolléga sem vette észre...
    Mutasd a teljes hozzászólást!
  • Nekem meg átlag 5-10 perc volt az első pár munkahelyemen, mondjuk azok nem programozásról szóltak.
    Utána én is a W..T... nevű céghez mentem PHP-snak, de a 3. interjúnál már majdnem elküldtem őket a fenébe. Nekem is ráment egy pár órám, de akkoriban még kezdő voltam. Most már nem csinálnék végig egy olyan feladatot, ami 2 órás. Vagy csak akkor ha már minden tuti frankó és csak azon múlik, hogy odamenjek/odamehessek. De ez legutóbbi 40 órás ledöbbentett. És nem a googlehoz jelentkeztem
    Mutasd a teljes hozzászólást!
  • Hát azért 2 órát otthagyni, hogy hátha felvesznek...


    Elso munkahelyemnel osszesen kb 10 oran at interjuztattak.
    Mutasd a teljes hozzászólást!
  • Hát azért 2 órát otthagyni, hogy hátha felvesznek...
    Mondjuk még mindig jobb, mint ami PHP-nál megy. Múltkor kaptam egy 40 órás todot felvételinek.
    Mutasd a teljes hozzászólást!
  • Esetleg annyiban lehetne módosítani, ha már JAVA, hogy csinálunk egy Kedvezmeny az interfacet, aminek van egy getKedvezmeny(Kosar k) függvénye, esetleg egy String getKedvezmenyNeve().

    Ebből "származtatva" a külön kedvezmények.

    És külön MaxKedvezmeny osztály van, ami
    List<Kedvezmeny> kedvezmenyek;
    kedvezmenyek.add(new Megapack())
    kedvezmenyek.add(new HaromKettoert())

    aztán pedig maximum keresés a kedvezmenyek.getKedvezmeny(kosar)-on (foreach).

    És akkor a könnyen legyen bővíthető újabb kedvezményekkel feltételnek is megfelel.

    Akár MaxKedvezmeny is lehet a Kedvezmeny-ből származtatva. Végülis az összeg és a kedvezmény neve érdekel minket.

    Az meg hogy a servlet részt ill. a valuta átváltást ki hogyan oldja meg, mindenkinek az egyéni ügye.

    Én gondolom Spring3-at használtam volna, ha megengedik.

    Ha saját laptopon írom bejáratott fejlesztő környezet mellett, és van net, nem több, hanem inkább kevesebb két óránál.
    Mutasd a teljes hozzászólást!
  • Ügyes vagy, ez valóban jónak néz ki, és tök érthető.
    Egy W..T... nevű magyar cégnél ez a 2. feladat.

    Többek közt én is szégyellhetem magam :).

    Más okot nem találok, a sok éves technológiák és keretrendszerek tanulása elszoktatja az embert az ilyen feladatoktól.

    Még1x gratula.
    Mutasd a teljes hozzászólást!
  • Ha nekem kéne ezt megcsinálni, kb így csinálnám:

    Termék osztály
    Kosár osztály
    Kedvezmény osztály

    A termék tudja magáról amit tud (ár, superpack-e ilyesmi) Kosárhoz írnék egy metódust: getTeljesÖsszeg() - ez a kedvezmények nélküli összeg foreach ( termékek ) teljes_osszeg = termék.ár*darabszám mégegyet getKedvezményesÖsszeg(){ max_kedvezmeny = Kedvezmény.applyAll(this) return this.getTeljesÖsszeg() - max_kedvezmeny } A kosárhoz hozzá lehet adni a termékeket és természetesen tudja, hogy hány darab termék van benne. A kedvezmény.applyAll végigfuttatja az összes kedvezményt a kosáron és visszaadja a maximum kedvezményt.
    Megapack kedvezmény foreach termékek if ( termék count >= 12 && termék.superpack ) { kedvezmény += 6000 * ((int)(termék count % 12)) } 3=2 kedvezmény foreach termékek if ( termék count >= 3){ kedvezmény += termék.ár*((int)(termék_count % 3)) }


    Na most valakit felvehetnek helyettem, kb 5 perc volt.
    Mutasd a teljes hozzászólást!
  • Jó pár teszt progit megcsináltam már, nem parázom, de utálok tákolni és kapkodni.

    Ha tehetem az alábbit tartom szem előtt.

    Without requirements and design, programming is the art of adding bugs to an empty text file.
    Mutasd a teljes hozzászólást!
  • a legrosszabb választás a feladás...
    bár engem annó egy futár céghez akartak felvenni , ami autoalkatrészt hordoz kifele mindenfel, és tudták jól hogy nincs képesítésem , 2 körön is túlmentem , a 3. körben 100% ban autoalkatrészekről volt kérdés :DDD ami egyet jelentett azzal hogy már más kapta meg a melót,
    itt szerintem arra voltak kíváncsiak hogy a logikát megtudod e oldani, még ha "összetákolva" is magát a servlet részt, vagy épp azt egyáltalán nem, hiszen nem feltétlen ismered a dolgokat, de ahogy Te tudod, old meg a figyelést osztást szorzást :)
    php ban én is simán megtudnám, addig amig ténylegesen meg nem kellene, most c# vel szenvedek, de ez lesz a következő "dolgom" hogy megtudnám e irni :DD
    Mutasd a teljes hozzászólást!
  • Tudtam, hogy 4 óra nekem kevés hozzá - normálisan megcsinálni, ezért mondtam, hogy akkor hagyjuk.
    Mutasd a teljes hozzászólást!
  • mire jutottál amúgy a megoldással kapcsolatban?
    Mutasd a teljes hozzászólást!
  • Nem tudom hova akarsz pontosan kilyukadni, nem a hashcode, equals felülírására gondolsz ?
    Mert azt mindig ajánlott felül írni, ha saját osztályokat hozol létre.(ez nem vita indító)
    Mutasd a teljes hozzászólást!
  • és jól felülírni az általános Java metódusokat.


    Meselj, milyen
    általános Java metódusokat
    kell
    felülírni
    ?
    Mutasd a teljes hozzászólást!
abcd