Főoldal

"Mérnököt a mérnöktől"

A Schönherz Bázis összeköti az állást kereső és állást kínáló mérnököket.

CV küldés

Küldj önéletrajzot! Gyorsan, egyszerűen.
Megjegyzésbe írd be a pozíció nevét.
CV küldés

Iratkozz fel hírlevelünkre!

Kövess minket!

Kövess minket!

Hírek

5 kódáttekintő trükk, amit a profik használnak - 3,2 millió sor kód alapján
5 kódáttekintő trükk, amit a profik használnak - 3,2 millió sor kód alapján

Ebben a cikkben megvizsgáljuk mi az 5 legjobb módszert ahhoz, hogy a csapatod kód-áttekintő személet/folyamat alapján működjön és a legtöbbet hozhasd ki belőle. 



Kódáttekintés első lépések: néhány tipp, hogy jól csináld

Egyre több vállalat építi be a kódáttekintést a munkametódusai közé.

Míg egyesek nem fogadják örömmel, ha a munkatársaik átnéznék a kódjaikat, mások ezt egy tanulási, fejlődési növekedésnek tekintik, vagy egy eszköznek arra, hogy bebizonyítsák, milyen menő kódot írtak.

A következőkben végignézzük a kódáttekintés fő fogalmait, kiemelünk néhány olyan eszközt, amik használatosak lehetnek ebben a folyamatban és megosztjuk a saját tapasztalatainkat is. Készülj fel a kódólási képességed ellenőrzésére.


Mi a kódáttekintés

A kódáttekintés “számítógépes programkód szisztematikus. rendszerezett átvizsgálata”. Ennek a folyamatnak a célja olyan hibák megtalálása, amikre nem derült fény a fejlesztési fázisban, illetve célja a kód és a termék átfogó minőségének a javítása.

Olyan, mint egy másodvélemény kérése a kódról, mielőtt továbblépsz vele a következő lépésre. Többféle áttekintés módszer létezik, a következő 4 a legnépszerűbb ezek közül.


  • Páros programozás: 2 fejlesztő dolgozik együtt, az egyik csak figyeli a társát, ahogy éppen begépeli és megalkotja a kódot, majd szerepet cserélnek.
  • Informális átvezetés: a fejlesztőket beavatják a projekt, termék részleteibe, megengedve nekik, hogy kérdezzenek és hozzászólójának problémákhoz, mielőtt azok megtörténnének.
  • Eszköz által támogatott: A kód áttekintése egy áttekintő program segítségével zajlik.
  • Formális vizsgálatok: hibák keresése egy meghatározott folyamatot használva.


Nem számít melyik áttekintés típust választod, a munkafolyamat ugyanaz marad. A kód megírása, áttekintése, változások alkalmazása, stb, amíg a kód készen nem áll a következő fázisra. A szükséges ciklusok, iterációk száma minden egyes kódhoz a határidők szorossága, az adott funkció fontossága, és a szőrszálhasogatás mennyiségének a függvénye alapján változhat.


Hogyan csináljuk 

Pár évvel ezelőtt a Cisco egy nagy (néhányak szerint a legnagyobb) esettanulmányt tett közzé a könnyűsúlyú kód áttekintési módszerekről. A 10 hónapos kutatás alapja 2500 áttekintés és 3,2 millió sor kód volt, mindez 50 fejlesztő által készítve. Részletezi a kódáttekintés értékeit és módszerét, illetve az, hogy hogyan kell cégen belül ezt kezelni. Itt van pár tanulság, ami levontunk belőle.


  • Adjuk meg az alaphangot 

Első hallásra mindez ijesztő lehet - másokat megkérni, hogy hibát találjanak a kódodba - fontos tudni, hogy mit csinálsz

Létre kell hozni egy tervet, beszélni a fejlesztő csapatokkal erről és elmondani, hogy hogyan néz ki, hogyan adható egy jó és rossz visszajelzési forma a kódokra, Ahhoz hogy ez a folyamat működjön, fontos, egy fenyegetettségek nélküli, együttműködésre építő légkör fenntartani a csapatban.

Egy jó kezdési pont lehet az, ha tudatosítjuk mindenkiben azt, hogy nincs semmi baj a hibák találásában. A cél nem egy adott fejlesztő leértékelése, kritizálása, hanem az, hogy mindenki megértse azt, hogy hogyan írhatnak jobb kódokat.


  • Kommenteljünk minden dolgot 

