私たちが使用しているいくつかのパッケージの予期しない/望ましくない動作について、同僚と話していました。私たち側には明らかな副作用のない簡単な修正 (または少なくとも回避策) がありますが、彼は関連するコードにハード パッチを適用してパッチをアップストリームに投稿することで、関連するコードを拡張することを強く提案しました。実際、新しいビルドごとに自動的に適用されるいくつかのパッケージの特定のバージョンに対するパッチを維持しています。主な議論は、「醜い」回避策や壊れやすいモンキー パッチとは対照的に、これは正しいことであるということです。一方、私は純粋さよりも実用性を優先し、少なくとも (重大な) バグ修正以外の場合は、「パッチなし」>「モンキー パッチ」>「ハード パッチ」というのが私の一般的な経験則です。
したがって、(ハード)パッチ、モンキーパッチ、または希望どおりに機能しないサードパーティのパッケージを回避する方がよい時期について、コンセンサスがあるかどうか疑問に思っています。それは主に、パッチの理由 (バグの修正、動作の変更、不足している機能の追加など)、特定のパッケージ (サイズ、複雑さ、成熟度、開発者の応答性)、その他の何かに関係しているのか、それとも一般的なルールがなく、ケースバイケースで判断すべき?