3

私は最初のNode.jsモジュールに取り組んでおり、タイプのチェック、ループなどの一般的なユーティリティを実行する必要があります.

これらの一部のネイティブ JS はかなり醜いです。Underscore.js により読みやすくなり、多くの新機能も追加されています。しかし、新しいものが必要ない場合は、アンダースコアを使用する必要がありますか、それとも難しい方法で行う必要がありますか?

ありがとう!

4

5 に答える 5

4

生活を楽にするモジュールの使用を避ける理由はありません。そして、たまたま、underscore.js が npm レジストリで最も依存しているパッケージです ( https://npmjs.org/によると、この回答の時点で)。そうです、それを避ける理由はありません。

于 2013-05-06T19:10:12.007 に答える
2

アンダースコアは正しいことを行います。これは、最初にすべてのネイティブ es5 メソッドをチェックすることです。つまり、基本的に同じことを行う低速の非ネイティブ バージョンに置き換えられたネイティブ メソッドのパフォーマンスが低下することはほとんどありません ( code here ):

var
    nativeForEach      = ArrayProto.forEach,
    nativeMap          = ArrayProto.map,
    nativeReduce       = ArrayProto.reduce,
    nativeReduceRight  = ArrayProto.reduceRight,
    nativeFilter       = ArrayProto.filter,
    nativeEvery        = ArrayProto.every,
    nativeSome         = ArrayProto.some,
    nativeIndexOf      = ArrayProto.indexOf,
    nativeLastIndexOf  = ArrayProto.lastIndexOf,
    nativeIsArray      = Array.isArray,
    nativeKeys         = Object.keys,
    nativeBind         = FuncProto.bind;

注: 以前に "Proto" vars に割り当てられたプロトタイプ。

そうは言っても、V8にはこれらのすべてではないにしてもほとんどのものがあると確信しています. クライアント側の開発者である私は、組み込みメソッドを提供して、石器時代から IE を引きずり出して叫ぶのに最適なライブラリをどのように、またはどのライブラリが最適であるかを考えずに、単純に生の裸のものを使用できることを嬉しく思います。 DOM API ほど醜くはありませんが、そうではないと思います。

アンダースコアが上記よりも多くのことを行う場合は、必ずそれを使用してください。そうでない場合は、スペースの無駄だと思います。ブラウザで実際に行うことは、Node.js では問題とならない古いブラウザのフォールバック メソッドを提供することだけです。軽いけど。あなたが私のチームにいて、アンダースコアによって一意に処理されるものの独自のバージョンを書きたくないが、私自身のコードで直接のネイティブメソッド名/引数などを好む場合、どちらの方法でも反対しません.必要のない依存関係を嫌います。

于 2013-05-06T23:40:11.760 に答える
2

実際のプロジェクトでアンダースコアや非同期を使用したことはありません。適切な JavaScript をコーディングする方法を理解したら、ヘルパー ライブラリを使用する必要はありません。たとえば、連続して実行する必要があり、非同期である関数は、単純な「再帰的 while ループ」で非常に簡単に実行できます。ライブラリをロードする必要はありません。

しかし、これは最終的には個人的な好みです。使い慣れている場合は、外部ライブラリを使用してください。

アドバイス: 使用するモジュールを決定するために、github の開始または npm のインストールを調べないでください。人気があるということは、良いということではありません。私は多くの一般的なモジュールを試しましたが、それらの約 40% は単に悪い/バグがある/あまり役に立たない. 人気がなくても、本当に優れたモジュールがたくさんあります。人気があることは決定を下すのに役立ちますが、人気があるという理由だけでモジュールをインストールして使用するべきではありません。

于 2013-05-06T20:00:08.717 に答える
0

ES5 に依存しないように、ブラウザーと共有されるモジュールではアンダースコアを使用します。また、Underscore には、ES5 では使用できない非常に便利なメソッドがかなりあるため、そのマニュアル ページを読むことは理にかなっています。

于 2013-05-08T18:03:22.417 に答える