簡體   English   中英

Django接收器最佳做法

[英]Django receivers best practice

我正在決定如何編寫接收器。 我可以執行以下任一操作:

  1. 將所有信號一人扔在一個接收器中
  2. 將它們分成多個接收器,用於組織目的的一個信號

我的問題是: 有什么不同嗎? 如果是這樣,為什么?

選項1:

@receiver(some_signal)
def do_it_all(sender, **kwargs):
    # do something for table 1
    # do something for table 2
    # do something for table 3
    #...

選項2:

@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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM