Dollar Sign Blues: Javascript ja PHP

ei ole mitään väärää käyttää $ muuttujissa. En tekisi sitä tarkoituksella jokaiselle muuttujalle, mutta se on silti kelvollinen syntaksi. jQuery on yksi niistä esimerkeistä, joissa $ käytetään muuttujan nimeä. Siksi myös ”Chrome dev työkalut eivät aina näe tämä on Javascript virhe”, koska ei ole virhettä ensinnäkin.

jos pelkäät kirjoittaa koodia kuten:

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

silloin on käytettävä tyylitarkistinta, kuten jsLint, jsHint tai Google Closure Linter. Mikä niistä? Sinun on tehtävä valinta. Tässä avuksi muutama huomautus:

tyyli

Google Closure Linter seuraa Googlen JavaScript-tyyliopasta, jonka tiedetään olevan ovelasti tehty. Käyttämällä tunnettua tyyliä JavaScript tai jokin kuudesta muusta kielestä on hyvä idea: kun jaat koodin tai palkata uusi Kehittäjä, mahdollisuudet ovat ne ovat jo tuttuja tämän tyylin.

monet kehittäjät tuntevat myös Douglas Crockfordin tyylin. Tämä tyyli on selitetty yksityiskohtaisesti JavaScript: Hyvät osat, kirja kannattaa ostaa kuka tahansa, joka toimii JavaScript.

mitä jshintiin tulee, en oikein löydä mitä konventioita käytetään, ja itse sivusto näyttää välttävän puhumasta tuosta aiheesta. Ehkä en huomannut jotain.

IDEs

sekä JSLint että jsHint ovat phpstormin tukemia. Tämä koskee myös Google Closure Linteriä.

ympäristö

Google Closure Linter on yksi joukko työkaluja. Jos käytät jo Google Closure Compiler tai Google Closure Library, olisi parempi valita Closure Linter edellä muita työkaluja.

tiukkuus

jslintin tiedetään olevan tiukka. jsHint on sallivampi, mikä ei ole aina hyvä asia. Esimerkiksi yksi syy haarukoida jsLint jshintille selitetään artikkelissa, joka näyttää huonon koodin, joka tuottaa virheen jslintissä, mutta ei jshintissä:

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

koodi on huono, koska se näyttää JavaScript on lohko laajuus, kun se ei ole. Katso JavaScript: the Good Parts, s. 102, Liite A: Kamalat Osat, Tähtäin. Toisin sanoen, kun koodia katsoo tuntematta kieltä, oletamme, että name ei näy silmukan ulkopuolella, kun taas se jää näkyviin.

Mitä Google Closure Linter, uskon, että se on jossain keskellä JSLint ja jsHint, mutta minulla ei ole tarpeeksi tietoa tukemaan sitä.

johtopäätös

välttäisin jshintiä: se on liian salliva, eli se ei löytäisi mahdollisia vikoja, joita muut linterit havaitsisivat. Käytettyä tyyliopasta on vaikea löytää.

jslintin ja Google Closure Linterin keskuudessa valinta ei ole itsestäänselvyys. Molemmat ovat asiantuntijoiden kirjoittamia, molemmat noudattavat tiukkaa, hyvin kuvattua tyyliopasta, jota jo tuhannet kehittäjät ovat seuranneet. Käytä molempia jonkin aikaa, valitse sitten yksi, joka on käytännöllisempi sinulle.

Vastaa

Sähköpostiosoitettasi ei julkaista.