Koodi muuttaa rivejä

Kysymys: Mikä on kosketettujen rivien määrä (lisätyt rivit plus poistetut rivit) kaikissa lähdekoodin muutoksissa tietyn ajanjakson aikana?

Kuvaus

Ottaessaan muutoksia lähdekoodiin kehittäjät koskettavat (muokkaa, lisää, poista) lähdekooditiedostojen rivejä. Tämä mittari ottaa huomioon niiden rivien kokonaismäärän, joita lähdekoodiin tietyn ajanjakson aikana tehdyt muutokset koskettavat. Tämä tarkoittaa, että jos tiettyä riviä tietyssä tiedostossa kosketetaan kolmella eri muutoksella, se lasketaan kolmeksi riviksi. Koska useimmissa lähdekoodin hallintajärjestelmissä on vaikeaa tai mahdotonta sanoa tarkasti, onko rivit poistettu ja sitten lisätty vai vain muokattu, harkitsemme rivin muokkaamista sen poistamisena ja myöhemmin lisäämisenä uudella sisällöllä. Jokainen niistä (poistaminen ja lisääminen) katsotaan "kosketukseksi". Siksi, jos tiettyä riviä tietyssä tiedostossa muokataan kolme kertaa, se lasketaan kuudeksi eri muutokseksi (kolme poistoa ja kolme lisäystä).

Tässä asiassa harkitsemme muutoksia lähdekoodiin, kuten on määritelty kohdassa Koodimuutokset sitovat. Koodirivit ovat mitä tahansa lähdekooditiedoston riviä, mukaan lukien kommentit ja tyhjät rivit.

Tavoitteet

  • Koodaustoiminnan määrä:
    Vaikka koodimuutokset voivat olla välityspalvelin projektin koodaustoiminnalle, kaikki muutokset eivät ole samoja. Kaikissa muutoksissa kosketettujen rivien kokonaismäärän huomioon ottaminen antaa täydentävän kuvan siitä, kuinka suuria muutokset ovat, ja ylipäänsä kuinka suuri on koodaustoiminnan määrä.

Täytäntöönpano

Terveysmittareiden käyttö ja levittäminen voi johtaa yksityisyyden loukkauksiin. Organisaatiot voivat altistua riskeille. Nämä riskit voivat johtua GDPR-asetuksen noudattamisesta EU:ssa, Yhdysvaltain osavaltion lain tai muun lainsäädännön noudattamisesta. Tietojen tarjoajien, kuten GitHubin ja GitLabin, palveluehdoista voi myös aiheutua sopimusriskejä. Mittareiden käyttöä on tutkittava riskien ja mahdollisten dataeettisten ongelmien varalta. Ole hyvä ja katso CHAOSS Data Ethics -asiakirja lisäohjeita varten.

Aggregaattorit:

  • Kreivi. Rivien kokonaismäärä muuttuu (kosketetut) ajanjakson aikana.

parametrit:

  • Aikavälillä: Kauden alkamis- ja päättymispäivä. Oletus: ikuisesti.
    Ajanjakso, jonka aikana muutoksia harkitaan.
  • Lähdekoodin kriteerit; Algoritmin oletusarvo: kaikki tiedostot ovat lähdekoodia.
    Jos keskitymme lähdekoodiin, tarvitsemme kriteerin sen päättämiseksi, onko tiedosto osa lähdekoodia vai ei.
  • Lähdekoodin muutoksen tyyppi:
    • Rivit lisätty
    • Linjat poistettu
    • välilyönti

Suodattimet

  • Näyttelijöiden mukaan (tekijä, sitoutuja). Edellyttää näyttelijöiden yhdistämistä (samaa tekijää vastaavat yhdistämistunnukset).

  • Toimijaryhmien mukaan (työnantaja, sukupuoli...). Edellyttää näyttelijöiden ryhmittelyä ja todennäköisesti näyttelijöiden yhdistämistä.

  • By tunnisteet (käytetään sitoumusten viestissä). Vaatii rakenteen sitoutumisviestille. Tätä tunnistetta voidaan käyttää avoimen lähdekoodin projektissa viestimään jokaiselle osallistujalle, jos toimitus on esimerkiksi virheen korjaus tai ominaisuuden parannus.

visualisointeja

  • Laske kuukaudessa ajan myötä
  • Laske ryhmää kohti ajan kuluessa

Nämä voitaisiin esittää pylväskaavioina, jolloin aika kulkee X-akselilla. Jokainen palkki edustaisi koodin muutoksia tietyn ajanjakson (esim. kuukauden) aikana.

Mittarin antavat työkalut

  • GrimoireLab tarjoaa tämän mittarin heti.

    • Katso esimerkki sivulta Bitergia Analyticsin CHAOSS-esiintymä.
    • Lataa ja tuo käyttövalmis hallintapaneeli, joka sisältää esimerkkejä tästä mittarin visualisoinnista osoitteesta GrimoireLab Sigils -paneelikokoelma.
    • Lisää esimerkkivisualisaatio mihin tahansa GrimoreLab Kibiter -hallintapaneeliin seuraamalla näitä ohjeita:
    • Luoda uusi Area kartoittaa
    • Valitse git indeksi
    • Y-akseli 1: Sum yhdistäminen, lines_added Ala, Lines Added Muokattu etiketti
    • Y-akseli 2: Sum yhdistäminen, painless_inverted_lines_removed_git Ala, Lines Removed Muokattu etiketti
    • X-akseli: Date Histogram yhdistäminen, grimoire_creation_date Ala, Auto intervalli, Time Muokattu etiketti
    • Esimerkki kuvakaappauksesta:

    GrimoireLab-kuvakaappaus metriikasta Code_Changes_Lines

Tiedonkeruustrategiat

Tarkka kuvaus: Git

Git-tapauksissa määritämme "koodin vaihdon" ja "muutospäivämäärän" yksityiskohtaisesti Koodimuutokset sitovat. Muutoksen päivämäärä voidaan määritellä (tarkastellaanko sitä jaksossa vai ei) vastaavan git-sitoumuksen tekijäpäiväksi tai sitoutumispäiväksi.

Koska git tarjoaa muutokset erotuskorjauksina (lisättyjen ja poistettujen rivien luettelo), jokainen erotuskohdassa lisättynä tai poistettuna rivinä mainittu rivi katsotaan muuttuneeksi (kosketetuksi). Jos rivi poistetaan ja lisätään, se katsotaan kahdeksi "rivin muutokseksi".

Pakolliset parametrit:

  • Sellainen päivämäärä. Joko tekijäpäivä tai sitoutumispäivä. Oletus: tekijän päivämäärä.
    Jokaiselle git-sitoumukselle säilytetään kaksi päivämäärää: milloin sitoumus on luotu ja milloin se sitoutui arkistoon. Jakson valintaa varten on valittava yksi niistä.

  • Sisällytä yhdistämissitoumukset. Boolean. Oletus: True.
    Yhdistämissitoumukset ovat niitä, jotka yhdistävät haaran, ja joissain tapauksissa niiden ei katsota heijastavan koodaustoimintaa

Viitteet