私たちがプログラミングするとき、私たちは皆、私たちが使用し、信頼しているプラクティスとパターンを開発します。ただし、時間の経過とともに、理解、成熟度、さらにはテクノロジーの使用状況さえも変化するにつれ、以前は優れていたと考えていた一部のプラクティスが適切ではない(または適用されなくなった)ことに気付きました。
かつて私が頻繁に使用していたプラクティスの例は、近年変更されましたが、シングルトンオブジェクトパターンの使用です。
私自身の経験と同僚との長い議論の結果、シングルトンは必ずしも望ましいとは限らないことに気づきました。シングルトンは、モックのような手法を阻害することによってテストをより困難にし、システムのパーツ間に望ましくない結合を生み出す可能性があります。代わりに、私は現在、シングルトンの性質と存在を気にしない、または知る必要のあるシステムの部分から隠すオブジェクトファクトリー(通常はIoCコンテナーを使用)を使用しています。代わりに、そのようなオブジェクトへのアクセスを取得するためにファクトリ(またはサービスロケータ)に依存しています。
自己改善の精神でのコミュニティへの私の質問は次のとおりです。
- 最近どのようなプログラミングパターンや実践を再考して、今は避けようとしていますか?
- それらを何に置き換えることに決めましたか?