enemmän ja Enemmän joukkueet ovat ottaneet puuvillalintterit ja muut staattiset työkalut niiden kehittämiseen. Jotkut integroitu ne IDE heidän parempana, toiset automatisoitu ajamalla niitä ylimääräisenä askel heidän CI. Lisäksi jotkut juoksevat molempiin suuntiin.
What ’ s a linter, then?
Wikipedian Mukaan linter
– on työkalu, joka analysoi lähdekoodin lippu ohjelmointi virheitä, vikoja, tyylillinen virheitä, ja epäilyttäviä rakenteita.,
ensimmäinen linter oli kirjoittanut Stephen C. Johnson vuonna 1978, kun toimii Unix-käyttöjärjestelmässä Bell Labs. Sen jälkeen, monet muut puuvillalintterit on ilmestynyt eri tarkoituksiin ja kieliä, ei vain C.
ensimmäinen puuvillalintterit käytetään tarkistaa lähdekoodia ja löytää mahdollisia optimointeja kääntäjät. Mutta vuosien saatossa linkkaukseen sisältyisi monia muitakin tarkastuksia ja analyysejä.
käyttö puuvillalintterit on myös auttanut monia kehittäjiä kirjoittamaan parempaa koodia ei koottu ohjelmointikieliä., Koska ei ole aikaa koota virheitä, löytää kirjoitusvirheitä, syntaksivirheitä, käyttää pimeän muuttujia, puhelut määrittelemätön tai vanhentunut toimintoja, esimerkiksi, auttaa kehittäjiä korjata sen nopeammin ja vähentää vikoja ennen toteuttamista.
Puuvillalintterit ovat kehittyneet
Puuvillalintterit ovat kehittyneet. He aloittivat niistä yksinkertaisista tarkistuksista, mutta nykyään ne ovat yhä kehittyneempiä. Ne suorittaa Staattisen Analyysin, valvoa kokoonpano liput, tarkista noudattamista tietyn tyyli-opas tai turvallisuus sääntö, ja paljon enemmän.,
katsotaanpa tutkia joitakin näistä tarkistuksista ja miten ne voivat olla hyödyllisiä sinulle.
Staattinen Analyysi
Staattinen Analyysi tarkoittaa, että automatisoitu ohjelmisto toimii kautta oman koodin lähde ilman sen suorittamista. Se tarkistaa staattisesti mahdolliset viat, muistivuodot ja kaikki muut tarkastukset, jotka voivat olla hyödyllisiä.
Jos olet Python-Kehittäjä, saatat jo tuntea radonin. Se voi laskea source lines of code (SLOC), kommentti linjat, tyhjä rivi, ja muut raaka-mittareita, mutta myös, se voi laskea ”Ylläpitoa Indeksi”, joka voi olla erittäin tärkeää joissakin hankkeissa.
se on vain esimerkki., On paljon muita lintereitä, jotka tekevät staattisia Analyysitarkastuksia.
Free E-book: klikkaa tästä ladataksesi ilmaisen e-book Dekoodauskoodikatsauksen ja vetopyynnöt. Hanki kaikki keskeiset kohdat ja parhaat käytännöt käytännesääntöjen tarkistuskulttuurin toteuttamiseksi.
Koodi standardoinnista
https://xkcd.com/1285/
Standardoinnista koodi on hyvä tapa siirtää keskustelun tuottavampia tasolla., Ottaa suuntaviivat ja käynnissä puuvillalintterit vastaan codebase vältetään esteettinen muutoksia vetää pyyntö, kuten korvaa kaikki välilehtiä tiloihin, sisennys muuttuja tehtävän, tai jopa rivinvaihdot sen jälkeen, kun tietty määrä merkkejä.
mielekkäiden muutosten maksimointi vie keskustelun aiheisiin, joilla on merkitystä, kuten arkkitehtonisiin päätöksiin, turvallisuuskysymyksiin tai mahdollisiin vikoihin.
muuten myös tietoturva-asiat ja mahdolliset virheet voi lintereillä välttää!
turvallisuusasiat
Jos olet innostunut kiskoista, olet todennäköisesti kuullut Brakemanista., Se on staattisen analyysin suojaustyökalu. On hyödyllistä löytää mahdollisia turvallisuusongelmia. Se esimerkiksi suorittaa tarkastuksia etsiessään SQL-injektiota käyttäessään Activerecordin #find_or_create_by
ja ystäviä. Se myös lisää tarkastuksia XSS, config vaihtoehtoja, ja paljon muuta.
Ruby ei ole ainoa kieli, jolla on tällainen moottori. SourceLevel tukee paljon moottoreita eri kielille. Brakeman mukaan lukien.
mahdolliset virheet
Javascriptillä on joitakin temppuja. Yksi kuuluisimmista on ero ==
ja ===
., Se on hyvä käytäntö, ja se välttää paljon testaus aikaa, voit aina käyttää ===
. Jos otat, esimerkiksi, ESLint tarkistaa, että se voi kertoa teille, mitä osa-koodi on käyttää ==
ja jopa korvata sen sinulle.
Suorituskyky parannukset
Jokainen kokenut kehittäjä tietää, ei vain miten tärkeää suorittaa ohjelmisto, mutta monia temppuja, jotka parantavat sitä. Ongelma on: entä uudet tulokkaat? Miten voit siirtää tätä tietoa eteenpäin? Jopa vanhemmat ohjelmoijat voivat jättää tekniikan tai kaksi väliin. Joten, miksi ei anna automaatio-ohjelmisto tehdä sen puolestasi?,
tiesitkö, että CSS, universaali valitsin (*) voivat hidastaa sivun latausaikaa? Tai että epäpäteviä attribuuttivalitsimien on samat suoritusarvot kuin universaali valitsin? Niiden välttäminen on hyvä käytäntö.
monet linterit sisältävät suoritustarkistuksen. Ne voivat lisätä erilaisia suorituskyvyn parannuksia kokeneille ja uusille kehittäjille. CSSLint on vain esimerkki.
ja monia muita aspekteja
äärettömyyteen ja sen yli!, On olemassa paljon ja paljon puuvillalintterit eri ohjelmointikieliä, kokoonpano-tiedostoja, ja jopa ohjelmistojen integraatioita. Mikä tahansa tarkastus, jolla on merkitystä ja joka voidaan automatisoida, voi muuttua linteriksi.
Jos työskentelet tietyssä skenaariossa, saatat joutua kirjoittamaan linterisi, vaikka se ei ole kovin todennäköistä alallamme. Tarkistaa HTML-Helppokäyttötilan ominaisuuksista, Sisäistäminen mahdolliset virheet, kielioppi virheitä, ja monet muut ovat jo siellä, avoimen lähdekoodin, odottaa ladata, määrittää, ja alkaa käyttää.
linnoituksen hyödyt
Ferit T: n mukaan.,, linttaus parantaa luettavuutta, poistaa typerät virheet ennen toteutusta ja koodin tarkistusta. Mutta kuten mainittiin, linting voi tehdä monimutkaisempia töitä, kuten havaita koodin hajut tai suorittaa staattisen analyysin codebase.
mutta mitkä ovat käytännössä linnoituksen edut?
Se parantaa code review keskustelun taso
Jos Vetää Pyyntö ei ole kirjoitusvirheitä, eikä käyttämättömät muuttujat, ja on yhteensopiva tyyli opas, keskustelu on taipumus keskittyä arkkitehtuurin näkökulmasta. Juuri noin., Pull Request on hyvä paikka osoittaa suorituskykyyn liittyviä kysymyksiä, arvopapereiden haavoittuvuuksia tai ehdottaa parempia abstraktioita. Sinun ei tarvitse päästä siihen yhden tai kahden lainausmerkit tai välilehti vs. välilyöntikeskustelu. Se on tuottavuushyöty varmasti.
Tekee koodi näyttää kirjoittanut yksi henkilö
keskipitkällä ja pitkällä aikavälillä ottaa luotettava koodi pohja, joka näyttää kirjoittanut sama henkilö on erinomainen. Ylläpidettävyys ja evoluutio ovat helpompia, koska jokaisella on taipumus ymmärtää, mitä on kirjoitettu nopeammin ja tarkemmin., Se estää vikoja, tekee työstä iloisemman kehittäjille ja nopeuttaa aikaa uusien ominaisuuksien markkinointiin.
antaa näkyvyyttä codebase health
onko koodi terve? Et tiedä ennen kuin mittaat sen. Jännittävä tapa tehdä niin on lisätä askel CI / CD-putkistoon mittaamaan koodin terveydentilan kehitystä. Parempaa on, että voit ryhtyä toimiin mahdollisimman pian, kun näet sen terveyden rappeutuvan., Tällaiset toimet voivat merkitä teknisten maksukorttien luomista hallitukseesi tai jopa nostaa asian esille agile retrospective-tai architecture committee-kokouksessasi.
Levittää tietoisuutta ja vastuunottoa yli koodin laatua
Kokenut kehittäjät voivat tutkia diff ja nostaa esiin tärkeitä kysymyksiä siitä, ehdotettu muutos. He luultavasti tietävät mistä etsiä: ovatko muuttujien nimet kuvauksia? Kuinka monta riviä menetelmä kestää? Onko mitään superluokkaa?
mutta entä tulokkaat? Tieto tiimissä on usein heterogeenistä. Se tarkoittaa, että jokainen kehittäjä ei tiedä, mitä katsoa koodin yli., Ottaa linter kertoa, missä koodi tuoksut ovat automaattisesti on erinomainen tapa levittää tietoa ja tehdä joukkue vastuussa muutoksista.
Laatu ei ole yhden henkilön vastuulla. On tärkeää mitata ja valvoa koodin laatua ajan mittaan. Muuten koodi menee sotkuiseksi, mikä hidastaa kehitystä ja aikaa markkinoida.,
Ehkäiseminen tekniset veloista
Kuten monet nykyajan puuvillalintterit etsiä mahdollisia teknisiä velat, kuten koodi haisee, tyyli opas epäsuhta, tai huonosti suunniteltu koodi (syvä ketjut if
lausunnot, tai liian monimutkaisia menetelmiä, esimerkiksi), puuvillalintterit korreloi tekninen velka.
Making tekninen velat avointa aikana koodikatselmus prosessi auttaa ohjelmistokehittäjiä tai insinöörejä paikalla, keskustella, ja korjata se, ennen kuin sulautuvat master
branch. Se on erittäin kätevä käytäntö, joka ohjaa teknisen velan lisäyksiä.,
Automatisoida Koodi Arvostelu: SourceLevel tukee +30 puuvillalintterit auttaa sinua parantamaan koodin laatua. Klikkaa tästä nähdäksesi demon tai aloita ilmainen kokeiluversio.
Esimerkkejä puuvillalintterit
On olemassa valtava määrä puuvillalintterit siellä. Ohjelmointikielestä riippuen jokaista työpaikkaa kohden on jopa useampi kuin yksi linteri. Esimerkiksi Go-ohjelmointikielellä on ktlint ja detekt. Molemmat tekevät samanlaista työtä. Sama tapahtuu Eslintille, JavaScriptille suunnitellulle linterille. Se toimii hyvin samanlaisena kuin tslint tai jshint.,
Puuvillalintterit keskityttiin Turvallisuus
- Jarrumies Ruby
- Bandit Python
- Solmu Turvallisuuden JavaScript
Puuvillalintterit keskittynyt tyyli opas ja koodaus yleissopimusten
- CSSLint., SCSS Nukkaa ja Sass Nukkaa Cascading Style Sheet
- Gofmt Go kieli
- Swiftlint varten Vyyhdinkela
- rustfmt Ruostetta
- Uskontunnustus varten Eliksiiri
Puuvillalintterit Staattinen Analyysi
- pep8 Python
- Phan tai PHP Mess Detector PHP
- kibit varten Clojure, ClojureScript, cljx, ja muut Clojure variantteja.
- PMD Java
Johtopäätös
Puuvillalintterit avulla saat enemmän tuottavia ja säästää aikaa ja rahaa. Ne ajavat tiimisi parempiin päätöksiin (datan suuntaamiin) ja jakavat omistuksen laadun yli.,
Sourcelevelissä tuemme paljon lintereitä. Ne törmäävät jokaiseen vetopyyntöön auki ja kommentoivat oikeaa linjaa ja arkistoivat löydetyt asiat. Se lisää kehittäjien tuottavuutta ja tehokkuutta.
kutsumme sitä koodikatsauksen automaatioksi. Jokaisella versiovarastolla voi olla asetustiedostonsa, ja sen jälkeen pull-pyynnöt voidaan tarkistaa valittujen tyyliopastussääntöjen mukaisesti.