Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Modernize JavaScript #56

Open
mizchi opened this issue Mar 17, 2013 · 2 comments
Open

Modernize JavaScript #56

mizchi opened this issue Mar 17, 2013 · 2 comments

Comments

@mizchi
Copy link
Contributor

mizchi commented Mar 17, 2013

コードをざっと眺めて、適当に懸念をいくつか

サポートブラウザは?

レガシーブラウザ対応でJSの見通しが非常に悪い。
IE6対応コードを落とせばすっきりするし、むしろそろそろjQueryのサポートがなくなるIE8も切っていいんじゃないか。
ECMA5互換のAPIについては、es5shimを導入してすっきりしたい(管理コストとarray_extraが書かれた時代に対する不安)

https://github.com/kriskowal/es5-shim

名前空間

最初に書かれた時代によると思うがグローバルに関数が定義されすぎている。
LDReaderかFlに寄せたい。

require.jsがモダンなみたいな風潮はあるけどたぶん超しゃらくさいし面倒なだけな気がする。

テスト

JSのテストは書くのか、書くとしたらどこまでカバーするのか
何年も動いてきたという実績はあるので、あえて切り捨てて、新規実装分だけやればいい気がする リファクタは気合いになるが

外部ライブラリ

外部ライブラリはどの程度導入するのか(malaさんがえいって書いたっぽいところをどこまで保持するか)

Backbone等MVCはどうなのか。習熟・学習コストの点でやりづらそうな気はするが、Backboneぐらい薄いなら問題な気もする。でもそうなると勝手にunderscoreとかjQueryがついてきて面倒。
プロジェクトの指針としてcoffee-scriptは受け入れるのか。

以上です。

@mala
Copy link
Member

mala commented Mar 17, 2013

取り敢えず私見で。

  • 名前空間は分けたい。微妙にバラけてますね。 LDR.xxx で良いと思います。
  • ミニマムなrequire.js相当のものを使う/作るのはアリ。
  • jQuery依存は避けたほうがよい。でかすぎる。
    • /reader/ 以外で使うのは別に良いです。
    • スマホ、タブレット、自分用クライアント作りたい時に流用しやすいほうがいい
  • Coffeeは積極的に使う必要はないと思います。
  • IE6,7はサポートしなくて良いと思います。ブラウザアップデートしてください、で済む話なので。
  • IE8はちょっとまだ無視できないぐらいユーザーがいる。
  • IE8も切っちゃったほうが幸せだー、という話ならFastladderでIE8切っちゃうのはアリだと思ってます(LDRに取り込むなら自分はどうせIE8対応のコードを書きます)

ブラウザネイティブで出来るようになったものはブラウザの機能使うように積極的に置き換え。
非同期処理周りは学習コスト低い小さいライブラリで置き換えで良いと思います。jsdefferedとかuupaaさんのやつとか。

IE8切ると嬉しいのはObject.definePropertyあたりですね。HTMLElement拡張はいけるはずなので、IE8縛りでも割と問題ないんじゃないかと。
https://developer.mozilla.org/ja/docs/DOM/element.classList

@mizchi
Copy link
Contributor Author

mizchi commented Mar 17, 2013

なるほど、把握しました。

とりあえず 新規で整理する際はLDR.xxx に寄せることにします。
require.js相当のものは、名前空間が整理さえされれば、必要になるまでやる必要はないという認識です。導入コストが高いものでもなし。

IE8対応はLDR側に反映されるならちょっと厳しいですね。
jQueryに関しては、個人的には速度面からquerySelector/querySelectorAllで済ませたい感じなので、自分も積極的に使いたくはないです。

coffeeは別に無理に使うものではないってのはそうなんですが、ほっといたら自分はcoffeeで書いちゃうので、一応聞いてみた感じです。

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants