Waarom u code sniffers nodig hebt voor webontwikkeling
Code-optimalisatie is vergelijkbaar met de bewerkingsfase van een schrift. Mogelijk moet u eerst uw ideeën in code neerzetten, maar uw code moet worden geoptimaliseerd met tools zoals code sniffers om het best mogelijke product te produceren.
Code snuiven is een term die beschrijft controle van de code voor naleving van wettelijke normen. Deze voorschriften kunnen het aantal te gebruiken ruimten voor inspringen specificeren, de plaatsing van accolades of de naam van variabelen. Normen zijn niet essentieel voor het bouwen van een webapplicatie, maar standaarden zijn belangrijk voor interne consistentie en code-onderhoud.
Dit is waar code snuiven van pas komt voor alle ontwikkelaars, frontend naar backend. Ik wil graag onderzoek het proces van code snuiven en bied wat aan hulpprogramma's die helpen bij het analyseren van codestandaarden.
Wat is code snuiven?
De actie van codesnuiven is meestal geautomatiseerd tijd besparen en fouten verminderen. Code sniffers zullen controleer broncodes voor naleving van normen vastgesteld door interne ontwikkelingsteams of regelgevende instanties.
Het snuiven van codes lijkt op code linting, maar is meer pedant. Linting voornamelijk controleert op fouten en syntaxisfouten terwijl snuffelen zoekt naar problemen in de manier waarop de code is geschreven. Een PHP-bestand kan nog steeds goed functioneren, maar zal een test voor het snuiven van code mislukken als de naam van een variabele niet voldoet aan de standaarden (bijv. $ myVariable vs $ my_variable).
Een soortgelijk stukje terminologie is codegeur controleert op ontwerpfouten in de code die kan leiden tot grotere bugs. Dit kan betrekking hebben op codestandaards maar omvat ook hogere architecturen voor het schrijven van homogene code.
Al deze gebieden zijn de moeite waard om te behandelen en zijn relevant voor het snuiven van codes. Houd gewoon in gedachten dat snuiven code zal runtime-bugs niet altijd vinden aangezien zijn prioriteit is handhaven van strikte naleving van normen.
Misschien vraag je je nu af of normen wel degelijk van belang zijn? De waarheid is dat ze ertoe doen, maar meer voor optimalisatie en projectopruiming. Veel ontwikkelaars zijn het erover eens dat standaarden essentieel zijn voor de programmering en webontwikkeling - vooral bij grote teamprojecten.
Hier is een citaat van ontwikkelaar Paul Jones waarin wordt uitgelegd waarom codestandaards nuttig zijn.
“Het punt van een coderingsstijlnorm is niet te zeggen dat één stijl objectief beter is dan een andere ... In plaats daarvan is het de bedoeling om bekende verwachtingen in te stellen over hoe code eruit zal zien.”
Als u zelf een kleine webapp bouwt, is het misschien niet de moeite waard om tijd door te brengen met de WCAG 2.0- of PSR-2-normen. Maar overweeg de honderden ontwikkelaars die werken aan de broncode van Adobe Photoshop. Het zou chaotisch zijn als elke persoon zijn eigen stijl schreef en alles samenvoegde.
Hoewel teams sterk afhankelijk zijn van standaarden, kunnen deze regels nog steeds nuttig zijn voor ontwikkelaars. U kunt codestandaarden vinden voor alles van CSS tot WordPress, dus er is geen excuus om niet te proberen of uw codekwaliteit verbetert.
De waarde van codestandaarden
Normen zullen vanzelfsprekend zijn houd uw code schoon en georganiseerd. Ontwikkelaars weten precies hoe ze code moeten schrijven en hoe ze elkaars werk moeten volgen.
Codestandaards helpen ook open source-ontwikkeling door regels aan te bieden die anderen kunnen volgen. Bestanden kunnen maanden of jaren later door iedereen worden opgehaald en zijn nog steeds gemakkelijk te lezen.
Een strikte codeerstijl is een goed idee zelfs als je ervoor kiest om je eigen te verzinnen. Dit kost veel moeite, maar naarmate projecten groeien, is dit soort documentatie van onschatbare waarde.
Hier zijn enkele coderingsnormen om rekening te houden met het bereik van verschillende webtalen.
- PEAR-codeerstandaarden (PHP)
- Google Standards voor HTML / CSS
- Google Standards voor JavaScript
- Django coderingsstijl (Python)
- Rails Style Guide (Ruby)
- WCAG 2.0 (UX)
Best code snuiven hulpbronnen
Het is nu mogelijk om gratis code sniffers te vinden voor alles van HTML / CSS tot backend-talen zoals PHP en SQL. Het kan zijn dat u deze sniffers niet hoeft te gebruiken of normen voor elke taal hoeft te volgen, maar het is de moeite waard om de mogelijkheden te onderzoeken om te zien wat uw prestaties zou kunnen verbeteren..
Frontend Code Sniffers
Hoewel HTML dat niet doet nodig hebben een code sniffer die Squiz niet belette om er een te bouwen. Het is volledig open source en wordt gehost op GitHub met de opties om code in de browser te kopiëren / plakken in de browser of een bookmarklet op te slaan om op individuele webpagina's uit te voeren.
Deze sniffer controleert samen met WCAG de drie niveaus van A, AA en AAA toegankelijkheidsnormen, samen met de sectie 508 richtlijnen die primair van toepassing zijn op overheidswebsites..
CSS-ontwikkelaars houden misschien van deze gratis CSS-code-sniffer, die ook open source is, gehost via de Node Package Manager.
jQuery-gebruikers zouden JSCodeSniffer moeten bekijken, gebouwd door Dmitry Sheiko. Dit is een andere gratis webapp die wordt gehost op GitHub en die voldoet aan de code-stijlgids van jQuery.
Je kunt ook proberen je JS-code te pluisen met JavaScript Lint of JS Lint. Deze hulpprogramma's controleren op fouten in syntaxis in plaats van codestandaarden, maar ze zijn ook erg nuttig als het gaat om optimalisatie van de frontendcode.
Voor de goede orde is het ook mogelijk om JS / CSS-standaarden direct te controleren met PHP_CodeSniffer.
De PHP-code sniffer
PHP_CodeSniffer is een onmisbaar hulpmiddel in je toolbelt als je PHP-codestandaards wilt naleven. Het pakket bevat een paar PHP-scripts die PHP, JS en CSS-code analyseren op naleving met uw keuze van codestijl documentatie.
De maker van PHP_CodeSniffer Greg Sherwood schreef een prachtig achtergrondverhaal over hoe het idee tot stand kwam en welke problemen het probeerde op te lossen (het is de moeite waard om te lezen als je de tijd hebt).
Samenvattend werkte Greg met een team dat JavaScript aan het leren was, ingebouwd in een PHP-app. Hun doel was om de JS te structureren op een manier die voldoet aan PHP's codestandaarden om het leven gemakkelijker te maken om heen en weer te schakelen. Dus PHP_CodeSniffer was geboren.
Dit is geweldig voor PHP-ontwikkelaars omdat de taal is erg los met verplichte stijlvereisten. Frameworks zoals Laravel zijn strenger, maar ontwikkelaars kunnen (en moeten) hun eigen codestandaards instellen zonder te vertrouwen op een raamwerk van derden.
Verschillende standaarden zoals PSR-0, PSR-1 en PSR-2 zijn allemaal populair en worden verpakt met de PHP sniffing-bibliotheek.
Maar u kunt nog veel andere vooraf gemaakte codestandaarden vinden voor PHP CMS 'zoals WordPress, Magento en Drupal. Ontwikkelaars in de Drupal-kern brachten zelfs een officiële code sniffer-module met de naam Coder uit.
PHP is ongetwijfeld de gemakkelijkste taal om te optimaliseren met code sniffers. Als je op zoek bent naar een lijst met PHP-codestandaarden bekijk dit GitHub-bericht.
Andere backend code sniffers
Backend-ontwikkelaars werken met een verscheidenheid aan talen buiten PHP en de aantallen groeien elk jaar. In alternatieve talen hebben we ook snuffelbibliotheken met alternatieve code, zoals code-sniffer voor Python.
Het is mogelijk om online andere scripts te controleren of tools zoals PyLint te gebruiken. Maar dit is een andere methodologie die geduld vereist om in je ontwikkelingsstroom te werken.
Ruby ontwikkelaars hebben ook een reeks keuzes als het gaat om code pluisvorming en analyse. De beste zijn altijd gratis en open source zoals Ruby Lint, een statische code-analyser gebouwd voor moderne Ruby-code.
Ik moet nog een speciale Node.js-code sniffer vinden, maar ik hoop dat er in de loop van de tijd een project zal verschijnen. Er zijn JS-code sniffers die Node-standaarden ondersteunen, maar het is nog steeds een nieuwere back-endtaal en heeft tijd nodig om te groeien.
Ten slotte hebben we SQL-syntaxis gebruikt voor databases. Deze code kan lastiger zijn omdat het moeilijk is om goed ondersteunde syntaxisstandaarden voor SQL-broncode te vinden. Maar ik vond wel een web-app voor het formatteren van SQL, die enorm nuttig zou moeten zijn bij het optimaliseren van databasequery's.
Afronden
De beste plaats om te beginnen met het snuiven van codes is met één taal en één standaard. HTML / CSS is een gemakkelijke plaats om te beginnen voor frontend-ontwikkelaars, terwijl PHP vaak een favoriete keuze is van backend-ontwikkelaars (met name WordPress-ontwikkelaars).
En als u meer wilt weten, bekijk dan deze gerelateerde berichten over het snuiven van codes, lintvorming en geautomatiseerde code-analyse voor optimalisatie.
- Waarom u coderingsnormen nodig hebt
- Code Smells van Jeff Atwood
- PHP Code Sniffer: installatie en configuratie
- Inleiding tot CodeSniffer (deel 1)
- GitHub Showcase: Clean Code Linters