Az első pár áttekintés nehezebb lehet, de nem az áttekintett kódot elkészítő személyek, fejlesztők számára okoz nehézséget majd. Ha segíteni szeretnél a csapattársaidnak a kódok jobb megértésében, fejlesztőként ajd hozzá kommenteket/megjegyzéseket a forráskódodhoz.

Ez nem csak az áttekintéshez fog hozzájárulni, hanem okosabbá teszi a kódot és azok a személyek is akik hetekkel, hónapokkal, vagy akár évekkel később érkeznek a céghez is tudni fogják, hogy mit és hogyan hoztál létre.


  • Sor és időmenedzsment

A kódáttekintés fontos, de életbevágó észben tartani, hogy nem ez a legfontosabb dolog, amit meg kell tenned. Rengeteg funkciót kell beépítened, kódsorokat írnod és nem szeretnéd azt, hogy te vagy a csapatod mások kódjának az áttekintésével töltsék az egész napjukat. A Cisco szerint a teljes hatékonyság elérése érdeklében a fejlesztők kb 200-400 sor kódot kellene átnézzenek egy nekifutásra. Ez a kódban való hibatalálás képességére is hatással van. A lenti ábra mutatja a hibák sűrűségét és az átvizsgált sorok számát, ennek a célszámnak az alátámasztásaként.



Továbbá a Cisco rámutat, hogy az óránkénti optimális átnézési ráta kevesebb mint 300-500 sort kellene tartalmazzon. Ezzel a rátával van a fejlesztőnek elég ideje arra, hogy átnézze, elemezze és megtalálja a hibákat, amik a kódban találhatók.

Amikor az áttekintés meghaladja a 400-500 sor kódot óránként a hatékonyság a drasztikusan csökken. 1000 sor felett a fejlesztő nagy valószínűséggel csak átgörgeti, átfutja a kódot és így nem is keres benne hibát.



Mennyi időt kellene akkor ténylegesen szánnod egy áttekintésre? 60 perc egy jó, kerek szám, amivel dolgozhatsz. És egy óra múlva egyszerűen megunod a feladatot és már nem leszel hatékony a hibák feltárásban.


  • Célok, célok és célok

A csapat bevonása a kódáttekintésekbe nehéz feladat. A kódáttekintésnek a mindennapi rutin részévé kell válnia és kéz a kézben haladnia a már meglévő hibajegyekkel és egyéb feladatokkal, amikkel minden csapattag rendelkezik. Tudjuk, hogy megy ez – mindig van valami sokkal fontosabb teendő.

Egy módszer, amivel túllendülhetünk ezen a problémán az lehet, ha a kódáttekintés egy már meglévő hibajeggyel kapcsolatos feladathoz kapcsoljuk, annak részéve tesszük.  Így egy fejlesztő át kell majd nézze kódot, mielőtt az adott feladatot lezártnak tekintenénk. Ez segít a csapatnak abban, hogy jobban, egy magasabb szintről lássák a napi, vagy akár heti teendőket, hogy tudomást szerezzenek arról, hogy ki mivel foglalkozik a csapaton belül, és persze, hogy beépítsék az áttekintéseket a napi feladataik közé.

Még egy módszer a célok és mérőszámok kitűzése magára az áttekintési folyamatra. Amikor konkrét célokat határozol meg, akkor könnyen látható, hogy az áttekintési folyamat mikor valósítja meg a tőle elvárt célokat. Ezek a célok bármik lehetnek, pl csökkentsétek le a támogatási kérések számát, vagy csökkentések a visszapattanási arányt.

Az egyetlen szabály az, hogy a célok számszerűsíthetők legyenek, ne csak egy tágan értelmezhető “javítsatok ki több hibát” legyen az.

Amint kitűzted a célokat, minden csapattag képes lesz arra, hogy a saját kritériumlistáját létrehozza, amit majd figyelembe vesz a kódok írásakor és áttekintésekor.   Tartsd azt fejben, hogy a célok idővel változhatnak és átalakulhatnak, vagyis, ahogy a kódáttekintési folyamatod halad, fejlődik, úgy egyre jobb elképzeléseid lehetnek arról, hogy milyen típusú problémákat akarsz megoldani vele.


  • Lásd át 

A csapatod benne van, mindenki megosztja a tudását és a kódokat áttekintik. Ez mind nagyon jó, de mi történik ezután? Az áttekintésnek, mint részfeladatnak, csak akkor van értelme, ha a kódot módosítják és javítják is eszerint.

