2017-06-10 3 views
0

私は友人とプロジェクトを進めています。NPMとJavascriptで第三者のライブラリを使用してアプリケーションが肥大化する

私は1年以上少し前からプログラミングしていたので、彼は私よりも優れたプログラマーです。

彼はしばしばコンポーネントと機能をゼロから作成することに気付きました。私は彼が最初から機能を構築するという点で、彼をほぼ「ヒップスター」と考えています。

npmライブラリなどを利用する私のアプローチには欠点がありますか?つまり日付ピッカー、地図コンポーネントなど

私が思い描くかもしれない理由の1つは、おそらくパフォーマンスが低下しているということです。読み込み時間には大きな影響がありますか?私は大きなアプリケーションを構築していない、実際には私はそれを小さく思うだろうが!私が「騙されている」と思っているのですが、これは膨らみにつながります。

クイックプレビューとして

、私の基本的な機能は、現在含まれるようになります。

  • 絵文字ピッカー
  • 日付ピッカー
  • Google MapsのAPI Mapsコンポーネント&場所
  • フォーム検証ライブラリ
  • スーパーエージェント
  • モーメント.js

ありがとう!

+2

この質問は "広すぎる"ので、あなたは私の2cを与えることができます。それは状況的です。ライブラリが整備されていれば、おそらく数時間であなた自身がまとめることができるものよりも優れたコードになるでしょう。ただし、ライブラリの完全なユーティリティを活用していない場合は、バンドルにスペースが無駄になる可能性があります。たとえば、Moment.jsからすべてのロケールをインポートし、それらのうち2つを使用している場合、それは悪いです。 – Damon

+1

(ctd)ライブラリーを使用するのは時間を節約できますが、最終バンドルに追加するサイズに注意し、保存された時間とパフォーマンスの時間に基づいて決定する場合は、ライブラリを使用するのを恐れないでください。各依存関係が占めるスペースを分析するために使用できるさまざまなツールがあります。 – Damon

+2

あなたの友人は "ここには症候群を発明していません。"確かに外部ライブラリを過度に使用することは可能です。冗長な機能を引き出したり、ライブラリー全体を1つの小さな部分だけを使用して引っ張ったりしないようにするのは良いことです。しかし、一般的には、より多くの人々がそれを使用したため、ライブラリコードはあなた自身のものよりも多くのバトルテストと強化が行われます。 –

答えて

1

まず、あなたは不正行為をしていません。
サードパーティのパッケージを使用するのは開発者にとってはよくあることです。
しかし、独自のコンポーネントを構築することを学ぶのは良い経験です。
あなたの経験として知識を交換することができますいつでもそれらを交換することを忘れないでください、

長所。
これらは開発時間を節約できます
実装が難しいかもしれないことを実行することができます
これは、より良い記述とテストが可能です。

短所
これらはひどく書き込まれ、信頼性が低く、サポートされない可能性があります。
どのように動作するのかわからない場合は、バグがある場合や機能を拡張する必要がある場合に問題になることがあります。
未使用の多くのスクリプトを含むことになります。
あなたはより良い、より保守的な何かを書くことができるかもしれません。

JavaScriptをバンドルしたり、サイズを縮小したり、ロールアップなどのツールでツリーを揺らしたりすると、ダウンロードサイズを抑えることができます。

パッケージを使用する場合は、信頼できるものを使用し、レビューと評価を見て、アクティビティをチェックしてログを出力します。

パフォーマンスに関するすべての懸案事項 - テスト。
フィドラーまたはクロムを使用してダウンロードの大きさを確認し、ダウンロード時間を測定します。
現実的なデバイス/ネットワーク/負荷条件の下で、可能であればテストします。

+0

素晴らしい!バンドルのサイズを小さくする方法について、より具体的な情報を見ていきます。「JavaScriptをバンドルしたり、サイズを小さくしたり、醜くしたり、ロールアップのようなツールでツリーを揺らすことは、ダウンロードサイズを抑えるのに役立ちます。 – njho

0

あなたが新しいものであるため、あなた自身のすべてのことを自分自身で書くことを試みることは、あなたの知識の良いテストです。それは、stackoverflowのユーザーの良い部分がどのように学んだの:doableと聞こえるが、あなたのためにセクションが未知のプロジェクトを取る方法です。それは私が私が知っているすべてについて個人的に学んだことです。

私はそれが浮気だとは思わないと言われています。英語では一般的なフレーズがあります。「ホイールを再構築しないでください」それらの図書館が存在する理由は、誰かがそれらを作るのに多くの時間を費やし、そして他の人々がおそらくそれから恩恵を受ける可能性があることに気づいたからです。モーメントの例では、どの言語でも日付/時間を使って作業するのは大きな苦痛です。モーメントがとても人気があるのは、誰もがモーメントの作成者がすでに行ったことを誰も経験したくないからです。なぜ完全に良い、よくテストされた、そして信頼できる車輪を再発明する時間を無駄にしますか?

あなたが今まで「男」に行ったら、この車輪は素晴らしいですが、より耐久性のあるものから作られていれば、より多くの隆起を乗り越えることができます。この場合、あなたはホイールを改善しています。同様に、既存のものからフォークとして始めて、作成者が機能性を欠いていたと感じるものを追加しようとするプロジェクトがたくさんあります。

これがこれをクリアします。

関連する問題