12
Rails Observer Alternatives สำหรับ 4.0
เมื่อผู้สังเกตการณ์ถูกลบอย่างเป็นทางการจาก Rails 4.0ฉันอยากรู้ว่านักพัฒนาคนอื่นกำลังใช้อะไรอยู่ (นอกเหนือจากการใช้อัญมณีที่ถูกแยกออกมา) ในขณะที่ผู้สังเกตการณ์ถูกทารุณกรรมและอาจกลายเป็นเรื่องไม่สะดวกได้อย่างง่ายดายในบางครั้งมีกรณีการใช้งานมากมายนอกเหนือจากการล้างแคชซึ่งเป็นประโยชน์ ยกตัวอย่างเช่นแอปพลิเคชันที่ต้องการติดตามการเปลี่ยนแปลงของโมเดล ผู้สังเกตการณ์สามารถเฝ้าดูการเปลี่ยนแปลงในโมเดล A และบันทึกการเปลี่ยนแปลงเหล่านั้นด้วย Model B ในฐานข้อมูลได้อย่างง่ายดาย หากคุณต้องการดูการเปลี่ยนแปลงในหลายรุ่นผู้สังเกตการณ์คนเดียวก็สามารถจัดการกับมันได้ ใน Rails 4 ฉันอยากรู้ว่านักพัฒนาคนอื่นกำลังใช้กลยุทธ์อะไรในตำแหน่ง Observers เพื่อสร้างฟังก์ชั่นนั้น โดยส่วนตัวแล้วฉันโน้มตัวไปสู่การใช้งาน "ตัวควบคุมไขมัน" ซึ่งการเปลี่ยนแปลงเหล่านี้ถูกติดตามในวิธีการสร้าง / อัพเดต / ลบของตัวควบคุมแต่ละรุ่น ในขณะที่มันขยายพฤติกรรมของแต่ละคอนโทรลเลอร์เล็กน้อย แต่ช่วยในการอ่านและทำความเข้าใจเนื่องจากรหัสทั้งหมดอยู่ในที่เดียว ข้อเสียคือตอนนี้มีรหัสที่คล้ายกันมากกระจายไปทั่วตัวควบคุมหลายตัว การแยกรหัสนั้นออกเป็นวิธีผู้ช่วยเป็นตัวเลือก แต่คุณยังคงทิ้งการเรียกใช้วิธีการเหล่านั้นทิ้งไว้ทุกที่ ไม่ใช่จุดจบของโลก แต่ก็ไม่ได้อยู่ในจิตวิญญาณของ "ผู้ควบคุมผอม" เช่นกัน ActiveRecord callbacks เป็นอีกทางเลือกที่เป็นไปได้แม้ว่าจะมีคนที่ฉันไม่ชอบเป็นการส่วนตัวเพราะมันมีสองรุ่นที่แตกต่างกันมากเกินไปในความคิดของฉัน ดังนั้นใน Rails 4 โลกที่ไม่มีผู้สังเกตการณ์ถ้าคุณต้องสร้างบันทึกใหม่หลังจากสร้าง / อัปเดต / ทำลายบันทึกใหม่อีกชุดหนึ่งคุณจะใช้รูปแบบการออกแบบแบบใด ตัวควบคุมไขมันการเรียกกลับ ActiveRecord หรืออย่างอื่นอย่างสิ้นเชิง? ขอบคุณ.