:

Szerző: Dömös Zsuzsanna

2024. február 2. 12:10

Rosszabb minőségű kódot eredményezhet a Copilot

A két héten belül módosított kódok aránya kétszeresére nőtt a GitHubon 2021 óta, ami a Copilot előretörésével magyarázható egy új tanulmány szerint. A vizsgálódás nem vetít előre sok jót karbantarthatóság szempontjából.

A fejlesztői feladatokat kiegészítő, kódgeneráló generatív MI-asszisztensek elterjedtségéről egyre több számot látni: a GitHub szerint 2023-ban a fejlesztők több mint fele használt már valamilyen megoldást a munkája során, aki pedig használja a Copilotot, „55%-kal gyorsabban” ír kódot, sőt 46 százalékkal több kódot is ír. Kevesebb szó esik az előállított kódok minőségéről, eddig vajmi kevés információ volt arról, mennyiben tér el az ilyen módon előállított kód minősége és karbantarthatósága attól, amit mondjuk egy senior fejlesztő állít elő "hagyományos" módon.

A GitClear a GitHubon 2020-2023 közt létrehozott 3400 repository-n keresztül vizsgált meg 150 millió kódsort az MI-asszisztensek által végzett munka minőségének értékeléséhez. A módosított kódokat hat kategóriába sorolták jellegük szerint: hozzáadott, törölt, átmozgatott, frissített, helyettesített, másolt/beillesztett kódok. A Copilot megjelenésével három téren történt jelentős változás: a kódok lemorzsolódása, a duplikációk mennyisége és a kódok élettartama kezdett el láthatóan másként alakulni.

Karbantarthatóság szempontjából nem túl kedvező, hogy jelentősen megnőttek a code churn-ök, tehát azon kódsorok százalékos aránya, amelyeket a közzététel után két héten belül visszavontak, vagy frissítettek. Az elmúlt éveket nézve meredek emelkedés látható, ami vélhetően összefüggésben áll a kódolóasszisztensek megjelenésével: a "churn" a 2020-ban az összes elemzett kódsor mindössze 3,3 százalékát tette ki, ami 2021-ben 3,6 százalékra, 2022-ben már 4 százalékra emelkedett. 2023-ban, az MI-alapú kódsegédek elterjedtségének növekedésével jelentősebb ugrás következett, egészen 5,5 százalékra. Az előrejelzések szerint 2024-re már a 7 százalékot is sikerülhet elérni, ami a 2021-es érték dupláját jelentené.

copilot_churned

Ünnepi mix a bértranszparenciától a kódoló vezetőkig

Négy IT karrierrel kapcsolatos, érdekes témát csomagoltunk a karácsonyfa alá.

Ünnepi mix a bértranszparenciától a kódoló vezetőkig Négy IT karrierrel kapcsolatos, érdekes témát csomagoltunk a karácsonyfa alá.

A szerzők vizsgálták a kód jóváhagyása és a későbbi frissítés/vagy csere közt eltelő idő alakulását is, ami azt mutatja, hogy két hét alatt lecserélt kód mennyisége 10%-kal megugrott, miközben az egy hónapnál régebbi kódokat 24%-kal ritkábban változtatták meg 2023-ban, mint 2022-ben. Az eltolódás azt sugallja, hogy a fejlesztők kevesebb időt fordítanak a régi kódok újrafeldolgozására, és többet az újabb hibák javítására.

A minőségromlás egyik jele, hogy a kódbázisokon belül áthelyezett kódok aránya 17%-kal csökkent 2023-ban, ami azt jelzi, hogy a fejlesztők kevesebb kódot használnak fel, hogy a meglévő rendszereket újrafelhasználható könyvtárakká alakítsák át, ez pedig gyakran több duplikált, nehezen karbantartható kódot eredményez. Ahogy egy termék növekszik, a fejlesztők átrendezik a meglévő kódot új modulokká és fájlokká, amelyeket az új funkciók újra felhasználhatnak. Az újrafelhasználás sorám a fejlesztők gyakran olyan kódot alkalmaznak, amit már teszteltek és dokumentáltak.

Csak a 2023-as év folyamán 11%-kal nőtt a másolt és beillesztett kódok aránya is. Mivel a fejlesztők nagy része sok esetben csak bemásolja a generált kódokat, nagyobb rá az esély, hogy megsértik a lekérdezések újrafelhasználását tiltó DRY-elvet, és nagyobb eséllyel ismételnek másik könyvtárakban már meglévő kódrészleteket vagy rutinokat. A másik probléma, hogy az új kódok hozzáfűzésével sok teszteletlen kód kerül bele a tárba, amiket több időbe telik javítani.

A kutatás egyik tanulsága, hogy a vezetőknek meg kell fontolniuk, hogy a Copilot által jelentett produktivitás megéri-e a minőségbeli kockázatokat, amelyek akár a fejlesztési folyamat lassítását is eredményezhetik. A Copilot megbízhatóságát egyébként megkérdőjelezik maguk a fejlesztők is: a GitHub tavalyi felmérése szerint a fejlesztők a kódok minőségét az egyik legnagyobb problémaként emelték ki az MI-alapú kódolóeszköz használata során.

a címlapról