2012-04-06 12 views
2

私はちょうどextend.jsと知り合っており、ネイティブJavaScriptを使用してライブラリを使用することに付加価値があるのだろうかと思っていました。私に実証させてください。extend.jsを使用する利点は何ですか?

extend.jsで、私はそうのような名前空間を宣言します:

extend('some.madeup.namespace',{ 
    foo : 'bar' 
}); 

&hellipを。それなしで、私はそれを行う必要があるだろう一方:

var some = { madeup : { namespace : { foo : 'bar' } } }; 

私はKISSの原則で固く信じてる、と私は本当に外部依存関係は、物事が少し簡単にするために削減されるべきだと思います。だから、このライブラリのすべてが私に(1回限りの)割り当て宣言を保存すれば、それは問題の価値があるかどうか熟考します。

私はここに欠けているものはありますか?これはすべてそれにありますか?

+0

私はKISSのすべてです。だから私はjQueryを使わないのです。または他のフレームワーク。自分ですべてのコードを書くと、実際にデバッグを開始する手掛かりが得られます。 –

+0

var some = {madeup:{名前空間:{foo: 'bar'}}}; //もっとコンパクト –

+0

@ SteveH。 - あなたは私のことを怒らせるだけです。問題はより重要です。問題を強調するために、私はそれに応じて私の質問を編集します。ありがとう。 –

答えて

1

私は、この質問に対する賢明な答えが、第三者ツールに対する一般的な回答に大きく依存していると思われます。

人々はサードパーティのツールを使用して、仕事をより速くよりエレガントに行うのに役立ちます。少なくとも、それは理論です。しかし、依存関係を減らし、最初から実装する方がよりエレガントである人もいます。私たちにとっては、私たちの原則に価値がないので、私たちのプロジェクトには砂糖を含めることにほとんど価値がありません。

他の人には、書き込みが必要なコードの量が削減され、おそらくやや構造化されていると感じられるため、値があります。彼らは同じ抽象化自体をしていただろう。だからよく考え抜かれた、テストされたライブラリを使うのが理にかなっている。

あなたの個人的な好みや使い方に大きく左右されます。確かに私は特にこのライブラリの使い方については言及していませんが、51行しかありません。それが提供している機能を読んで、あなた自身の結論に来るのは時間がかかりません。

私はこのライブラリが名前空間階層を作成し、衝突する名前空間をチェックするだけであることがわかります。コードのほとんどは、階層を作成し、名前空間の区別を検証することに焦点を当てているようです。これは、紛争が発生する可能性がある状況において汎用ツールとして設計されていることを示唆しています。大量消費のために独自の図書館を公開しているとします。

私の意見が必要な場合は、それを選択肢として使用しない人からのものです。名前空間は実際には不要です。名前空間の競合を実際に心配している場合は、ウィンドウ上の複数の名前空間の競合を防ぐためのすべての努力が必要ですが、良い設計は決してありません。

+0

これは私にとってはっきりしていることですが、明らかに「結論に達するのに時間がかかるはずはありませんが、私はプロジェクトでこの図書館を使った人からの実用的な反応を望んでいました。 )、徹底的に賛否両論を主張していた。とにかくあなたの応答に感謝します。 –

+1

最終的なコメントに意味のあるものが見つかったらいいと思います。私が強調しようとしたように、それは非常に主観的な問題です。このライブラリを使用して解決しようとしているユースケースの詳細を述べる場合、誰かがこのユースケースについてより良いアドバイスを提供できる可能性があります。私は確かにそれを使っている誰もがそれを使って問題を経験しただろうと疑う。あなたはあなたがポイントを見ていないと自分自身を強調した。あなたが必要とするものは、複数の名前空間の競合に苦しんでいる人を見つけることです。私は良いデザインを選ぶので、私はそうではありません、これは単に私の意見では悪いデザインを修正します。 –

+0

面白い編集、あなたは「良いデザイン」をどのように定義しますか?なぜ名前空間は不要ですか? –

関連する問題