【发布时间】:2011-06-08 13:51:43
【问题描述】:
我目前正在设计一个复杂的网站,该网站需要支持 CRUD 操作的撤消和通知。
撤消,我的意思是用户可以创建/修改/删除一个项目,然后决定取消他所做的(因此删除创建的项目,恢复修改项目的先前状态,或带回已删除的项目)。做完那个操作后他可以做一小会儿(超时时间是2分钟,因为系统相当复杂,用户可能需要一段时间才能注意到修改不正确)。
通知是指当一个项目被创建/修改/删除时,其他对该项目感兴趣的用户将收到现场通知(下次他们加载新页面时) ) 并且如果他们要求,也会收到电子邮件或短信通知。
完成任一功能都很简单:撤消涉及保留撤消信息(主要是修改或删除项目的旧版本),而通知就像将通知对象推入适当的表并发送电子邮件/短信一样简单苍蝇。
让它们一起工作会带来很多额外的复杂性,因为通知必须保持静止,直到撤消变得不可能,而且我没有足够的事后诸葛亮以理智的方式设计它。
在构建此类系统时应避免哪些模式、最佳实践或陷阱?
【问题讨论】:
标签: architecture notifications undo