Kaikuluotain (nykyään SonarQube) – Monitoriprojekti ja koodin laatu

kaikuluotain-avoimen lähdekoodin projekti ja koodin laadunvalvonta

Olivier Gaudin, Freddy Mallet, kaikuluotain, http://www.sonarsource.com

mikä on kaikuluotain ?

kaikuluotain (nyk. Kaikuluotain on kehitetty päätavoitteena: tehdä koodin laadunhallinta mahdollisimman vaivattomasti kaikkien ulottuville.

sellaisenaan kaikuluotain tarjoaa ydintoiminnoiksi koodianalysaattorit, raportointityökalut, vikojen metsästysmoduulit ja Aikakoneen. Mutta se myös käynnistää plugin mekanismi, jonka avulla yhteisö laajentaa toiminnallisuutta (yli 35 plugins saatavilla), jolloin kaikuluotain yhden luukun lähdekoodin laatua käsittelemällä paitsi kehittäjien mutta myös johtajat tarpeisiin.

kielten osalta kaikuluotain tukee Javan analysointia ytimessä, mutta myös JavaScriptin, PHP: n, PL/SQL: n ja Cobolin analysointia liitännäisten (avoimen lähdekoodin tai kaupallisen) kautta, koska raportointimoottori on kieliagnostinen.

versiosta 2.0 lähtien kaikuluotain mahdollistaa laadun 7 akselille ja siten raportoinnin:

  • kahdennettu koodi
  • koodausstandardit
  • yksikkötestit
  • Kompleksikoodi
  • mahdolliset viat
  • suunnittelu ja arkkitehtuuri

kaikuluotainta voidaan käyttää kertaluonteisiin tarkastuksiin, mutta se on suunniteltu tukemaan yrityksen koodilaadun jatkuvaa parantamista koskevaa maailmanlaajuista strategiaa, joten sitä voidaan käyttää yhteisenä laadunhallinnan Keskusvarasto.

Web site: https://www.sonarqube.org/
Product Version: Sonar 2.0
Licence: LGPL V3
tuki: https://www.sonarsource.com/support/
liitännäiset: https://docs.sonarqube.org/display/PLUG/Plugin+Library

miksi sinun pitäisi hallita lähdekoodin laatua?

hyvin kirjoitettu ohjelma on ohjelma, jossa ominaisuuden toteuttamiskustannukset ovat vakio koko ohjelman eliniän ajan — Itay Maman

nopeana introna tämä on paras lähdekoodilaadun määritelmä, jonka löysin. Se vahvistuu entisestään, kun asian laittaa toisinpäin: abadly written program on ohjelma, jossa jonkin ominaisuuden toteuttamiskustannukset kasvavat koko ajan.

tuo kuulostaa pahalta, vai mitä?

olemme kaikki nähneet tilanteita, joissa aloitetaan uusi projekti, jonka tavoitteena on kehittää tyhjästä sovellus johtavaan teknologiaan. Kaikki menee hyvin nopeasti; ensimmäinen, toinen, kolmas julkaisu ja sitten allof yhtäkkiä, joukkueen nopeus alkaa laskea. Neljäs julkaisu lykkääntyy kolmatta kertaa, jolloin jonkin korjaaminen rikkoo jotain muuta…

mitä täällä tapahtuu? Oireiden perusteella voidaan olettaa, että tiimi kärsii muun muassa teknisestä velasta ja että sidosryhmät eivät ole tietoisia siitä eivätkä voi siksi käsitellä sitä.

mutta tämä todennäköisesti ratkeaa, koska hanke on uusi, sillä on näkyvyyttä ja siksi joku aikoo huolehtia siitä (ainakin voimme toivoa niin).

mutta tämä esimerkki oli vain alkusoittoa, sillä me IT-ihmiset emme työskentele suurimman osan ajastamme sovelluksissa, joiden kehitys alkoi alle 6 kuukautta sitten! Työmme koostuu pääasiassa päivityksistä olemassa oleviin sovelluksiin. Suurin osa rahoista käytetään siellä, missä näkyvyys on vähäisempi, missä on usein suuri vuosittainen verho, jonka avulla voimme tehdä mahdollisimman paljon,jossa on ihmisiä, jotka ovat avainasemassa, koska he ovat ainoita, jotka pystyvät ymmärtämään koodin, jossa meillä ei ole aavistustakaan, kuinka kauan muutos kestää, jossa taantumat ovat yleisiä ja ihmiset pelkäävät tehdä muutoksia. Ja ei ole periaatteessa mitään huomiota liiketoiminnan että, vain tehdä se!

lähdekoodin laadun hallinnassa on kyse ROI: n optimoinnista, koska se antaa sinulle näkyvyyttä ja siten enemmän kontrollia:

  1. kuinka vaikeaa kunnossapito tulee olemaan, mitä voimme odottaa
  2. se, että asiat eivät pahene
  3. se, että järjestelmän kriittiseen osaan on kiinnitettävä jonkin verran huomiota, jotta voidaan lisätä esimerkiksi kattavuutta yksikkötesteillä, tukahduttaa syklit, poistaa päällekkäisyyksiä

se antaa kehittäjille lisävahvistuksen nostaa kätensä, kun he uskovat joidenkin refactoring tarvitaan, että lisäisi hieman achange, mutta olisi hyvä roi.

miten hallita lähdekoodin laatua?

on olemassa seitsemän teknistä akselia, joita tulisi tarkastella projektin lähdekoodianalyysiä tehtäessä, ja kaikuluotain pystyy tukemaan kaikkien seitsemän hallintaa. Kaikuluotainryhmässä kutsumme niitä kehittäjän 7 kuolemansynniksi.:

  • koodausstandardien ja parhaiden käytäntöjen noudattamatta jättäminen
  • lähdekoodista puuttuu huomautuksia, erityisesti julkisissa Ohjelmointirajapinnoissa
  • on päällekkäisiä koodirivejä
  • joilla on monimutkainen komponentti tai/ja kompleksisuuden huono jakautuminen komponenttien kesken
  • joilla ei ole lainkaan tai vähän koodia yksikkötesteissä, erityisesti ohjelman monimutkaisessa osassa
  • jättäen mahdolliset ötökät
  • joilla on spagettirakenne (pakkaussyklit…)

ensimmäinen askel lähdekoodin laadunhallinnassa on todella määritellä, mitkä näistä akseleista ovat sinulle tärkeitä ja mihin laajuuteen.Tämän jälkeen nykytilanteen pohjalta olisi laadittava suunnitelma tavoitetason saavuttamiseksi (se voisi olla yksinkertaisesti korkean laatutason säilyttämiseksi). Erittäin tärkeää on aloittaa pieni ja mennä isompi, kun se saa täysin hyväksynyt koko kehitystiimi.

nyt, Katsotaanpa miten käyttää kaikuluotainta tässä lähestymistavassa.

Laatuprofiilit

kaikuluotain mahdollistaa useiden laatuprofiilien hallinnan tarvittavan tason mukauttamiseksi projektityyppiin (vain tuki, uusi projekti,kriittinen sovellus, tekninen vapautus…). Profiilin hallinta koostuu seuraavista:

aktivoi / deaktivoi / painokoodaussäännöt

määrittele kynnysarvot automaattiselle hälytykselle

määrittele projekti / profiiliyhdistys

mittaristot

kaikuluotain sisältää 2 mittaristoa, jotka antavat kokonaiskuvan vihjeiden saamiseksi ongelmatilanteista ja projektien vertailemiseksi:

  1. konsolidoitu näkymä, joka näyttää kaikki projektit
  2. projektin hallintapaneeli on saatavilla myös moduulien ja pakettien tasolla

Metsästystyökalut

jotta voidaan vahvistaa, että ongelma näyttää olevan todella ongelma, kaikuluotain tarjoaa metsästystyökalusarjan, jonka avulla voidaan siirtyä yleiskatsauksesta pienimpiinpyyntiin:

  • poraa jokaista näytettävää mittaa nähdäksesi, mitä on
  • luokat pilvet, jotta löydetään vähemmän peitetyt luokat yksikkötesteillä
  • hotspotit, joilla on sivulla eniten ja vähiten tiedostoja
  • ja moniosaus (päällekkäisyys, kattavuus, rikkomukset, testien onnistuminen…) hakuvälineillä

TimeMachine

tehtyjen havaintojen vahvistaminen on epäilemättä erittäin tärkeää. Mutta vielä tärkeämpää on tietää ja ymmärtää sen kehitys.Itse asiassa, mitä kannattaa tietää, että on 20% koodin kattavuus unittests? Onko se hyvä vai huono? Onko vastaus erilainen, jos kaksi kuukautta sitten se oli 15 vai 25 prosenttia? TimeMachine mahdollistaa evoluution tarkkailun ja menneisyyden toistamisen, varsinkin kun se tallentaa versiot projektista

miten kaikuluotain toimii?

kaikuluotain on tehty melko yksinkertaisesta ja joustavasta arkkitehtuurista, joka koostuu kolmesta osasta:

  • joukko lähdekoodin analysaattorit, jotka on ryhmitelty Maven plugin ja käynnistetään demand. Analysaattorit käyttävät tietokantaan tallennettuja konfiguraatioita. Vaikka kaikuluotain tukeutuu Mavenin analyysiin, se pystyy analysoimaan Mavenin ja muiden kuin Mavenin projekteja.
  • tietokanta, jonka avulla voidaan paitsi säilyttää analyysin tulokset, projektit ja kokonaiskokoonpano myös säilyttää historiallinen analyysi aikakoneita varten. 5 tietokantamoottorit ovat tällä hetkellä tuettuja : Oracle, MySQL, Derby (vain demo), PostgreSQL ja MS SQLServer
  • web-raportointityökalu, jolla voi näyttää koodin laatutauluja projekteissa, etsiä vikoja, tarkistaa aikakoneen ja määrittää analyysin.

osana analysaattoreitaan Kaikuluotainydin ottaa käyttöön parhaat rotutyökalut koodaussääntöjen rikkomusten löytämiseksi(PMD, Checkstyle), mahdollisten vikojen havaitsemiseksi (Findbugs) ja kattavuuden mittaamiseksi yksikkötesteillä (Cobertura, Clover). Mutta mikä tekee Kaikuluotaimesta todella ainutlaatuisen, on Squid, sen oma koodianalysaattori, joka ei ainoastaan jäsennä lähdekoodia vaan myös tavukoodia ja sekoittaa tulokset.

koska analyysi suoritetaan Maven-liitännäisen kautta, kaikuluotain voidaan käynnistää helposti ”jatkuvan integraation” ympäristöissä.

Use case on Apache commons-collection project

kaikuluotauksen suorittamisen edellytyksenä on, että ruutuun asennetaan Java ja Maven. Kun näin on, voit suorittaa kaikuluotauksen 5 yksinkertaisella askeleella:

1. Lataa Jakelu kohdasta https://www.sonarqube.org/lataukset/ ja pura se

2. Avaa konsoli ja käynnistä palvelin:

> $KAIKULUOTAIN_KOTI\bin\windows-x86-32\StartSonar.maila ikkunoissa

> $SONAR_HOME/bin//sonar.sh muilla laitureilla

3. Avaa konsoli, josta haluat tarkistaa lähteen ja suorita:

svn co http://svn.apache.org/viewvc/commons/proper/collections/trunk/.

4. Suorita MVN asenna kaikuluotain: kaikuluotain samassa hakemistossa

5. Selaa http://localhost:9000

sovelluksen kotisivulla on luettelo laadunvalvonnan kohteista muutamalla konfiguroitavalla mittarilla.

voit zoomata, voit klikata projektin ja saada sen kojelauta

sieltä on pääsy sarjaan metsästystyökaluja, joiden joukossa:

hotspot selvittää tiedostot, joissa on ”eniten ”tai” vähiten”…

mutta myös kaikki mittaristo kojelaudassa on klikattava hypätä näkymän taakse ja saada näkymä metrinen taustalla komponentti

jokainen metsästystyökalu tuo metsästäjän lopulta lähdekoodiin, jossa saalistajat korostuvat

Kaikuluotainekosysteemi

kaikuluotaimen ympärillä on hyvin dynaaminen ekosysteemi

  • aktiivinen yhteisö, joka koostuu 300 + henkilöstä käyttäjien postituslistalla ja 150 + henkilöstä kehityspostituslistalla
  • 35 + liitännäistä Ahjossa (http://docs.codehaus.org/display/SONAR/Sonar+Plugin+Library/), jotka jakautuvat neljään kategoriaan
  • integrointi ulkoisiin työkaluihin, kuten Jira, Hudson, Bamboo, GateIn, AnthillPro, Crowd
  • ydintoimintojen suora laajentaminen lisäämällä uutta käyttäytymistä, laske edistyneitä mittareita tai konsolidoi projekteja, lisää uusia mittareita
  • lisää kattavuus kielistä kuten PL/SQL, ActionScript3
  • integrointi IDE: Iin, jotta saat vioista tietoa koodista, kun sitä muokataan
  • 3 000+ latausta kuukaudessa
  • kaikuluotaimen johtama Ydinkehitystiimi (http://www.sonarsource.com)

päätelmä

laajamittaisen hyväksymisen jälkeen jatkuva integraatiomoottorit ja Testivetoiset Kehityskäytännöt, lähteen laadun hallinta näyttää luonnolliselta seuraavalta askeleelta kehitystiimeille heidän pyrkimyksissään teollistua. Kaikuluotain mahdollistaa tämän tavoitteen saavuttamisen vähin ponnistuksin ja hauskasti.

vuonna 2010 Kaikuluotainalustan kehitys jatkuu, ja tärkeimmät kehityskanavat ovat uudet kielet ja integraation parantaminen IDEs-järjestelmän kanssa.

Vastaa

Sähköpostiosoitettasi ei julkaista.

Previous post 10 asiaa, joita et tiennyt voivasi tehdä Sudocrem
Next post TS 16949 Certification Requirements