ActiveRecord geri aramalarının yaygın ve rahatsız edici olduğu büyük bir Rails uygulaması üzerinde çalıştım. Bir kaydın kaydedilmesi genellikle beklenmedik yan etkilere neden oldu ve bu sistem hakkında akıl yürütmek için bir zorluktu.
Aynı zamanda, kalıtımın bir parçası olarak iyi etki için kullanılan kancaları gördüm (örneğin, alt sınıfların ebeveynin iç özelliklerini bilmeye gerek kalmadan özel davranışlar eklemesine izin vermek için bir şablon yöntemi kullanarak bir üst sınıf) ve eklentilerde (örneğin, etkinleştirildiğinde kanca çalıştıran bir emacs modu, kullanıcıların bu modun çevresine özel davranış eklemesine olanak tanır).
Bir Rails uygulamasının ve Lisp yorumlayıcısının çok farklı sistemler olduğunu anlıyorum, ancak kancaların karşılaştıkları sorun için doğru tasarım seçimi olup olmadığına karar verirken insanların baktığı bilinen herhangi bir kriter olup olmadığını merak ediyorum.
Bana sıçrayan tema tahmin edilebilirlik. Kancaların yanlış kullanımı, uzaktan ve şaşırtıcı bir davranışta ürkütücü eyleme yol açarken, iyi kullanım sıkı bağlantı olmadan öngörülebilir bir çerçeveye yol açabilir.
Programlama kariyerimde henüz sadece birkaç yıl olduğum için, kendimi birçok bakımdan bir çaylak olarak görüyorum ve insanların bu konuya adil bir şekilde düşündüğünden şüpheleniyorum. Bu kararı yönlendirebilecek bazı yönergeler nelerdir?