Varför behöver du kodsnifflare för webbutveckling
Kodoptimering kan jämföras med redigeringsfasen i ett skrivande. Du kan behöva först få dina idéer i kod, men din kod bör optimeras med verktyg som kod sniffers för att producera bästa möjliga produkt.
Kodsniffning är en term som beskriver kontrollkod för överensstämmelse med regleringsstandarder. Dessa föreskrifter kan ange hur mycket utrymmen som ska användas för indragning, placering av lockade axlar eller hur man namnger variabler. Standarder är inte nödvändiga för att bygga en webbapplikation, men standarder är viktiga för intern konsistens och kodunderhåll.
Det här är kodsniffning som är till nytta för alla utvecklare, frontend till backend. Jag skulle vilja undersöka processen med kod sniffing och erbjuda lite verktyg som hjälper till att analysera kodstandarder.
Vad är kod sniffing?
Åtgärden av kodsnusning är vanligtvis automatiserad till spara tid och minska fel. Kodsniffrar kommer kolla koden för att följa standarderna fastställd av interna utvecklingsgrupper eller tillsynsorgan.
Kodsniffning liknar koden linting men mer pedantic. Linting främst kontrollerar fel och syntaxfel medan sniffing letar efter problem i vägkoden är skriven. En PHP-fil kan fortfarande fungera ordentligt men misslyckas med ett kodsniffningstest om ett variabelt namn inte följer standarder (dvs.. $ myVariable mot $ my_variable).
En liknande del av terminologin är kodlukt som kontrollerar designfel i koden som kan leda till större fel. Detta kan relatera till kodstandarder men inkluderar också högre nivå arkitekturer för att skriva homogen kod.
Alla dessa områden är värda att täcka och är relevanta för kodning av sniffing. Kom bara ihåg att sniffing code kommer inte alltid hitta runtime buggar eftersom dess prioritet är upprätthålla strikt överensstämmelse med standarder.
Vid det här laget kanske du frågar dig själv gör standarderna ensamma? Sanningen är att de spelar roll, men mer för optimering och projektrening. Många utvecklare håller med om att standarder är avgörande för programmering och webbutveckling - särskilt vid stora teamprojekt.
Här är ett citat från utvecklaren Paul Jones och förklarar varför kodstandarder är användbara.
“Poängen med en kodningsstilstandard är inte att säga att en stil är objektivt bättre än en annan ... I stället är det meningen att skapa kända förväntningar på hur koden ska se ut.”
Om du bygger en liten webbapp själv kan det inte vara värt att spendera tid på WCAG 2.0 eller PSR-2-standarder. Men överväga hundratals utvecklare som arbetar med Adobe Photoshops källkod. Det skulle vara kaotiskt om varje person skrev sin egen stil och kombinerade allt tillsammans.
Även om lag är starkt beroende av standarder, kan dessa regler fortfarande vara användbara för ensamutvecklare. Du kan hitta kodstandarder för allt från CSS till WordPress så det finns ingen ursäkt för att inte försöka se om din kodkvalitet förbättras.
Värdet av kodstandarder
Standarder kommer naturligt Håll din kod ren och organiserad. Utvecklare vet exakt hur man skriver kod och hur man följer med varandras arbete.
Kodstandarder hjälper också öppen källkodsutveckling genom att erbjuda regler för andra att följa. Filer kan hämtas av någon månad eller år senare och är fortfarande lätta att läsa.
En strikt kodning stil är en bra idé även om du väljer att göra din egen. Det tar mycket ansträngning, men som projekt växer denna typ av dokumentation är ovärderlig.
Här är några kodningsstandarder för att betrakta det som spänner över olika webbspråk.
- PEAR-kodningsstandarder (PHP)
- Googles standarder för HTML / CSS
- Googles standarder för JavaScript
- Django kodning stil (Python)
- Rails Style Guide (Ruby)
- WCAG 2.0 (UX)
Bästa kod sniffing resurser
Det är nu möjligt att hitta gratis kodsnifflare för allt från HTML / CSS till att stödja språk som PHP och SQL. Du kanske inte behöver använda dessa sniffare eller följa standarder för varje språk, men det är värt att undersöka möjligheterna att se vad som kan förbättra din prestanda..
Frontend Code Sniffers
Även om HTML inte gör det behöver en kod sniffer som inte stoppade Squiz från att bygga en. Det är helt öppen källkod och värd på GitHub med alternativen att kopiera / klistra in kod i webbläsaren eller spara en bokmärke för att köra på enskilda webbsidor.
Denna sniffer kontrollerar WCAGs tre nivåer av A, AA och AAA-tillgänglighetsstandarder tillsammans med 508-riktlinjerna som huvudsakligen gäller för offentliga webbplatser.
CSS-utvecklare kanske gillar denna gratis CSS-kodsniffer som också är öppen källkod, som är värd genom Node Package Manager.
jQuery-användare ska kolla in JSCodeSniffer byggd av Dmitry Sheiko. Detta är en annan gratis webbapp som finns på GitHub som överensstämmer med jQuerys kodstylguide.
Alternativt kan du försöka linta din JS-kod med JavaScript Lint eller JS Lint. Dessa verktyg kontrollerar fel i syntax istället för kodstandarder, men de är också mycket användbara när det gäller optimering av frontendkod.
För posten är det också möjligt att kontrollera JS / CSS-standarder direkt med PHP_CodeSniffer.
PHP-kodsniffeln
PHP_CodeSniffer är ett måste-verktyg i ditt verktygsband om du vill följa PHP-kodstandarder. Paketet innehåller några PHP-skript som analyserar PHP, JS och CSS-kod för överensstämmelse med ditt val av kod stil dokumentation.
Skaparen av PHP_CodeSniffer Greg Sherwood skrev en underbar backstory om hur idén kom och vilka problem det försöker lösa (väl värt att läsa om du har tid).
Sammanfattningsvis arbetade Greg med ett team som lärde sig JavaScript inbyggt i en PHP-app. Deras mål var att strukturera JS på ett sätt som följde PHPs kodstandarder för att göra livet enklare att växla fram och tillbaka. Således blev PHP_CodeSniffer född.
Detta är bra för PHP-utvecklare eftersom språket är väldigt lös med obligatoriska stilkrav. Ramar som Laravel är strängare, men utvecklare kan (och borde) installera sina egna kodstandarder utan att förlita sig på en tredje part.
Olika standarder som PSR-0, PSR-1 och PSR-2 är alla populära och förpackade med PHP-sniffing-biblioteket.
Men du kan hitta många andra färdiga kodstandarder för PHP CMS 'som WordPress, Magento och Drupal. Utvecklare på Drupal-kärnan släppte till och med en officiell kodsnusmodul med namnet Coder.
PHP är utan tvekan det enklaste språket för att optimera med code sniffers. Om du letar efter en lista över PHP-kodstandarder kolla in denna GitHub-post.
Andra Backend Code Sniffers
Backend utvecklare arbetar med en mängd olika språk bortom PHP och siffrorna växer varje år. Med alternativa språk har vi också alternativa kodsnusningsbibliotek som kodsniffer för Python.
Det är möjligt att kontrollera andra skript online eller använda verktyg som PyLint. Men det här är en annan metod som kräver tålamod att arbeta i ditt utvecklingsflöde.
Ruby devs har också en rad val när det gäller kodlining och analys. De bästa är alltid gratis och öppen källkod som Ruby Lint, en statisk kodanalysator byggd för modern Ruby-kod.
Jag har ännu inte hittat en dedikerad Node.js-kod sniffer men jag hoppas att ett projekt kommer att dyka upp med tiden. Det finns JS kod sniffers som stöder Node standarder, men det är fortfarande ett nyare backend språk och kräver tid att växa.
Slutligen har vi SQL-syntax som används för databaser. Den här koden kan vara svårare eftersom det är svårt att hitta väl stödda syntaxstandarder för SQL-källkod. Men jag hittade en SQL-formatering webapp som borde visa sig mycket användbart när man optimerar databasfrågor.
Sammanfatta
Det bästa stället att börja koda sniffing är med ett språk och en standard. HTML / CSS är en enkel plats att starta för frontend-utvecklare medan PHP ofta är ett favoritval bland utvecklare av backend (särskilt WordPress devs).
Och om du vill lära dig mer kolla in dessa relaterade inlägg på kod sniffing, linting och automatiserad kodanalys för optimering.
- Varför behöver du kodningsstandarder
- Koden luktar av Jeff Atwood
- PHP Kod Sniffer: Installation & Konfiguration
- Introduktion till CodeSniffer (del 1)
- GitHub Showcase: Rengör kodlinser