Javascript Best Practice自分用まとめ(2)

http://www.slideshare.net/cheilmann/javascript-best-practices-1041724

ココ読むより原文読んだ方が良いです。
あくまで自分用かつブログ記事も稼げていいんじゃね?という趣旨

■Comment as much as needed but no more
・コメントは開発者から開発者へのメッセージ
・「良いコードは見るだけでわかる」とかあるけどあれ都市伝説
・コメントは過剰に書かない、必要な分だけ
・あと一行コメントもやめとこう、「/* */」を使った方がエラーの原因にならなくていい
・あ、あとコメントを使ってデバッグするならちょっとしたテクを教えるよ

module = function(){
var current = null;
function init(){
};
/<-これ /*
function show(){
current = 1;
};
function hide(){
show();
};
//<-これ */
return{init:init,show:show,current:current}
}();

"/"を外したりつけたり

あと、slideshareにあったコメントのテク

コード有効:
/* */
...
/* */

コード無効 :
/* * /
...
/* */


無効時のコードには半角スペースが入ってます


・コメントはdocument作成時にも使われてるよ
・あーでもコメントはエンドユーザーにはみられるべきではないよね

■Avoid mixing with other technologies
Javascriptでできることは色々あるけど、あくまで役割をこなす事を考えるべき
・例)
Q:"mandatory"というクラスの入力フィールドが空の時は赤いボーダーを引きたい
A1:
var f = document.getElementById('mainform');
var inputs = f.getElementsByTagName('input');
for(var i=0,j=inputs.length;i 100){
direction = 1;
} else {
direction = -1;
}
var direction = (x > 100) ? 1 : -1;
/* 入れ子では使わないように! */


■Modularize
・モジュール化&機能役割がキチンとした形で
・毎回関数を確かに手っ取り早くていいけど、それらを追加するのにそれぞれ同じ拡張しなきゃいけなくなることとかない?
・↑の防止として、(rather than catch-all methods)より一つの役割を果たす最小限で汎用的なメソッドを書くよう心がけること
・あとあと機能拡張API作成にrevealing module patternを使用するときにも役立てる事ができるよ
・良いコードはコアの部分を書き変えなくても拡張できるべき

■Enhance progressively
・Web上で動くものがあるので、Javascriptに頼りまくるよりそれらを使っていこう
・Dom生成は遅いし高価ですよ
・ElementsはJavascript依存していますが、Javascriptが切られたときにも使用できるようにしておかないのはユーザーに対する裏切りです
(かな?)


■Allow for configuration and translation.
・変更しやすいコードは散らばらないっ!
・これにはlabelやCSSのclass、IDやプリセットも含まれます
・↑を設定オブジェクトにまとめて作成、アクセスできるようにしておけばカスタマイズも容易になるでしょう
・以下例
carousel = function(){
var config = {
CSS:{
classes:{
current:’current’,
scrollContainer:’scroll’
},
IDs:{
maincontainer:’carousel’
}
}
labels:{
previous:’back’,
next:’next’,
auto:’play’
}
settings:{
amount:5,
skin:’blue’,
autoplay:false
}
};
function init(){
};
function scroll(){
};
function highlight(){
};
return {config:config,init:init}
}();

いつか続く