我正在开发一个在各个领域都有用的应用程序。
在大多数域中,用户如何处理系统是相同的,但有些事情略有不同,即。某些域需要额外的屏幕或功能或不同的业务规则,但总体而言它们之间存在很多相似之处。
目前,每个域都有自己的应用程序,可以从之前的应用程序进行复制/粘贴,并进行修改以适应。你可以想象这并不理想,导致很多重复/返工/头痛。
我想知道在开发这样的应用程序或应用程序套件时是否有任何指导,这些应用程序或应用程序套件在没有这些相同问题的情况下具有相当多的相似性(达到某一点)?
我考虑过创建适合所有这些域的通用域名。我曾经研究过使用这种方法的应用程序,并发现事情变得如此复杂,并且需要许多开关才能启用/禁用某些功能。从本质上讲,它最终是域名非常通用,它对任何人都没有任何意义,并且难以为特定域定制。
如果它有任何区别,那将是用c#和.net 4编写的asp.net mvc应用程序
答案 0 :(得分:0)
我的建议是为每个域/用户组制作一个前端应用程序,并保留共享后端层,以便共享资源。您需要坐下来仔细思考哪些有意义的共享前端域并在共享层中实现(即:Web服务,数据库,消息队列等)
此外,如果前端设计中存在大量重复,您需要尝试编写可重用的组件(共享库),但是,这种建议在以追溯形式进行转换时几乎没有用处;如果前端应用程序已经存在,正如您所述,那么它很难进行重构而无需重构。
如果您发现自己将开关放在很多情况下,那就意味着您正在尝试对您的域对象进行篡改,试图让它们超出应有的范围。它还建议你需要添加一个额外的层,更多特定于前端的隐藏切换逻辑(或完全避免它)