ugrás a tartalomhoz

Code Conventions for the JavaScript Programming Language

Török Gábor · 2008. Május. 8. (Cs), 13.19
Douglas Crockford JavaScript kódolási javaslatai
 
1

Tartsuk a formát

Joó Ádám · 2008. Május. 8. (Cs), 15.53
All of our JavaScript code is sent directly to the public. It should always be of publication quality.

Neatness counts.

Kár, hogy konvenció ajánlása közben a szabvány áthágására buzdít:

There is no need to use the language or type attributes.
2

Compressor

vbence · 2008. Május. 8. (Cs), 16.03
Egy JS rövidítő használata jó alibi lehet a csúnya kód elfedésére ;)

(Nem válasznak szántam..)
3

application/javascript

Török Gábor · 2008. Május. 8. (Cs), 16.33
Annyiban igaza van Douglas-nek, hogy szabvány szerint application/javascript-et kellene használni típusként, azonban ezzel a MIME típussal megadott blokkot az IE ignorálja. A text/javascript elavult, így a megadása nem sokban különbözik annak elhagyásától, gyakorlatilag az összes böngésző a JS-t veszi alapértelmezettként.
4

Validator

Joó Ádám · 2008. Május. 8. (Cs), 16.50
Attól még a szabvány megköveteli a kitöltését. Az IE6 pedig remélhetőleg minél hamarabb kihal… addig se baj, ha ignorálja, mert ugye az oldal használható marad szkript nélkül is – ugye? ;)
5

nem sok értelme van

Hodicska Gergely · 2008. Május. 8. (Cs), 17.40
Nézd meg egyszer a fickó javascriptről szóló videóit. Az első részben van erről egy külön slide, ott elmondja, hogy miért nincs értelme igazából megadni a type attribútumot. A validator szerintem meg egy eszköz, nem pedig szentség.


Üdv,
Felhő
6

Szentség

Joó Ádám · 2008. Május. 8. (Cs), 18.05
Azért van a szabvány, hogy kövessük. Ha nem jó, akkor lehet újat csinálni. Most hozzam fel példának mindenki kedvenc böngészőjét? Neki is megvan a különvéleménye a szabványokról…

Tegye fel a kezét az, akinek már leszakadt a type attribútum megadásától.
7

perem feltételek

Hodicska Gergely · 2008. Május. 8. (Cs), 20.59
És mit csinálsz akkor, ha a szabványok olyan helyzetet teremtenek, ami egyszerűen nem működik? (Megnézted a videót?)


Üdv,
Felhő
8

Bővebben?

Joó Ádám · 2008. Május. 9. (P), 13.52
Mire gondolsz? Még nem néztem meg, tudsz adni egy direkt hivatkozást?
9

ellentmondás

Hodicska Gergely · 2008. Május. 9. (P), 14.44
A lényeget már Gábor elmondta: szabvány szerint "application/javascript" type-ot kéne JS esetén megadni, de ez nem megy IE esetén. Tehát azzal, hogy megadod a "text/javascript"-et, máris nem követed a szabványt. :P

A videó: http://video.yahoo.com/watch/111593/1710507 . Érdemes a többi videóját is megnézni, nagy koponya az öreg.


Üdv,
Felhő
10

Nincs

Joó Ádám · 2008. Május. 14. (Sze), 21.39
Azért nagy különbség van a között, hogy egy obsolete elemet használok, vagy hogy egész egyszerűen ellentmondok egy szabványnak.

Egyébként pedig, hogy egyből Gábornak is válaszoljak: az IE6 még platform? ;)

De jól nyomja az öreg, bejön a stílusa.
11

de :)

Hodicska Gergely · 2008. Május. 15. (Cs), 01.48
Hát ez nézőpont kérdése, de a lényeg akkor is az, hogy per pillanat nem tudsz szabványos lenni. És azért az IE6 még mindig legalább 30-40%, szóval teljesen leírni még korai lenne, ráadásul a nagy váltás megvolt, most már lassul majd a kikopásának a folyamata, szóval még egy darabig együtt kell vele élni.

Plusz igazából alapvetően arra akartam utalni, hogy szerintem nem az a cél, hogy a validator feltétlenül hibátlannak találjon egy oldalt, hanem hogy jól legyen felépítve (előbbi bőven nem garantálja az utóbbit), és ha egy ilyen apróságban tudatosan eltérsz a szabványtól, akkor semmi sem fog történni.


Üdv,
Felhő
12

De nem :)

