RSS Feed LinkedIn Google Plus
  1. 2013. június 8. szombat

    Nagy Gáspár az Agilis tesztelésről tartott előadást a legutóbbi Agile Hungary meetupon, az egyik dián a kontextus függő tesztelési iskola hét alapelvét mutatta be:

    1. Bármilyen módszer értéke a kontextustól függ
    2. Egy adott kontextusban vannak jó módszerek, de nincsenek általános legjobb módszerek
    3. Az együtt dolgozó emberek képviselik a legnagyobb értéket bármilyen projektben
    4. Projekt részletek változnak ahogy az idő halad, sokszor előreláthatatlan irányokba
    5. A termék egy megoldás. Ha a problémát nem oldja meg, a termék nem lesz sikeres.
    6. A jó szoftver tesztelés egy kihívásokkal teli intellektuális folyamat
    7. A termék hatékony teszteléséhez mindig a megfelelő lépéseket tesszük a megfelelő időben. Ezeket az egész projekt alatt gyakorlott szakértelem és elemzés segítségével tudjuk fejleszteni

    További információkat a http://context-driven-testing.com/ oldalon lehet beszerezni.

    Az ötös pont nagyon tetszik, hasonló elhangzott a korábbi TechTalk-os prezentációban Christian Hassa előadásában: sokkal többször bukunk meg amiatt, mert a rossz problémát oldottunk meg, mint amiatt, hogy rossz megoldást adtunk a jó problémára.


  2. 2013. június 6. csütörtök

    Visszatérő kérdés a Test Driven Developement fejlesztés esetén: hány tesztet írjak, mikor lesz jó. Nagyon nehezen értettem meg, pedig sokszor mondták: a TDD nem tesztelési, hanem fejlesztési módszertan. Az Agile Hungary és a Teszt&Tea meetup közös rendezvényén Szabó Attila zseniális előadást tartott arról, hogy 2013-ban hogyan ne fejlesszünk TDD-ben, s végre megvilágosodtam. Először megfogalmazom, hogy mit szeretnék csinálni (teszt), majd azt, hogy hogyan (kód), s a végén fontos a refaktor. Ne legyen felesleges teszt (olyan teszt, aminek a megfogalmazása után nem lesz kód változás) és ne legyen teszteletlen kód. Ennyi a lényeg.


  3. 2013. április 20. szombat

    Olvastam egy jó cikket a JavaScript-beli Math.random()-ról. Ha csupán (pszeudo)véletlen számokat szeretnénk, akkor tökéletes, számomra nagyon szimpatikus volt, hogy nem kell más nyelvekhez hasonlóan inicializálni. Ez teljesen feleslegesnek tűnt egészen a legutóbbi és egyben első magyarországi Leacy Coderetreat-ig, amikoris megörökölt, véletlenszerű működésre alapuló programot kellett helyrepofoznunk, karbantartanunk. Az első lépés természetesen a tesztek írása – no, de hogyan? Más programnyelvben dolgozó kollégáim könnyen megoldották a kérdést, hiszen beégetett seed-et használtak a teszt adatok generálásához (itt akadtak gondok, amikor különböző platformon más sorozatot adott ugyanaz a seed), nekünk, script nyelveseknek más utat kellett járnunk: legeneráltuk előre a random számokat, és mindig ebből dolgoztunk.

    A fent említett cikkben több megoldás is található, ha nem elsődleges szempont a sebesség, de szükségünk van előre tervezhető véletlenszerű értékekre, David Bau megoldása tökéletes választás lehet JavaScripthez. Hátránya, hogy a natív Math objektumot módosítja, előnye viszont hogy transzparens – teszthez bekapcsolhatjuk, éles környezetben pedig továbbra is az eredeti Math.random() állhat rendelkezésünkre.

    Remélem, sikerült felkeltenem az érdeklődésedet, s bár a következő (egyben Legacy) CodeRetreat-re nincs már több hely, ha feliratkozol a Meetup.com-on, értesülhetsz a további lehetőségekről.


  4. 2013. április 1. hétfő

    [For English homepage go to http://en.farkas-mate.hu/]

    Megszűnik a try.hu szolgáltatás, mint a Facebook oldalán is olvasható. Kár, szerettem. 2010-ben eladó lett, de nem sikerült befektetőt találni rá.

    Néhány hét és a http://fmate14.try.hu nem lesz többé elérhető. Remélem, ez a kis bejegyzés segít majd idetalálni azoknak, akik az előző helyen kerestek.


  5. 2013. március 23. szombat

    Megnéztem néhány magyar fejlesztő LinkedIn profilját, és nagyon meglepődtem, hogy több helyen fel volt tűntetve a “marital status” és a pontos születési dátum, viszont az nem, hogy az illetőnek milyen nyelvismerete van. Pedig véleményem szerint pont fordítva kellene, hogy legyen: a LinkedIn szakmai és nem személyes kapcsolatok ápolására való.


  6. 2013. március 11. hétfő

    Kaptam egy levelet a LinkedIn-en keresztül:

    Kedves Máté!

    Egy álláslehetőséggel kapcsolatban írok Önnek. Bizalmas keresést folytatok egy informatikai cég megbízásából JavaScript programozó munkakörre. A részleteket csatoltam. Amennyiben érdekli a lehetőség, kérem jelezze, s egyeztetem Önnel a továbbiakat!

    Üdvözlettel; F**** K******
    06 20 *** ****

    (tovább…)


  7. 2013. március 4. hétfő

    A reguláris kifejezés valami olyan, amit legtöbbször csak write-only módban lehet kezelni: ha nem tetszik, az esetek nagy részében könnyebb újra megírni, mint kijavítani.  Néha azonban jól jönne apróbb javítást eszközölni, vagy csak átnézni, hogy valóban azt csinálja-e, amit akarunk, ebben nyújthat nagy segítséget a Regexper honlap.

    Vegyünk például egy egyszerű esetet: email címet szeretnénk validálni kliens oldalon. Rákeresünk a Google-ön, az első találat (nálam legalábbis) egy StackOverflow-os válasz elfogadva megoldásnak (ott a nagy zöld pipa), és 439-en szavaztak rá, tökéletes. A kód így néz ki: (tovább…)


  8. 2013. február 28. csütörtök

    Megnéztem Crockford bácsi videóját a Monadokról, küldöm mindenkinek, aki szereti. :)

    (tovább…)


  9. 2012. december 15. szombat

    Kérlek, mondd el röviden, mit csinál az alábbi CoffeeScript kód!

    uglyStep = (arr) ->
        res = []
        arr.forEach (a) ->
            count = 0
            arr.forEach (b) ->
                count += 1 if \
                    Math.abs(a.x - b.x) <= 1 and \
                    Math.abs(a.y - b.y) <= 1 and \
                    (a.x != b.x or a.y != b.y)
            res.push(a) if 2 <= count <= 3
        arr.forEach (a) ->
            for i in [-1..1]
                for j in [-1..1]
                    live1 = arr.some (cell) ->
                        (cell.x == a.x + i and cell.y == a.y + j)
                    live2 = res.some (cell) ->
                        (cell.x == a.x + i and cell.y == a.y + j)
                    unless live1 or live2
                        current = {x: a.x + i, y: a.y + j}
                        count = 0
                        arr.forEach (b) ->
                            count += 1 if \
                                Math.abs(current.x - b.x) <= 1 and \
                                Math.abs(current.y - b.y) <= 1
                        res.push(current) if count == 3
        res

    Ha a válaszban olyan szavak szerepelnek, hogy „végimenve”, „megnézzük”, „hogyha egyenlő”, az mutatja a problémát. A kódnak önmagában érthetőnek és világosnak, vagyis öndokumentált jellegűnek kell lennie. Viszont dokumentációban és a tesztekben azt írjuk le, hogy mit csinálunk, nem azt, hogy hogyan. (tovább…)


  10. 2012. december 14. péntek

    A halogatott reménység beteggé teszi a szívet,
    de a megadatott kívánság életnek fája.

    Nagy érték, ha a munkavállaló lehet őszinte és tud őszinte lenni, ugyanis ilyenkor lehet viszonyulni ahhoz, aki ő valójában. Ha őszintén, negatív következmények nélkül elmondhatja azt, ami foglalkoztatja, akkor van esély rá, hogy közös nevezőre tudjunk jutni, és még ha nincs is lehetőségünk megadni neki, amit szívünk szerint megtennénk, akkor is átélheti a „megértettek engem” érzést, és ilyenkor gyakran kiderül, hogy a helyzet nem is olyan súlyos…

    Fura lény az ember, néha olyan apróságokon tudnak nagy dolgok múlni. Lehet, például, hogy valakinek az a szíve vágya, hogy el tudjon menni egy szomszédos országba egy szakmai konferenciára. Lehet, hogy valakinek hiányzik a céges kávé. Lehet, hogy egyszerűen csak egy új egérre vágyik, vagy szeretné kipróbálni magát egy új szituációban. Ha  gyűlik benne a frusztráció, egyszer csak besokall. Viszont ha megkapja amire vágyik, az igen nagy mértékű inspirációt tud jelenteni, amitől a munkateljesítménye is jelentősen jobb lesz. Nem is a konkrét érték miatt, hanem mert érzi, hogy embernek nézték, hogy fontos, hogy megkapta azt, amire szüksége van. És ez lehet, hogy csak annyi, hogy amikor reggel bejön a főnök, köszönjön oda neki is. Elmondhatja, ha zavarja ennek a hiánya? Vagy retorziótól kell tartania? De erre a munkavállalónak is törekednie kell, hiszen a vezetőség sem gondolatolvasó, nem fogja tudni magától kitalálni, mi van benne. Ha a hajlandóság megvan, segíteni kell őket abban, hogy ő speciel mivel motiválható.

    Továbbra sem változott meg a véleményem, a munkavállalónak az a dolga, hogy hasznot hozzon a cég számára, mondhatnám, a dolgozó van a cégért, és nem a cég a dolgozóért, a főnök nem tartozik a beosztottnak azzal, hogy megfelelően motiválja. De mégis jó, ha így teszünk, mert ha sikerül a szíve szerint viszonyulni hozzá, akkor nagyon ragaszkodni fog hozzánk. Ahogyan Csudi mondta: „Csendben megjegyzem, hogy vannak cégek, ahonnan nem lehet embert elhozni, semennyi pénzzel sem. Sőt, pénzzel általában nem lehet.” Ez pedig mind a két fél számára előny, mert van egy jó munkaerőnk, aki szintén jól érzi magát nálunk. (Az is igaz, hogy ha valakinek semmi nem jó, annak semmi nem jó, felesleges lyukas vödörbe vizet öntenünk, de ezt egyénileg kell elbírálni.)