- フレームワークについては、私は通常、多くの事前作成されたモジュールと大規模なコミュニティを持つ大規模で成熟したフレームワークのみを使用します。一般的に、あるフレームワークを他のフレームワークよりも選択しても、実際に自分のコードに費やす必要のある作業の量を大幅に減らすことはできません。総開発努力にほとんど違いはありません。ただし、一般的なフレームワークでは、事前に作成したモジュールをより多く利用できるため、通常はより多くの時間と労力を節約できます。
- 小規模な非フレームワークライブラリの場合、通常、必要な場合は問題なく自分で変更を加えることができるため、通常はコミュニティを追加ボーナスとして考慮することを検討します。ほとんどの小さなライブラリは1人で管理されますが、自分で構築するよりも優れています。ただし、大規模なライブラリの場合、自分で簡単に変更を加えることができる可能性は低いため、成熟したアクティブなコミュニティとドキュメントが不可欠です。
- ライセンスが不可欠です。一人用のライブラリの場合、ライブラリを変更する必要がある可能性が高いため、同意する条件でライセンスを許可することが不可欠です。
小さなライブラリの場合、フォークする必要があり、プロジェクトはすでに放棄されていると常に仮定する必要があります。これは通常、特にプロジェクトがGithubまたはBitBucketでホストされている場合、他の人のプロジェクトを愚かに簡単にフォークするため、問題にはなりません。小さなライブラリの場合、元のメンテナーがいなくなった場合や、行きたくない場所にプロジェクトの方向性をとる予定がある場合は、プロジェクトのメンテナンスをいつでも自分で引き継ぐことができます。
私はプロジェクトの活動にはあまり関心がなく、「完璧」という感覚を達成した成熟したライブラリは一般にバグ修正を行うだけでよいため、活動は遅くなりました。プロジェクトのアクティビティは、ライブラリに積極的に進化するターゲットが含まれる場合にのみ重要です。たとえば、外部サービスの進化に合わせて外部サービスのラッパーを絶えず更新する必要があるため、積極的な開発が不可欠ですが、数学ライブラリはあまり必要ありません必要なすべての機能を備えた新しい開発。
より大きなライブラリの場合、事態はより困難になります。引き継ぎははるかに複雑で、幸いなことに大規模なライブラリは一般的に成熟しているため、それほど速く移動しません。
@Samが彼の答えで言ったように、オープンソースライブラリを評価する上で最も重要なことは、それがあなたの要件にどの程度適合するかということです。ライセンスの問題が解決されたら、オープンソースライブラリを使用するのはめったに間違いではありません。事態が南に進んだ場合はいつでも分岐できるからです。