Joó Ádám · 2008. Május. 15. (Cs), 08.43
Az egyik nem ajánlott, a másik szabálytalan
Persze, jószerével semmilyen vonzata nincs annak, ha elhagyod, de részemről itt az elvet tartom fontosnak; hogy semmilyen szinten nem engedsz belőle. Ahogy azt már említettem: azért várjuk most annyira az IE6 kihalását, mert ugyanígy állt hozzá. A fejlesztői úgy gondolták, hogy az ő megoldásuk jobb lesz a szabványnál. Ami éppen igaz is lehet, csak ettől kiszámíthatatlanná vált a platform, és most ott tartunk, ahol.

Innentől szerintem megint parttalanná kezd válni a vita, szóval… :)
13

w3c

Fraki · 2008. Május. 15. (Cs), 11.42
Ha már videók, nekem azokból az jön le, hogy nem elv a szabványok feltétlen tisztelete, és ha valahol, itt van értelme disztingválni, hogy ti. ezek ajánlások, nem szabványok. Crockford számos helyen rámutat arra, egy-egy kérdésben a microsoft megoldásai mennyivel jobbak, mint w3c-é, tkp. egyenrangú felekként kezeli őket. A szabványtisztelet fontos dolog, de felülírja a pragmatizmus. A legékesebb példa az innerHTML: minden szempontból szabálytalan, van rá szabályos alternatíva, és abszolút konszenzus van abban, hogy a használata javasolt.
14

Bizony

Joó Ádám · 2008. Május. 15. (Cs), 16.35
ezek ajánlások, nem szabványok


Szerintem a név a legkevésbé fontos.

Crockford számos helyen rámutat arra, egy-egy kérdésben a microsoft megoldásai mennyivel jobbak, mint w3c-é


És talán még több helyen ara, hogy mennyi baj származott belőle, hogy a saját megoldásait használta. Amik akár még jók is lehetnek – de ettől még az egyetlen eredménye a dolognak, hogy plusz munkát és bizonytalanságot jelentenek.

A legékesebb példa az innerHTML: minden szempontból szabálytalan, van rá szabályos alternatíva, és abszolút konszenzus van abban, hogy a használata javasolt.


Szerintem kifejezetten rossz példa: attól, hogy valami (még) nincs szabványba iktatva, az nem jelenti azt természetesen, hogy ne lehetne használni (elvégre az összes vezető böngésző támogatja), nincsen explicite tiltva. (Tekintsünk el most attól, hogy szerencsétlen a névválasztás és a megvalósítás [szebb lenne egy parseXml() vagy hasonló funkció].)
15

nevek, microsoft

Fraki · 2008. Május. 15. (Cs), 17.33
Szerintem a név a legkevésbé fontos.

Ez nem név, hanem státusz. Minőség. De ha már nevek: te melyiket választanád: a nem ajánlott szabályosat vagy az ajánlott nem szabályosat?

Én egyáltalán nem vettem ki a videókból, hogy bármikor külön utalt volna arra, milyen rossz, hogy a microsoft saját megoldásokat használt, de lehet, hogy vmiről lemaradtam (legalábbis a js-es és a dom-os videók alapján).

Szerintem kifejezetten rossz példa: attól, hogy valami (még) nincs szabványba iktatva, az nem jelenti azt természetesen, hogy ne lehetne használni (elvégre az összes vezető böngésző támogatja), nincsen explicite tiltva. (Tekintsünk el most attól, hogy szerencsétlen a névválasztás és a megvalósítás [szebb lenne egy parseXml() vagy hasonló funkció].)

Itt új fogalmat vezettél be: explicite tiltva. Senki nem mondta semmiről eddig, hogy explicite tiltva lenne. Ajánlott utakról van szó, preferenciákról.
16

Nevek, Microsoft

Joó Ádám · 2008. Május. 15. (Cs), 22.46
Ez nem név, hanem státusz. Minőség. De ha már nevek: te melyiket választanád: a nem ajánlott szabályosat vagy az ajánlott nem szabályosat?


Melyik a szabványabb: az ajánlás vagy a felhívás hozzászólásra?

Itt új fogalmat vezettél be: explicite tiltva. Senki nem mondta semmiről eddig, hogy explicite tiltva lenne. Ajánlott utakról van szó, preferenciákról.


Dehogynem, azt mondták, hogy a text/javascript használatával áthágom a szabványt, ami nem igaz, a szabvány obsolete-nek minősíti, tehát kerülendő, de megengedett a használata. Tehát ott vagyunk, hogy van két szabvány (igen, a szabvány az ajánlás, ami nem kötelező, csak ajánlott, mindenféle okokból), és a text/javascript megadásával mindkettőnek eleget teszek, míg elhagyásával egyet áthágok. Melyik a jobb megoldás?