たとえば、オブジェクトのIDが何であるかを本当に知る必要がある場合はObject#object_id
常に存在するため、変更することは理論的に安全ですか?Object#__id__
背景: object_idの別名は何ですか?
たとえば、オブジェクトのIDが何であるかを本当に知る必要がある場合はObject#object_id
常に存在するため、変更することは理論的に安全ですか?Object#__id__
背景: object_idの別名は何ですか?
すべてが完全に文書化され、コードを操作するすべての人が、何が再定義され、パッチが適用されているかを認識している理想的なシステムでは、そうかもしれません。
しかし、ご存知のように、そのような状況はめったに存在しません。個人的には、、、またはですでに定義されているものにパッチを適用することはノーノーだと思いKernel
ます(Class
フレームワークレベルでそれを行っている場合を除く)。Module
Object
最終的に、驚き最小の原則はすべてのレベルでコーディングの決定に浸透するはずだと私は信じています。
Object#object_idを変更することは理論的に安全ですか
ええと、私たちはおそらくここでの理論よりも現実に関心があると思います。実際の__X__
ところ、デフォルトの動作をオーバーライドして完全にジャッキアップしたことに気付くまで、人々はこのバージョンを使用しません。力には責任が伴います。モンキーパッチを慎重に使用し、予期しない動作を引き起こさないようにしてください。代わりに、クラスに新しいメソッドを追加する方がよいでしょう。