Сигналы Django - это способ выполнить действие A
в ответ на событие E
.
В нереальном мире вы можете избежать использования сигналов, изменив код, в котором происходит событие E
, и добавив код для выполнения действия A
.
Проблема в том, что при этом вы теряете удобство обслуживания, удобочитаемость и множество других прилагательных для разработки программного обеспечения:)
Сигналы позволяют вам делать то же самое независимо от того, где и как происходит событие E
, и таким образом делают это умным способом, обеспечивающим удобство обслуживания, читаемость и т. Д. *
Да, я думаю, что утверждение о том, что сигналы полезны для включения развязки , действительно верно.
(Вы также упомянули многопоточность. Если вы это сделали, потому что считаете, что сигналы хороши, потому что они выполняются одновременно и так быстро ... Ну ... Я не знаю, выполняются ли они одновременно, но в любом случае я действительно не понимаю не думаю, что это именно то, для чего полезны сигналы джанго)
Пример хорошего способа использования сигналов - это тот факт, что когда вы хотите сохранить другую информацию для пользователя в django, вы должны использовать Userprofiles.
В этом случае сама документация сообщает вам, что может быть удобно зарегистрировать сигнал в ответ на любое создание новых пользователей, просто добавив к новым созданным пользователям пустой профиль пользователя.