Hatena::ブログ(Diary)

Dlog 隔離館 このページをアンテナに追加 RSSフィード

2012-06-16

pixiv の javascript のコメントが面白い

お絵描きサイト、pixiv!

何気なく、pixiv の javascript のソースを眺めてみると、いろんなコメントがありました。


ニョーン
...
7686:     // マウスオーバーでおすすめタグをニョーンと出す
7687:     var timer = null;
...

マジ天使
...
452:     selectCover: function(c) {
453:         // [IE マジ天使] 送れないので遷移させる
454:         if ($.browser.msie) {
...

pixiv.group.js

http://source.pixiv.net/source/js/pixiv.group.js


なげえw
...
248:             if (handler) {
249:                 // TODO 引数再考。なげえ
250:                 handler = handler.call(self, {
...

既に target なのでは
...
272:                             args.unshift({
273:                                 element : target, // TODO targetでいいのでは
274:                                 elements: elements,
...

抜け穴
...
353:     // ちょっと無理がありそう。抜け穴たくさんあるし、使い勝手が変わりすぎる
354:     // data string | jQuery object
...

(´Д`;)
...
436:                     w.alert(data && data.error + (data.hint ? '\n\n' + data.hint : '') || status + ': ' + (error || 'error'));
437:                     self.trigger('click.reposition-cover', '.action-reposition-cover'); // 微妙。。
438:                 });
...

マジ天使
...
452:     selectCover: function(c) {
453:         // [IE マジ天使] 送れないので遷移させる
454:         if ($.browser.msie) {
...

効果味
...
459:         // 同じ画像を再度選択した際にも change イベントが発火するように、一度 value を空にする(この際は change イベントは発生しない)
460:         // 現状では選択した瞬間に送信するので特に効果味ない
461:         c.element.findBy('input[type="file"]', 'form').val('').click();
...

難しい
...
564:     templates: {
565:         // 間違って true になる値を入れてしまうとデバッグが難しい
566:         'enable-invite': null
...

...
757:             .toggleClass('active')
758:             .findBy('.filecontainer', 'form') // これを毎回やるのが嫌。コンテキストごとにオブジェクト分けたい
759:                 .toggle()
...

疑問
...
1252:         ['focus', '.ui-auto-select', 'auto-select'],
1253:         ['click', '.ui-selectbox li', 'selectbox-select', {cancel: false}] // デフォルトオンはよくないかも
1254:     ],
...

pixiv.js

http://source.pixiv.net/source/js/pixiv.js


便利、、
...
2056: // TODO newした方が圧倒的に便利、、
2057: pixiv.modal = {
...

いいんじゃないかな?
...
2191: function uiLoadContextShareButton(e, data) { // TODO replace的なメソッドがあればいい?
2192:     $('#template-ui-context-share-button')
...

頑張って
...
2194:         .appendTo(this)
2195:         .filter('.share-button-twitter').each(pixiv.ui.shareButton.twitter).end() // TODO 最適化出来そう
2196:         .filter('.share-button-facebook').each(pixiv.ui.shareButton.facebook);
...

・・・。
...
4124:             // - デフォルト: async
4125:             // \# 第三引数は( xhr オブジェクト)は模倣しない(出来ない…)。
4126:            d.resolve(data, status || 'async');
...

1px
4481:     if (!this.container) return;
4482:     // TODO 1px隙間が出来る
4483:     item.animate({

開かん
5664:     // [IE][Fx] 開かん。 modal.open で一括して非同期化する方がいいかも
5665:     w.setTimeout(function() {

実行・・・?
...
6482: //======================================
6483: //  評価されたら実効
6484: //======================================
...
6525: //======================================
6526: // 質の評価されたら実効
6527: //======================================
...

とりあえず
...
7628:         var recent_tags = [];
7629:         // TODO: pixiv.storage.localStorage の使い方が分かりにくいのでとりあえず window.localStorage を使う
7630:         if (window.localStorage && window.JSON) {
...

ニョーン
...
7686:     // マウスオーバーでおすすめタグをニョーンと出す
7687:     var timer = null;
...

分かりにくい
...
7711: //======================================
7712: // TODO 名前が分かりにくい
7713: window.add_form = function(id, id_minor) {
...

pixiv 以外のサイトの js とか css

はてな

http://d.st-hatena.com/statics/js/diary_utils.js

...
 3: // 似たようなクラスが既にありそう
 4: FormVerifier = new Ten.Class({
...
85: // 分離したのでこれはいらない、と
86: // TextInputDescriptionOption = new Ten.Class({

ニコニコ

http://res.nimg.jp/js/watch/channel/channel.js

...
14:         no_connect : 0,//api叩かないモード
...
55:         /***デバッグ用の便利ボタンを挿入***/
...
92:             //入れ物をつっこむ
93:             if(typeof ch_prof_inserted=="undefined"){//もう入れてたらやらない
...

Ameba

http://stat100.ameba.jp/blog/js/blog_top/textbox_focus.js

...
45:             //アンカー生かし
46:             if(_helpOverFlg ==true) return;
47: 			
48: 		
49:             //消す
50:             $(e.target.parentNode).children(".inputDetail").css("display","none");
51: 			
52: 			
53:             //色
54:             $(e.target).removeClass("textInputFocus");
...

シンプルなコメントですね。


島根県

緊急事態に備えているようです

http://www.pref.shimane.lg.jp/stylesheets/top.css

...
170: /* 
171:  * The style for emergency section that replaces
172:  * photo when emergency info exsist 
173:  */
...

vim

http://www.pref.shimane.lg.jp/javascripts/common.js

...
408: // vim: set sw=4 ts=4 noexpandtab :

とある一SEとある一SE 2012/06/17 15:39 本番環境移行時には、コメントや字下げはカット、関数も通し番号かなにかに置換してほしいなあ。文字列置換ツールで一発だし、データ転送量も減らせる。

DltnDltn 2012/06/17 16:12 >> とある一SE さんっ
自分もそれは思いました。
いくつかサイトを見ていましたが、そういう処理をデプロイ時に自動的に行っていると思われるサイトが多かったです。
今回は紹介していませんが、「これはまずいのでは」と思うようなコメントもありました。
js や html のような、見ようと思えば簡単に見えてしまう部分には、注意が必要ですね。

スパム対策のためのダミーです。もし見えても何も入力しないでください
ゲスト


画像認証