- d3ad blogja
- A hozzászóláshoz be kell jelentkezni
- 1522 megtekintés
Hozzászólások
Nem egy nagy ördöngősség a Java, igazából az OOP-t kell felfogni, utána meg Design Patterneket nézegetni, hogy ne találd fel feleslegesen a melegvizet. Bár mondjuk ez utóbbi nem feltétlenül első féléves Java. Mindenesetre, ha tudod (és az előadó is tudja), akkor próbáld rábeszélni a Unit Test-ekre is, elég gáz, hogy emberek úgy jöhetnek ki egyetemről (köztük én is, ha befejeztem volna), hogy soha nem hallottak róla.
- A hozzászóláshoz be kell jelentkezni
+1
Ugyanahhoz a feladathoz több kódot kell írni, rutinszerzéshez kiváló. Nagyobb feladatoknál a teszt kód már azelőtt használni kezdi friss kódot, mielőtt a program többi részét megírnád hozzá, hamar kiderülnek a design-beli hiányosságok is. Akkor jöhet a refactoring. Minél előbb rutinná válik a tesztírás, annál jobb. Ráadásul bármilyen nyelven programozol, unit tesztek nélkül csak vakrepülés.
- A hozzászóláshoz be kell jelentkezni
Pedig már kemény egy laboralkalom unit testing van, még, háziban is megkövetelik. ;) Sőt, msc-n az egyik szakirányon egy teljes tárgy foglalkozik szoftverteszteléssel.
- A hozzászóláshoz be kell jelentkezni
Komoly :D De hogy miért msc-n? Majd biztos a kutató-fejlesztő fog csak teszteket irogatni, a kódoló-kulimunkás nem :)
Szerk: ezeket amúgy valahogy 1.-2. félév BSc körül tudnám elépzelni.
Amúgy mintha egyik kolléga járna BME-re pont teszteléssel kapcsolatban előadni, majd rákérdezek megint.
Szerk2: A TDD-t már meg se merem említeni...
- A hozzászóláshoz be kell jelentkezni
„Amúgy mintha egyik kolléga járna BME-re pont teszteléssel kapcsolatban előadni, majd rákérdezek megint.”
Ez érdekel, köszi előre is!
--
blogom
- A hozzászóláshoz be kell jelentkezni
Megpróbálom nem elfelejteni, de ha mégis sikerül, akkor küldj egy mailt nyugodtan :)
- A hozzászóláshoz be kell jelentkezni
Felvéstem, ha addig nem, hétvégén/hétfőn megejtem a mailt. :-D
--
blogom
- A hozzászóláshoz be kell jelentkezni
Sajnos nem BME, ELTE :(
- A hozzászóláshoz be kell jelentkezni
BSc 1.-2. félév? A mérnök informatikus képzés nem "kódoló-kulimunkás" képzés, szoftverfejlesztésre lehet szakosodni MSc-n. Miért tanítanának ilyet mindenkinek aki informatikával foglalkozik, ráadásul kötelező jelleggel?
- A hozzászóláshoz be kell jelentkezni
BME-n a BSc-n is vannak szakirányok, igaz csak a 6. félévtől (ez szerencsére változni fog, egy félévvel előbb kezdődnek majd).
BME mérnök infó bsc-n nagyjából a képzés fele szól szoftverfejlesztésről, és csak a másik fele minden másról, gondolom máshol is hasonló az arány.
- A hozzászóláshoz be kell jelentkezni
Azért azt a pár elágazó tárgyat még nem hívnám szakiránynak. A képzés fele meg nagyon erős túlzás. Félévente van 1-2 tárgy, és egyéb tárgyakból néha szóba kerül a programozás.
Vagy ha rosszul emlékszem akkor mea culpa.
- A hozzászóláshoz be kell jelentkezni
Nincs ez olyan régóta.
Oké, a fele tényleg túlzás volt. De záróvizsgán a 6-ből 2 tárgy egyértelműen, egy pedig többé-kevésbé köthető a szoftverfejlesztéshez, az már majdnem a fele. :)
- A hozzászóláshoz be kell jelentkezni
"Miért tanítanának ilyet mindenkinek aki informatikával foglalkozik, ráadásul kötelező jelleggel"
Talán mert a munkaerőpiacon erre van a legnagyobb igény.
Csak ez a képzés még mindig kevés, épp ezért nem jelent olyan nagyon sokat ha van papírod egy egyetemi képzésről, vagy nincs.
- A hozzászóláshoz be kell jelentkezni
De az IT nem kizárólag szoftverfejlesztésről szól, csak azoknak érdekes ez amiről szó van.
Ilyen kimutatást meg még sosem láttam, hogy a munkaerőpiacon a szoftverfejlesztőkre van a legnagyobb igény az IT szektoron belül. Viszont nagyon kiváncsi lennék rá, ha nem csak hasraütésből írtad hanem alá tudod támasztani valamivel.
- A hozzászóláshoz be kell jelentkezni
http://www.portfolio.hu/gazdasag/vegtelen_szamban_tudunk_programozokat_…
Profession:
IT Fejlesztés, Programozás: 902 állás
IT üzemeltetés: 325 állás
Azaz az IT állások közel 75%-a szoftverfejlesztés a legnagyobb állásportálon.
Munkaügyi hivatal (nagyon kevés állás van itt, de ezek nagy része is fejlesztő):
https://vmp.munka.hu/allas/talalatok?kulcsszo=&helyseg=&kategoria=13&ti…
- A hozzászóláshoz be kell jelentkezni
A portfolios cikket sajnos nem tudom megnézni mert előfizetés kéne hozzá.
A professionön valóban sok az állás abban a kategóriában, de azért azt tegyük hozzá, hogy ott nem csak a fejlesztői állások vannak, hanem az adminisztrátori, supportos, tesztelői és projektvezetői állások is. (de az első 10 oldalt átnézve látszólag a fejlesztői állások vannak túlsúlyban)
- A hozzászóláshoz be kell jelentkezni
Én meg tudom nézni, előfizetés nélkül is. Google-ből rákeresve a cikk címére, simán elérhető a tartalom.
A releváns mondatok:
"P.: Vannak olyan területek, ahol munkaerőhiány van, vagy erre számíthatunk 2014-ben?
F.T.: Itthon továbbra is az IT, szinte végtelen számban tudnánk még programozókat elhelyezni a piacon. "
- A hozzászóláshoz be kell jelentkezni
Bárcsak szinte végtelen számú munkahely lenne :)
- A hozzászóláshoz be kell jelentkezni
Ha jól emlékszem, ő Miskolcon tanul.
Az a tárgy pedig van még? ProgTechet már nem tanítanak, a Google se nagyon dob ki a tárgykódra 2010-nél frissebb oldalt. Pedig szabválnak nem lenne rossz, ahogy nézem előkövetelménye nincs...
--
blogom
- A hozzászóláshoz be kell jelentkezni
Ő lehet, de én Hevinek válaszoltam. :)
Szerintem van.
- A hozzászóláshoz be kell jelentkezni
Design Pattern témakörben merre érdemes elindulni? Mondjuk ha koordináltabban szeretném tanulni, minthogy fejest ugorjak a Google-ba.
Egyébként ha már Unit test, ez is érdekelne.
Kb. annyit sikerült a lejjebb linkelt gyakorlat során felfognom belőle, hogy egyes függvényeknek jó előre meghatározom az adott bemenethez elvárt kimenetét. Pl.: ha nem találja, amit meg akarok nyitni, dobjon exceptiont; ha nem tudja megnyitni, dobjon exceptiont; ha megnyitja, akkor meg olvassa be a 142. sorának 69. karakterét. S akkor odarakok egy fájlt, amiben a 142. sor 69. karaktere 'x', az összes többi 'a', s boldog vagyok, ha tényleg azt olvasta be.
De van egy olyan érzésem, hogy nem „éreztem rá az ízére”, mert ez így, hát, hogy is mondjam... Olyan fapados.
--
blogom
- A hozzászóláshoz be kell jelentkezni
Design Pattern:
Jó kezdés a wiki. Innen is, montjuk a Creational Patterns, ami kezdetben érdekes lehet :) Meg a Gang of Four - Design Patterns könyve :)
Unit Test: a te példád az inkább már Intergation Test, nem Unit Test. A Unit Test lényege az, hogy csak az adott osztályt / adott kódrészletet teszteled, de semmi függősége nem lehet, mert az befolyásolhatja az eredményt. Ha a példádnál maradunk, akkor a file műveletekért felelős osztály ki kell Mockolni. A mock az egy dummy osztály, amit legenerál neked a Mocking framework, csak annyit kell megmondanod neki, hogy "ha ezt csinálom, akkor ezt adja vissza". Ld. EasyMock, vagy preferáltabban Mockito.
Ezáltal függetlenedsz pl. a file rendszertől, meg úgy egyáltalán, hordozható lesz a teszt kódod, nem kell mindenkinél ugyanott lenni a teszt file-nak, hiszen nem is kell, hogy legyen, az az objektum, amit használnál, az fake, ki van mockolva. Általában amúgy azt szoktuk mondani, hogy nem kell kimocolni a Java által szállított containereket (de ha egyszerűbb, akkor persze lehet), pl. Array, Map, Set, stb., a domain objecteket, amiben nincs logika, csak tárol valamit, illetve a (megbízhatónak mondott) framework által szállított containereket se.
Bármi mást, ami logikát tartalmaz, legyen saját kód, vagy külső, azokat illik mockolni, hiszen, ha nem mockolod, akkor előbb fel kell konfigurálni az adott osztályt, amitől függ a te kódod, amit tesztelsz, másrészt akkor már nem csak a saját kódodat, hanem a másikat is teszteled. Ezáltal nem lesz megjósolható a pass/fail, hiszen ha elbukik egy Unit Test, ami dependál másra, ott akkor nálad van a gond, vagy a másik osztályban? Oké, általában triviális a dolog, de a Unit Testben pont azt szeretjük, hogy egyértelműen megmondja, mi a gond.
Ezért is van az az ököl szabály, hogy egy UT metódusban csak egy valamit tesztelünk. Unit Testben nincs helye pl. if-else-nek, mert akkor az két külön teszt eset. Hiszen így marad egyértelmű a hiba, ha valami fail-el.
Szerk: és így van, a Unit test "fapados". Abban az értelemben, hogy csak a tesztelt osztály/metódus logikáját teszteli. Ha az osztályod feladata az, hogy kezelje a hibákat, illetve ha az X. sor Y. betűje 'a', akkor azt cserélje ki 'b'-re, akkor azt kell tesztelned, hogy a hibákat jól kezeli-e, illetve, hogy az X. sor Y. betűjét lecserélte-e 'b-re', viszont az X. sor Y-1. betűjét és az X. sor Y+1. betűjét (+ esetleg az X-re is lehet teszteseteket írni, követelmény függvényében) nem cserélte le 'b'-re -> ezek is lehetnek külön test metódusok.
Szóval annál jobb az osztályod/metódusod, minél fapadosabb a unit tested, hiszen ezáltal sikerül betartani a Single responsibility principle-t :)
Szerk2:
Ezért jó a TDD, mert ha túl összetett a unit tested, az azt jelentheti, hogy sérted az SRP-t, tehát be tudsz vezetni rögtön egy külön osztályt, amit mockolsz és később majd azt is implementálod.
- A hozzászóláshoz be kell jelentkezni
Ezáltal függetlenedsz pl. a file rendszertől, meg úgy egyáltalán, hordozható lesz a teszt kódod
Tegnap blogmarkolták a weblaboron Robert C. Martin - Clean Architecture and Design c. előadását (érdemes megnézni, nagyon a vége felé van szó benne unit testelésről és tdd-ről), amiben pont ezt a példát hozta (fájl rendszer / adatbázis mockolás), legnagyobb előnynek a sebességet hozva: ha nincs tényleges I/O, akkor a teszt gyorsan fut, ezért a tesztet le is fogják futtatni :)
Szerk.: az Andy Hunt - Dave Thomas féle Pragmatic Unit Testing könyv érdekes lehet a témában, a kugli a címére keresve 3. találként kidob egy PDF-et.
BlackY
--
"en is amikor bejovok dolgozni, nem egy pc-t [..] kapcsolok be, hanem a mainframe-et..." (sj)
- A hozzászóláshoz be kell jelentkezni
Szoftvertechnikákon lesz róla szó, igaz nem sok, talán 2 előadás (cserébe záróvizsgán is kérik). Vikwikin van is pár összefoglaló linkelve a tárgy oldalán, de azok tényleg csak cheat sheeteknek jók. A többit meg Hevi is írta.
- A hozzászóláshoz be kell jelentkezni
Én ezekhez a dolgokhoz még nagyon tudatlannak érzem magam. Egyenlőre az OOP alapjainál járok.
- A hozzászóláshoz be kell jelentkezni
A unit testinget jUnit-tal pont emiatt kezdeném el rögtön. Egyszerű koncepció, egyszerű framework. Plusz később hálás leszel magadnak, hogy berögzült szokássá tetted a unit testinget.
Nem vagyok híve a 100% code coverate at all cost dogmának, de amíg 50-80%-ra lefedsz egy kódot tesztekkel egy csomó hasznos dologra tudsz bukkani a saját kódodban: visszatérő hibák, rossz tervezés, stb.
- A hozzászóláshoz be kell jelentkezni
Sajnos ez addig így marad, amíg nincs külön szoftvermérnöki képzés, csak általános mérnök-infó van.
- A hozzászóláshoz be kell jelentkezni