Feleslegesnek tűnhet hangsúlyozni, hogy ki kell javítani a kódban az előforduló hibákat, de ez fontos. Az áttekintés alatt megtalált hibák nem részei a szokásos tesztelési folyamatnak és emiatt “elvesznek” vagy nem lesznek kijavítva.

Bizonyosodj meg arról, hogy minden egyes talált hibáról tud az a fejlesztő, aki a kódot írta és hogy ténylegesen kijavítják a hibát. Ez a rész kicsit trükkös, mikor kezdő vagy a kódáttekintésekben, de mindenképpen fontos.

Olyan áttekintő eszközök könnyíthetik meg a munkád, mint a GitHub code review, Review Board, Upsource a JetBrains-től és mások, amik követik a kódban történt változásokat, lehetővé téve a hozzászólásokat, a kód módosítását, vagy egyszerűen az elutasítását.


Miért használd 

Sok érv van amellett, hogy bevezess egy kódáttekintő rutint a csapatodon belül. Elsősorban segít megtalálni és kijavítani a design hibákat mielőtt élesbe alkalmazod a kódot, a cég elvárásaihoz, designhoz simítja a kódot (ha van ilyen) és jobbá teszi a kódod és az alkalmazásod. A vállalati kultúrába építéséhez is hozzásegít, közelebb hozva a juniorokat és a seniorokat egymással, miközben egy fejlődésre sarkalló és türelmes munkakörnyezetet hozol létre.

Amíg egyes fejlesztő csapatok a vezetőt preferálják, mint áttekintő, más csapatok örömmel fogadják a kollégákat áttekintőként. Az utóbbi esetében a csapattársak, munkatársak nézik át egymás kódjait, mielőtt piacra dobják a terméket, vagy átadják azt a vezetőnek.

A kódáttekintések bevezetése egy nehéz döntés és egy még nehezebb feladat. Különösen nehéz, ha azon gondolkodsz, hogy hagyod a csapatokat egymás kódjait átnézni és ehhez jó előre fel kell majd építened egy tervet.


Hogyan csináljuk mi? 

Teljes közzététel: Mi, az OverOps -nál nagyon sok kutatást, utánajárást vittünk végbe, mielőtt megmutattuk a mi gyakorlatunkat. Más cégekkel beszéltünk, elolvastunk néhány esettanulmányt, és számos lehetőséget, opciót és módszert találtunk a neten.

Arra a következtetésre jutottunk, hogy elég fontos nekünk ez, hogy kipróbáljuk a csapatainkon belül. Még mindig csak az első lépéseket tesszük, de összegyűjtöttünk pár útmutatót, ami mindenkinek segíthet elindulni. Nagyban támaszkodik a Cisco kutatására, Kevin London Kódáttekintés legjobb módszerek cikke és Michael Sorens A kódáttekintési módszerek Zenje cikkére.


Záró gondolatok

A kódáttekintések a céged kultúrájának és munkafolyamatainak is nagy részévé válhatnak. Nem csak kódolási standardokat állít fel a jelenlegi és jövőbeli csapattagoknak, hanem lehetővé teszi azt is, hogy mindenki a designon gondolkodjon még mielőtt új funkciókat építenének fel, vagy hozzáadnának pár sort a már meglévő kódok egyikéhez.

Azonban ez nem lesz minden esetben egy bevált recept. Kisebb csapatokban, szűk határidőkkel dolgozva, boostrap modellt alkalmazó startupokban vagy nagycégekben akik egyszerűen nem tudják a megfelelő módon csinálni, nem fog működni. Ez egy olyan döntés, amit nem szabad könnyűszerrel, gondolkodás nélkül meghoznod és ahogy segítheti is a csapatod, ugyanúgy meg is törheti azt, illetve egoháborúba is torkollhat a folyamat.

Vedd a szükséged időd és fáradtságot a kutatások elvégzéshez, elolvasáshoz, beszélj a csapatoddal és mérlegelj: ez a megfelelő döntés a cégednek és a termékednek?


(Forrás


***

Ha Te is kreatív, kihívásokkal teli mérnök állást keresel minõségi munkáltatónál, jó helyen jársz, mert a Schönherz Bázis épp azért jött létre, hogy Neked segítsen.
Gyere, nézz szét aktuális állásaink között!