Sonar – Open Source Projekt, a Kód pro Sledování Kvality
Olivier Gaudin, Freddy Paličkou, SonarSource, http://www.sonarsource.com
Co je Sonar ?
Sonar (nyní nazývaný SonarQube) je open source platforma používaná vývojovými týmy ke správě kvality zdrojového kódu. Sonar byl vyvinut s ohledem na hlavní cíl: zpřístupnit řízení kvality kódu všem s minimálním úsilím.
jako takový poskytuje Sonar analyzátory kódu, nástroje pro hlášení, moduly pro lov defektů a časový stroj jako základní funkčnost. Ale to také vydává plugin mechanismus, který umožňuje společenství, aby rozšířit funkčnost (více než 35 pluginy k dispozici), takže Sonar one-stop-shop pro zdrojový kód kvality tím, že řeší nejen vývojáři, ale také manažery, které potřebuje.
pokud jde o jazyky, Sonar podporu analýzy Java v jádru, ale také JavaScript, PHP, PL/SQL a Cobol přes pluginy (Open Source nebo komerční) jako reporting engine je jazyk agnostik.
Od verze 2.0, Sonar umožňuje pokrýt kvality na 7 os, a tak se zpráva o:
- Duplicitní kód
- Kódování norem
- Unit testy
- Složitý kód
- Potenciální chyby
- Design a architektura
Sonar může být použit pro jednorázové audity, ale byl navržen tak, aby podporu globální neustálé zlepšování strategie na kvalitu kódu ve společnosti, a proto může být použit jako sdílené centrální úložiště pro management kvality.
webové stránky: https://www.sonarqube.org/
Verze produktu: Sonar 2.0
Licence: LGPL V3
podpora:https://www.sonarsource.com/support/
pluginy: https://docs.sonarqube.org/display/PLUG/Plugin+Library
proč byste měli spravovat kvalitu zdrojového kódu?
dobře napsaný program je program, kde náklady na realizaci funkce je konstantní v celém programu je celoživotní — Itaje Maman
Jako rychlý úvod, je to nejlepší definice zdrojového kódu kvality, co jsem mohl najít. To dostane ještě silnější, když dal na druhou stranu: abadly psaný program je program, kde náklady na implementaci funkce roste v průběhu času.
to zní špatně, že?
všichni jsme viděli situace, kdy začíná nový projekt, jehož cílem je vyvinout od nuly aplikaci v přední edgetechnology. Všechno jde velmi rychle; první, druhý, třetí uvolnění a pak allof náhle, rychlost týmu začne klesat. Čtvrté vydání je odloženopotřetí, Oprava něčeho rozbije něco jiného…
co se tady děje? Vzhledem k příznakům můžeme předpokládat, že tým trpí technickým dluhem mimo jiné a že zúčastněné strany si toho nejsou vědomy, a proto se s tím nemohou vypořádat.
ale to se s největší pravděpodobností vyřeší, protože projekt je nový, má viditelnost, a proto se o něj někdo postará (alespoň v to můžeme doufat).
Ale tento příklad byl pouze předkrm, jako my, lidé, nemají práci většinu času na aplikace, jejichž vývoj začal méně než 6 měsíců před lety! Naším úkolem je především upgrade stávajících aplikací. Že teď většina peněz se vynakládá na TO, kde je menší viditelnost, whereoften tam je velký roční obklopují dělat, stejně jako můžeme, tam, kde arepeople, kdo jsou klíčové, protože oni jsou jediní schopni porozumět kódu,kde nemáme ponětí, jak dlouho změna bude trvat, kde regrese arefrequent a lidé se bojí, aby se změny. A tam je v podstatě žádná pozornost vůbec z podnikání na to, prostě to udělej!
Správa kvality zdrojového kódu je především o optimalizaci návratnosti investic, protože vám poskytne viditelnost, a proto větší kontrolu nad:
- jak těžké údržby bude, co můžeme očekávat
- skutečnost, že věci nejsou horší
- skutečnost, že pozornost by měla být věnována kritické části systému, zvýšit například pokrytí unit testy, potlačení cyklů, odstranit duplicity
Dále to dává backup pro vývojáře zvýšit své ruce, když věří, že některé refactoring je nutné, že by se přidat trochu achange ale bude mít dobrou NÁVRATNOST investic.
jak spravovat kvalitu zdrojového kódu?
k Dispozici je sedm technických osy, které by měly být díval se na, když děláte analýzu zdrojového kódu projektu a Sonar je schopen podporovat řízení všech sedm. V týmu Sonar jim rádi říkáme 7 smrtelných hříchů vývojáře:
- bez ohledu kódování normy a osvědčené postupy,
- chybí komentáře ve zdrojovém kódu, zejména ve veřejném rozhraní Api
- s duplicitní řádky kódu
- s složité součásti nebo/a špatné rozložení složitosti mezi komponenty
- s nízkou nebo žádnou pokrytí kódu unit testy, zejména ve složitých součástí programu
- takže potenciální chyby
- s špagety design (balíček cyklů…)
prvním krokem při řízení kvality zdrojového kódu je skutečně definovat, které z těchto OS jsou pro vás důležité a do jaké míry.Na základě současné situace by pak měl být stanoven plán, jak dosáhnout úrovně Targetu (tedy jednoduše udržet vysokou úroveň kvality). Velmi důležité je začít malý a jít větší, když se dostane plně přijat celý vývojový tým.
nyní se podívejme, jak používat Sonar v tomto přístupu.
Kvalitní profily
Sonar umožňuje spravovat více kvalitních profilů s cílem přizpůsobit požadované úrovni typu projektu (pouze podpora, nový projekt,kritické aplikace, technické lib…). Správa profil se skládá z:
aktivovat / deaktivovat / hmotnost kódování pravidla
definovat prahové hodnoty na metriky pro automatické upozorňování
definovat projekt / profil sdružení
Panely dashboard
Sonar obsahuje 2 panely, které dávají velký obrázek, aby si rady, kde by mohly být problémy a porovnat projekty:
- konsolidovaný pohled, který zobrazuje všechny projekty
- projekt dashboard je k dispozici také na moduly a balíčky úrovni
Lovecké Nástroje
potvrďte, že to, co se zdá být problém je opravdu problém, Sonar nabízí lov sada nástrojů, která umožňuje přejít z přehledu smallestdetails:
- drill-down na každé opatření zobrazí se, aby viděli, co je za
- třídy mraky najít méně něž tříd tím, že unit testy
- hotspotů mít na stránce je nejvíce a nejméně souborů
- a multi-entry (duplikace, pokrytí, porušování, zkoušky úspěch…) prohlížeč zdrojového potvrdit zjištění učiněná s lovecké nástroje
TimeMachine
Není pochyb o tom, že věděl, kam aplikace stojí, je velmi důležité. Ale ještě důležitější je znát a pochopit jeho vývoj.Co stojí za to vědět, že existuje 20% pokrytí kódem unittesty? Je to dobré nebo špatné? Je odpověď jiná, pokud před dvěma měsíci to bylo 15% nebo 25%? TimeMachine umožňuje sledovat vývoj a přehrávat minulost, zejména proto, že zaznamenává verze projektu
jak funguje Sonar?
Sonar je vyroben z poměrně jednoduché a flexibilní architekturu, která se skládá ze tří částí:
- soubor zdrojového kódu analyzátory, které jsou seskupeny v Maven plugin a jsou aktivovány na požádání. Analyzátory používají konfiguraci uloženou v databázi. Ačkoli Sonar spoléhá na Maven spustit analýzu, je schopen analyzovat Maven a non-Maven projekty.
- databáze nejen přetrvávají, výsledky analýzy, projekty a globální konfigurace, ale také udržet historickou analýzu pro TimeMachine. 5 databáze motory jsou v současné době podporovány : Oracle, MySQL, Derby (pouze demo), PostgreSQL a MS SQLServer
- webový nástroj pro podávání zpráv chcete-li zobrazit kód kvality panelů na projekty, hon za vady, podívejte se TimeMachine a konfigurovat analýzu.
Jako součást své analyzátory, Sonar jádro vydává best of breed nástroje, aby najít kódování porušení pravidel (PMD, Checkstyle), odhalit potenciální chyby(Findbugs) a měření pokrytí unit testy (Cobertura, Jetel). Ale co dělá Sonar opravdu jedinečný je Squid, jeho vlastní analyzátor kódu, který nejen analyzuje zdrojový kód, ale také bajtový kód a míchá výsledky.
vzhledem k tomu, analýza je spuštěn prostřednictvím Maven plugin, Sonar lze spustit snadno v“ kontinuální integrace “ prostředí.
případ použití v projektu Apache commons-collection
předpokladem pro spuštění sonaru je instalace Java a Maven na krabici. Jakmile je tomu tak, můžete spustit Sonar v 5 jednoduchých krocích:
1. Stáhněte si distribuci z https://www.sonarqube.org/stahování / a rozbalte ji
2. Otevřete konzolu a spusťte server:
> $SONAR_HOME \ bin\windows-x86-32 \ StartSonar.netopýr na oknech
> $SONAR_HOME/bin//sonar.sh na jiných platformách
3. Otevřete konzolu, kde chcete zkontrolovat zdroj a spustit:
svn co http://svn.apache.org/viewvc/commons/proper/collections/trunk/.
4. Spusťte mvn install sonar: sonar ve stejném adresáři
5. Procházet http://localhost:9000
domovská stránka aplikace zobrazuje seznam projektůpod kontrolou kvality s několika konfigurovatelnými metrikami.
Pro přiblížení, můžete jednoduše klikněte na projekt a dostat své palubní desce
odtud budete mít přístup k řadě loveckých nástrojů, mezi které:
hotspot zjistit o soubory, které mají „nejvíce“ nebo „nejmenší“ …
Ale také libovolnou metriku v palubní desce je kliknout na skok tobehind scénu a získat pohled na metriky základní součásti
Každý lovecký nástroj nakonec přináší hunter do zdrojového kódu, kde se loví, jsou zvýrazněny
Sonar Ekosystému
je velmi dynamický ekosystém kolem Sonar
- aktivní komunitu z 300+ lidí na uživatele pošty seznamu a 150+ lidí na development mailing list
- 35+ pluginy na forge (http://docs.codehaus.org/display/SONAR/Sonar+Plugin+Library/), které jsou rozděleny do čtyř kategorií
- Integrace s externími nástroji, jako jsou Jira, Hudson, Bambus, GateIn, AnthillPro, Dav
- Přímé rozšíření základní funkce tím, že přidá nové chování, výpočet rozšířené metriky nebo konsolidovat projekty, přidávat nové metriky
- Přidat pokrytí jazyků jako PL/SQL, ActionScript3
- Integrace s Ide, aby si vady informace o kódu, když je upraven
- 3,000+ stažení za měsíc
- jádro vývojový tým vedený SonarSource (http://www.sonarsource.com)
Závěr
Po masivní přijetí kontinuální integrace motorů a Testy Řízený Vývoj postupů, výkonný kvalitní zdroj vypadá jako důvod další krok pro vývojové týmy v jejich úsilí industrializace. Sonar umožňuje dosáhnout tohoto cíle s malým úsilím a zábavou.
V roce 2010, Sonar platforma bude i nadále vyvíjet, hlavní osy rozvoje je krytina nové jazyky a zlepšit integraci s Ide.