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

Hogyan írj jobb kódot
Hogyan írj jobb kódot


Az előző blogposztom nagy vihart kavart a Twitteren. Ez a bejegyzés egy nagy problémára hívta fel a figyelmet: bizonyos szabályok betartásának a kényszere valójában nem segít jobb kódot írni. A leggyakrabban előforduló kérdés (vagy ellenzés), amit a bejegyzés válaszaként kaptam az „akkor hogyan segítsünk a kezdő fejlesztőknek jobb kódot írni?”


Az együttműködés megtanulása 

A legfontosabb képesség, amit meg kellene tanítanunk a kezdő fejlesztőknek az az, hogy miként dolgozhatnak együtt hatékonyan másokkal egy közös kódbázison. A karrierem során sok évembe került ezt megtanulni, de ez segített, hogy minél hatékonyabb legyek. Tehát ezzel a lépéssel kezdem a tanulási folyamatot azokkal az új fejlesztőkkel, akik készen állnak belépni a munkaerőpiacra. Majdnem minden projekten, amin dolgozunk, a sikereink más emberektől függenek.

Itt van pár módszer, ami számomra bevált:

  • Páros programozás – A jó páros programozás jó képzést igényel, de vannak tréning stílusok, mint a kódolás dojo-k és a kód-elvonulás. A világ néhány legjobb kód oktatója aktívan használja a páros programozást az oktatási programja részeként.
  • Kódáttekintés – Olyan sokat dolgozok páros programozási rendszerben, hogy emiatt alacsonyabb prioritásúnak tartom az áttekintést. Ennek ellenére nagyon sok csapatnak jelent nagy értéket ez a módszer.
  • Türelem – Páros programozási munkavégzés esetén könnyű belekeveredni vitákba. A szakmánk szinte semmit nem mond interperszonális képességekről, mégis majdnem mindig ezekre a képességekre vagyunk utalva. Próbáld ki ezt: amikor párosan programozol és észreveszed, hogy a partnered hibázott, akkor várd meg, hogy ezt ő észreveszi-e, mielőtt szóvá teszed neki a hibát.
  • Alázat – sokszor kérdik meg tőlem: „hogy veszel rá másokat, hogy letisztult kódokat írjanak?” A kérdésbe magába benne van az az előfeltevés, hogy ők tévednek és neked van igazad. Sokunknak kihívás eltérni a megszokott gondolkodásmódunktól. Amikor a partnered olyasvalamit csinál, amivel nem értesz egyet, próbálj meg elnéző, türelmes lenni. A legrosszabb, ami történhet az az, hogy tanítasz neki valami újat. Legjobb esetben pedig te magad is tanulhatsz valami újat.

A teljesen egyedüli kódolási helyzetétől eltekintve, a kollaborációs, együttműködési képességek a legfontosabbak. Nem számít, hogy „tudod” hogy hogyan kell kinéznie a kódnak, ha ebben nem tudsz megegyezni a csapatoddal.


Most pedig, beszéljünk a kódolásról! 

Ha azon emberek egyike vagy, aki előreugrott ehhez a részhez, kérlek menj vissza és olvass az együttműködésről. Komolyan. Semmi, amit írok a kódolásról fogok írni nem fog segíteni rajtad, ha nem tudsz jól együtt dolgozni másokkal.

Rajta, olvasd el újra. Itt fogok várni.

Jó újra itt látni téged! Most térjünk rá arra, hogy hogyan lehet jobban kódolni. Természetesen, a jó kódolás az alapja a szakmai karriernek. Ha a kiinduló kódok jók, akkor kevesebb időt kell hibakereséssel eltölteni, könnyebb megváltoztatni a kódot és a csapatod gördülékenyebben fog együtt dolgozni veled.

Megtanulni jól kódolni egészen egyszerű: olvasnod kell kódokat, írnod kell kódokat, meg kell változtatnod őket és törölnöd kell őket annak érdekében, hogy újrakezdd.

Az első pontban foglaltakhoz nagyszerű könyvek állnak a rendelkezésedre. Néhány könyv, amit erősen ajánlok a Tiszta Kód, Végrehajtási Minták, Újrafaktorálás, Az Agilis módszertan művészete, A pragmatikus programozó, és Egy agilis fejlesztő praktikái. Ezek a könyvek meg fognak tanítani olyan elvek megfontolására, mint a modulok, osztályok közötti függetlenség, magas kohézió és az egyszerű design. Továbbá olyan elveket is meg fognak mutatni, mint az Egyetlen Felelősség Elve, és a Nyitott/Zárt alapelv. (habár a SOLID gyűjtőelv többi elemére szinte soha nem hivatkozok). A minták és elvek megtanítanak új információkra és kódokra, amiket majd megbeszélhetsz a csapatoddal.

