Flere og flere lag har vedtatt linters og andre statiske verktøy i deres utviklingsprosess. Noen integrerte dem i IDE av deres preferanser, andre automatiserte ved å kjøre dem til som et ekstra trinn i sine CI. Også, noen kjører begge veier.
Hva ‘s a linter, da?
Ifølge Wikipedia, linter
er et verktøy som analyserer kildekoden til flagget programmering feil, bugs, stilistiske feil, og mistenkelige konstruksjoner.,
Den første linter ble skrevet av Stephen C. Johnson i 1978, mens du arbeider i Unix-operativsystemet ved Bell Labs. Etter at mange andre linters har dukket opp for ulike formål og språk, ikke bare C.
Den første linters brukes til å sjekke kildekoden og finne potensielle optimaliseringer for samlerne. Men, i løpet av årene, mange andre sjekker og analyse vil bli tatt med i prosessen med linting.
bruk av linters har også hjulpet mange utviklere til å skrive bedre kode for ikke utarbeidet programmeringsspråk., Så det er ikke kompilering tid feil, finne skrivefeil, syntaks feil, bruker av svart variabler, anrop til et udefinert eller mindre funksjoner, for eksempel å hjelpe dem med å fikse det raskere og redusere feil før gjennomføring.
Linters har utviklet seg
Linters har utviklet seg. De startet med de enkle kontroller, men i dag, de blir mer og mer sofistikerte. De utføre Statisk Analyse, gjennomføring av konfigurasjon flagg, sjekk for å være i overensstemmelse med en gitt stil-guide eller sikkerhet regelen, og mye mer.,
La oss utforske noen av disse undersøkelsene, og hvordan de kan være nyttige for deg.
Statisk Analyse
Statisk Analyse betyr at automatisert programvare går gjennom koden din kilde uten å utføre det. Det statisk kontrollerer for mulige feil, minne lekkasjer, og andre sjekker som kan være nyttige.
Hvis du er en Python-utvikler, kan du allerede vet Radon. Det kan telle kilde linjer med kode (LAGER), kommentere linjer, en blank linje, og andre rå beregninger, men også, det kan beregne en «Vedlikehold Index», som kan være svært viktig i enkelte prosjekter.
Det er bare et eksempel., Det er nok av andre linters som utfører Statisk Analyse sjekker.
Gratis E-bok: Klikk her for å laste ned gratis e-bok Dekoding Kode Gjennomgå og Trekke Forespørsler. Få alle de viktigste punktene og beste praksis for å gjennomføre en kode gjennomgang kultur.
– Koden standardisering
Fra https://xkcd.com/1285/
Standardisering av koden din er en fin måte å flytte samtalen til en mer produktiv nivå., Å ha en veiledende og kjører linters mot codebase unngår estetiske endringer i din trekk forespørsel, som å erstatte alle faner for mellomrom, rykker inn en variabel oppdrag, eller selv linjeskift etter et gitt antall tegn.
Maksimering av meningsfulle forandringer tar diskusjonen til emner som materie, som arkitektoniske beslutninger, sikkerhetsproblemer, eller potensielle feil.
forresten, sikkerhet og potensielle feil også kan unngås ved linters!
sikkerhetsspørsmål
Hvis du er i Skinnene, har du sannsynligvis hørt om Brakeman., Det er en Statisk Analyse Security Tool. Det er gunstig å finne potensielle sikkerhetsproblemer. For eksempel, det går sjekker looking for SQL-Injeksjon når du bruker ActiveRecord-s #find_or_create_by
og venner. Den legger også kontrollerer for XSS, config alternativer, og mye mer.
Ruby er ikke det eneste språket som er med denne type motor. SourceLevel støtter massevis av motorer for forskjellige språk. Brakeman inkludert.
Potensielle feil
JavaScript-har noen triks. En av de mest kjente er forskjellen mellom ==
og ===
., Det er en god praksis, og det unngår mye debugging tid, å alltid bruke ===
. Hvis du aktiverer, for eksempel, ESLint for å kontrollere for at det kan fortelle deg hvilken del av koden din ved hjelp av ==
og til og med erstatte det for deg.
Ytelse
Alle erfarne utvikleren vet ikke bare viktigheten av å utføre software, men mange triks som kan forbedre den. Problemet er: hva om nykommere? Hvordan kan du gi denne kunnskapen frem? Selv senior programmerere kan gå glipp av en teknikk eller to. Så, hvorfor ikke la en automatisering programvare gjør det for deg?,
Visste du at i CSS, universal selector (*) kan forsinke en side lasting tid? Eller at ukvalifisert attributt-velgere har de samme egenskapene som den universelle selector? Å unngå dem, er god praksis.
Mange linters inkluderer en ytelse sjekk. De kan legge til forskjellige typer av ytelse for erfarne og nykommere utviklere. CSSLint er bare et eksempel.
Og mange andre aspekter
for Å infinity og utover!, Det er massevis av linters for forskjellige programmeringsspråk, konfigurasjonsfiler, og selv for software integrasjoner. Alle kontroller som er viktig, og kan være automatisert kan slå inn en linter.
Hvis du arbeider i en bestemt situasjon, kan du skrive din linter, selv om det ikke er altfor sannsynlig i vår bransje. Sjekker for HTML Tilgjengelighetsfunksjoner, Internalisering potensielle feil, grammatikk feil, og mange andre er der allerede, åpen kildekode, venter på deg til å laste ned, konfigurere, og begynne å bruke.
Fordeler av linting
Ifølge for å Ferit T.,, linting forbedrer lesbarheten, fjerner dum feil før gjennomføring og kodegjennomgang. Men, som nevnt, linting kan gjøre mer komplekse jobber, som å oppdage kode lukter eller utføre statisk analyse av codebase.
Men, i praksis, hva er fordelene med linting?
Det forbedrer kode gjennomgang diskusjon nivå
Hvis din Trekk Forespørsel har ingen skrivefeil, eller ubrukte variabler, og som er i samsvar med stil guide, samtalen har en tendens til å fokusere på arkitektur synspunkt. Det er det., Trekk Forespørsel er et flott sted å peke ytelsesproblemer, verdipapirer sikkerhetsproblemene, eller for å foreslå bedre abstraksjoner. Du trenger ikke å få i at single eller doble anførselstegn eller kategorien vs. områder diskusjon. Det er en produktivitet få for sikker.
Gjør koden ser ut som skrevet av en enkelt person
Til mellomlang og lang sikt å ha en pålitelig koden som ser ut som er skrevet av samme person er utmerket. Vedlikehold og utvikling er enklere, fordi alle har en tendens til å forstå hva som er skrevet raskere og mer presis., Det forhindrer feil, gjør jobben mer glad for utviklere, og akselererer tid til markedet av nye funksjoner.
Gir synlighet av din codebase helse
Er din kode sunt? Vet du ikke før du måler det. En spennende måte å gjøre det på, er å legge et skritt i CI – /CD-rørledningen for å måle utviklingen av koden din helsetilstand. Bedre enn det, kan du iverksette tiltak så snart som mulig når du ser sin helse til forfall., Slike handlinger kan tyde på å lage tekniske debetkort i styret eller selv reise spørsmål under din smidig retrospektiv eller arkitektur committee møte.
Sprer bevissthet og eierskap over koden kvalitet
Erfarne utviklere kan se inn i en diff og heve relevante spørsmål om den foreslåtte endringen. De vil sannsynligvis vet hvor du skal lete: variabler navn descriptives? Hvor mange linjer gjør en metode ta? Er det noen superclass?
Men om hvordan nykommere? Kunnskap i et team er ofte sammensatte. Det betyr at ikke alle utviklere vet hva du skal se over koden., Å ha en linter til å fortelle hvor koden lukter automatisk er en utmerket måte å spre denne kunnskapen og gjøre det teamet som er ansvarlig for endringene.
Kvalitet er ikke en enkelt-person ansvar. Det er viktig å måle og kontrollere koden kvalitet over tid. Ellers koden blir rotete, noe som forsinker utvikling og tid til markedet.,
Kontroller teknisk gjeld
Som mange moderne linters se etter mulige tekniske gjeld, som kode lukter, style guide samsvarer ikke, eller dårlig utformet kode (dyp kjeder av if
uttalelser, eller for kompliserte metoder, for eksempel), linters korrelerer med teknisk gjeld.
å Gjøre teknisk gjeld eksplisitt under kode-review prosess hjelpe utviklere av programvare eller ingeniører til å oppdage, diskutere og løse det før flette inn master
gren. Det er en veldig praktisk øvelse som styrer det tekniske gjeld innskudd.,
Automatisere Koden din Anmeldelse: SourceLevel støtter +30 linters for å hjelpe deg med å forbedre kvalitet kode. Klikk her for å se en demo eller starte en gratis prøveversjon.
Eksempler på linters
Det finnes et stort antall av linters ut det. Avhengig av programmeringsspråk, det er til og med mer enn én linters for hver jobb. For eksempel, for å Gå programmeringsspråk, det er ktlint og detekt. Begge utføre en lignende jobb. Det samme skjer for å eslint, en linter designet for JavaScript. Det fungerer veldig lik tslint eller jshint.,
Linters fokusert på Sikkerhet
- Brakeman for Ruby
- Bandit for Python
- Node Sikkerhet for JavaScript
Linters fokusert på stilen guide og koding konvensjoner
- CSSLint., SCSS Lo og Sass Lo for Gjennomgripende stilark
- Gofmt for å Gå språk
- Swiftlint for Switft
- rustfmt for Rust
- Credo for Elixir
Linters for Statisk Analyse
- pep8 for Python
- Phan eller PHP Rot Detektor for PHP
- kibit for Clojure, ClojureScript, cljx, og andre Clojure varianter.
- PMD for Java
Konklusjon
Linters hjelpe deg å bli mer produktiv og spare deg for tid og penger. De kjører laget ditt til bedre beslutninger (de orientert av data) og eierandel over kvaliteten.,
På SourceLevel, vi støtter mange av linters. De kjører mot hvert trekk forespørsel åpen og kommentar på riktig linje og file fant problemer. Det øker utviklere’ produktiviteten og effektiviteten.
Vi kaller det automatisering av kode gjennomgang. Hvert depot har sin konfigurasjonsfil, og deretter trekke forespørsler vurdert i henhold til valgt stil-guide regler.