fbpx

Clever-Commit – Programozókat segítő mesterséges intelligencia

A Clever-Commit egy új fejlesztésű szoftver, ami megváltoztathatja a programozók napirendjét, névlegesen várhatóan kevesebb időt kell majd a hibajavítással töltenünk.

Programozóként nap mint nap módosítgatjuk fő projektünk kódbázisát. Bár időnk nagyobb részét a kód olvasásával töltjük, miután 2 napot töltöttünk kollégánk által írt kód megfejtésével, csak ráfanyalodunk a forráskód módosítására is.

Van, aki bátrabb, van, aki óvatosabb, de végül a kód módosítva lesz, elvégre ezért fizetnek minket. Verziókezelő rendszert még a kisebb projektek esetén is érdemes használni. Jobb helyzetben a fejlesztői csapat programozói gyakorlatának része, hogy mielőtt commit-álják az új feature-höz tartozó módosításokat, egy másik fejlesztővel code review-t tartanak, átnézik egymás kódját. Ez egy nagyon jó gyakorlat, még kisebb commit-ok esetén is, hisz sok hiba kiszűrhető vele.

Előfordulhat azonban, hogy mindkét fejlesztő figyelmét elkerüli egy hiba. Ekkor jön jól a Ubisoft új mesterséges intelligenciája, amit Clever-Commit-nak neveztek el. Igazából már tavaly márciusában debütált ez az új technológia, de akkor még Commit-Assistant néven. Egy igen látványos videóval hozták a nagyvilág tudomására ennek az új segédeszköz létrejöttének hírét:

Hogyan működik?

A Ubisoft egy nagy játékfejlesztő cég, aki nagy költségvetésű videójátékokat fejleszt. Az ilyen szoftverprojekteken sok fős csapatok dolgoznak, sok különféle szerepben. Magát a kódbázist naponta több tíz programozó módosítja. A munkájukat a verziókezelő rendszerrel jól össze tudják hangolni, de az általuk írt kód bizony hibákat tartalmazhat. Még az is lehet, hogy külön-külön helyesen működne az általuk írt kód, de két fejlesztő kódja összeakad és ez okoz hibát. Sajnos vannak olyan alattomos, mélyen megbúvó hibák, amik csak később, lehet, hogy csak a program hivatalos kiadása után kerülnek felszínre, amikor már több ezer ember megvette azt a boltban és játszani kezdett vele. Ezeket tipikusan jelentik a játékosok a fejlesztőknek, akik kijavítják azokat és patch-ek formájában el is juttatják a játékosoknak. Azonban ez nem vet túl jó fényt a cégre, hogy bug-os a programjuk. A játékélményt teljesen tönkreteheti egy ilyen húzás.

Tesztelés

Clever-Commit - a Ubisoft és Mozilla összefogásából származó újdonság

Természetesen a kód gondos átvizsgálásával, tesztelésével az ilyen hibák még időben kideríthetők, azonban ez jelentős idő – és ezzel pénz – befektetést jelent a szoftvergyártó cégnek.

Itt jön képbe a Clever-Commit, ami a fejlesztők által végzett módosításokat átvizsgálja a verziókövető rendszerbe történő commit-álás előtt, és jelzi, ha észlel valami hibát. A leggyakoribb programozói hibákra már eddig is voltak statikus (sőt, akár dinamikus) kódelemző eszközök, azonban amiben újat tud mutatni a Clever-Commit, az az, hogy a fejlesztők által commit-olt változtatások elemzésével folyamatosan tanul, finomhangolja a heurisztikáját, így a szoftverprojekt előrehaladásával egyre okosabb lesz és így tényleg akkor tud jelezni, amikor van valami javítanivaló.

Mennyit segít?

A Ubisoft eredeti becslése szerint 20%-ot spórolhat a fejlesztők idejéből, amit amúgy hibajavítással töltenének. Van azonban, hogy hamis riasztásokat ad a program. Mivel minták alapján dolgozik, lehetséges, hogy az egyik fajta hibára jellemző minta – véletlen – hasonlít egy amúgy helyes kódnak a mintájára. Ilyenkor egy figyelmeztetést jelenít meg a fejlesztőnek, akinek a kód átnézésével magának kell eldöntenie, hogy helyes vagy bug-os kóddal áll szemben. Ezek a hamis riasztások persze megint a fejlesztők idejéből vesznek el, ezért érdemes ezeket a minimálisra csökkenteni.

Szerencsére a Clever-Commit-ot úgy alakították ki, hogy tanul az ilyen hibáiból és ezért az idő előrehaladtával lassan de biztosan csökken a téves figyelmeztetések száma.

A Clever-Commit felhasználása

A Ubisoft összefogott a Mozillával, így a Firefox fejlesztési ciklusának egyik részénél bevezetik hamarosan ezt az új technológiát, ami segít kiszűrni majd a böngésző kódbázisában a hibákat.

Sylvestre Ledru – a Firefox kiadásának és minőségi menedzsmentjének vezetője – azt nyilatkozta, hogy izgalmas a Ubisoft projektje és szívesen járulnak hozzá a Clever-Commit továbbfejlesztéséhez.

Összefoglalás

A kódminőséget automatikusan ellenőrző szoftverek egyre szélesebb körben kerülnek alkalmazásra, ahogy a szoftverfejlesztő cégek vezetői felismerik, hogy ez az előnyüket szolgálja.

Bár a Clever-Commit nem egy ingyenes, nyílt forráskódú szoftver, jelenleg is elérhetők hasonló, ingyenes megoldások a piacon. Igaz, nem adaptívak, de sokat segítenek a programozók mindennapjain. Én mindenképp javaslom a Sonarlint (SonarQube) kipróbálását, ami a kedvenc IDE-nkkel összeköthető és valós időben ad nekünk visszajelzést az esetlegesen elkövetett baklövéseinkről.

Amíg az általunk írt kód minőséget a kódelemző eszközökkel növelhetjük, addig a megírt kód mennyiségét, vagyis produktivitásunkat a gyorsbillentyűk használatával.

Bug mentes kódot kívánok mindenkinek! 🙂