A második ponthoz azt mondanám, hogy a teszt alapú fejlesztés egy nagyszerű módszer, hogy megtanulj kódolni. Szeretek katas kód gyakorlatokat végrehajtani és gyakran használom ezeket tanítási célokra is. De a legértékesebb képességet, ami a kódíráshoz kell, egy kód elvonuló közben tanultam meg. Kulcsfontosságú megtanulni azt, hogy mikor kell kitörölnöd a kódot, amit írsz. Ez alatt nem az újrafaktorizálást értem a méret csökkentése érdekében, hanem kódolási gyakorlatoknál, az összes fájl kijelölését majd a törlés gomb megnyomását értem. Vagyis kód előállításnál, miután pár órát már rászántál egy feladatra, alkalmanként használd ezt: git reset --hard HEAD

A jó kód ismertetőjele az, hogy milyen könnyű azt megváltoztatni. El tudsz igazodni a kódban? Gyorsan megtalálod benne a hibákat? Tudod, hogy hol kell egy meghatározott változást végrehajtanod benne? Megtanulhatod mindezt az elvek elolvasása által is, de a legbiztosabb módszer az az, ha minél több gyakorlati tapasztalatnak teszed ki magad. Amikor kódot írsz és változtatsz, akkor rákényszerülsz, hogy átgondold a kód határait és a jelenlegi képességed határait annak érdekében, hogy meg tudd változtatni a kódot.

Röviden, kódolj többet, figyelj a kódra és figyelj a munkatársaid visszajelzéseire is.


Kiadhatsz verziókat könnyedén

Majdnem elfelejtettem a jó kód első számú tulajdonságát – használva kell legyen. A kiadási ciklusok csapatonként eltérhetnek, napi több verziótól az évente néhányig. Ha kedved szerint adhatok ki a kódot, sokat tanulhatsz a kódodról és a felhasználóiról. Amikor az egész csapat tudja, hogy holnap, vagy jövő héten ismét kibocsájtás van, sokkal könnyebben képesek eldönteni a „most vagy később” típusú kérdéseket. Amikor csak évente párszor adsz ki kódot, akkor az emberek stresszesek lesznek, a beszélgetések pedig egyre hevesebbek.

Majdnem mindig azt vettem észre, hogy a csapatok alábecsülik a telepítési eszközökre és szkriptekre áldozott idő értékét.


Ne csinálj ostoba dolgokat szándékosan”

Ha olyan kódra bukkansz, amivel nem vagy elégedett akkor érdemes észben tartani, hogy azért ilyen a kód, mert ilyenre sikerült. Az emberek mindig okkal csinálták azt, amit. Ezek az okok valósak és indokoltak, akármik is ezek az indokok, például: a kapcsolódó elvárások megváltoztak, nem volt elég tapasztalata a fejlesztőnek, nyomás alatt volt, hogy befejezzék, haza akartak menni a családjukhoz az éjszakába nyúló irodai jelenlét helyett, vagy talán csak eltért a véleményünk arról, hogy mi számít jó kódnak.

Nem mindenki ért egyet ezzel, de mi a helyzet azokkal, akiket „egyszerűen nem érdekel?” 20 évnyi programozási tapasztalattal a hátam mögött sosem találkoztam olyannal, akit nem érdekelt volna. Találkoztam olyan programozókkal, akik eltérő preferenciával rendelkeztek hozzám képest. Találkoztam olyanokkal, akik szűk határidők alatt teljesítenek. Találkoztam olyanokkal, akiket a látható haladásért dicsérnek, a jó kódok megírásának kárára. És találkoztam olyanokkal, akiket nem érdekelt annyira a kódolás, mint ahogy engem érdekel. Más érdeklődési körrel is rendelkezni az életben egy nagyon jó ok arra, hogy kevesebb időt töltsön el valaki a kódok tökéletesítésén.

Mindemellett soha nem találkoztam olyan fejlesztővel, akit egyszerűen csak nem érdekelt egyáltalán. Természetesen, nem cáfolom, előfordulhat ilyen, de Te valószínűleg nem közéjük tartozol, ha ezt a cikket olvasod. 

Remélem, hogy hasznos tanácsokkal tudtalak ellátni. Sikeres kódolást kívánok!

(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!