Dollar Sign Blues: Javascript și PHP

nu este nimic greșit în utilizarea $ în variabile. Nu aș face-o intenționat pe fiecare variabilă, dar este încă o sintaxă validă. jQuery este unul dintre exemplele în care $ este folosit ca nume de variabilă. De aceea, „instrumentele Chrome dev nu văd întotdeauna că aceasta este o eroare Javascript”, deoarece nu există nicio eroare în primul rând.

dacă vă este frică să scrieți cod ca:

var demo = function demo() { var a = 123; ... $a = 456; // A new variable is created in global scope.}

apoi trebuie să utilizați un verificator de stil, cum ar fi Jslint, Jshint sau Google Closure Linter. Care dintre ele? Depinde de tine să faci o alegere. Pentru a vă ajuta în acest sens, iată câteva note:

Stil

Google Closure Linter urmează Ghidul de stil Google JavaScript, cunoscut a fi făcut inteligent. Folosirea unui stil binecunoscut pentru JavaScript sau oricare dintre celelalte șase limbi este o idee bună: atunci când partajați codul sau angajați un nou dezvoltator, este posibil să fie deja familiarizați cu acest stil.

mulți dezvoltatori sunt familiarizați și cu stilul Douglas Crockford. Acest stil este explicat în detaliu în JavaScript: the good Parts, o carte care merită cumpărată de oricine lucrează cu JavaScript.

în ceea ce privește jsHint, nu pot găsi cu adevărat ce convenții sunt utilizate, iar site-ul în sine pare să evite să vorbească despre acest subiect. Poate mi-a scăpat ceva.

suport de IDEs

atât jsLint și jsHint sunt acceptate de PhpStorm. Acesta este și cazul Google Closure Linter.

Mediu

Google closure Linter este unul dintr-o serie de instrumente. Dacă utilizați deja compilatorul Google Closure sau Biblioteca Google Closure, ar fi de preferat să alegeți Closure Linter deasupra altor instrumente.

strictețea

jsLint este cunoscut a fi strict. jsHint este mai permisiv, ceea ce nu este întotdeauna un lucru bun. De exemplu, unul dintre motivele pentru a furculiță jsLint pentru jsHint este explicat într – un articol care arată cod rău, care va produce o eroare în jsLint, dar nu și în jsHint:

/*global jQuery */// Example taken from jQuery 1.4.2 sourcejQuery.extend({ /* ... */ isEmptyObject: function( obj ) { for ( var name in obj ) { return false; } return true; } /* ... */});

codul este rău, deoarece se pare că JavaScript are un domeniu de blocare, în timp ce nu are. vezi JavaScript: părțile bune, p. 102, Anexa A: Părți Îngrozitoare, Scope. Cu alte cuvinte, privind Codul fără a cunoaște limba, ne așteptăm ca name să nu fie vizibil în afara buclei, în timp ce acesta va rămâne vizibil.

în ceea ce privește închiderea Google Linter, cred că este undeva la mijloc între jsLint și jsHint, dar nu am suficiente informații pentru a susține acest lucru.

concluzie

aș evita jsHint: este prea permisiv, ceea ce înseamnă că nu ar găsi potențiale bug-uri pe care ceilalți linters le-ar detecta. Ghidul de stil care este folosit este dificil de găsit.

printre Jslint și Google Closure Linter, alegerea nu este evidentă. Ambele sunt scrise de experți, ambele urmați ghid strict, bine descris stil deja urmat de mii de dezvoltatori. Utilizați ambele pentru ceva timp, apoi alegeți unul care este mai practic pentru dvs.

Lasă un răspuns

Adresa ta de email nu va fi publicată.