[英]Django receivers best practice
我正在決定如何編寫接收器。 我可以執行以下任一操作:
我的問題是: 有什么不同嗎? 如果是這樣,為什么?
@receiver(some_signal)
def do_it_all(sender, **kwargs):
# do something for table 1
# do something for table 2
# do something for table 3
#...
@receiver(some_signal)
def do_it_for_one(sender, **kwargs):
# do something for table 1
@receiver(some_signal)
def do_it_for_two(sender, **kwargs):
# do something for table 2
@receiver(some_signal)
def do_it_for_three(sender, **kwargs):
# do something for table 3
#...
選項1顯然更干燥 ,但是選項2允許更多的組織和可讀性 ,因此它們都適合他們。 但真正的問題是, 這真的重要嗎?
最后,它們都將起作用。 但是,隨着時間的流逝,您可能會發現do_it_all
變得很大,並且無論如何您最終都會將其拆分為多個函數:
@receiver(some_signal)
def do_it_all(sender, **kwargs):
do_something_for_table_one(sender, **kwargs)
do_something_for_table_two(sender, **kwargs)
do_something_for_table_three(sender, **kwargs)
在這種情況下,它與選擇二並沒有什么不同。
因此,我認為第二種方法最終可以使代碼更簡潔。 這也意味着您可以分別測試每個接收器。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.