「常にサードパーティであるべき機能は何ですか?」
なし。本質的にエンジニアリング上の決定について議論するとき、「常に」という悪質な使用を無効にする例外または特別なケースが常に存在します。
さらに、サードパーティに移行するという決定は、特定の「機能」に基づいて行われることはほとんどありません。そのタイプの機能のために他の場所に行く必要がないような完璧なライブラリなどはありません。
サードパーティへの移行は、以下に基づいて下すべき決定です。
- サードパーティに行くコストと社内で行うコスト
- 締め切りに対して必要な開発時間 (つまり、社内の方が安いかもしれませんが、開発タイムラインに関係なくそれが許可されない可能性があります)。
- 統合、デバッグ、メンテナンス、アップグレード パスの容易さ - 社内で「仕事はできるが、かろうじて」できるものを開発できるのに対し、今後何年も面倒を見てくれるものにはそれほど多くのお金を必要としないものを開発できる可能性があります。
- テストと証明の容易さ/コスト - セキュリティ パッケージは、うまくテストするのが難しいことで知られています。
でも。家にいる方が良いと信じるのが本当に難しいことがいくつかあります. たとえば、OpenGL と DirectX の競合を作成できます。特定のアプリケーション (科学計算など) では、そのようなパスを検討する十分な理由があります。しかし、一般的には夢にも思いません。「無料」とはいえ、サードパーティの依存関係であり、これらのグラフィック言語の使用方法にのみ影響するバグのために、スキッドに陥る可能性があります.
言い換えれば、信じられないほど複雑で証明/テストが困難なものがいくつか存在し、ほとんどの場合サードパーティに行く必要があります. セキュリティは別のものです。独自のハッシュ アルゴリズムを作成しないでください。ただし、1) 確実にクレイジーであり、2) 少なくとも 3 つの優れたビジネス上の理由がある場合を除きます。
しかし、「常にサードパーティであるべき機能は何ですか?」なし。常に例外があります。
-アダム