0
假设您要创建一个复杂的后端系统。系统中的某个位置有一个IQueue接口。您计划有队列几种实现方式:Visual Studio解决方案/项目组织
- 天真“内存”
- 数据库(其中队列在数据库管理)
- 亚马逊SQS(使用Amazon SQS云服务)
- MS /谷歌/其他队列服务
显然,每个实现都需要它自己的阶级和实现。每个实现可能需要不同的引用(数据库将要求DLL与相关数据库进行通信,Amazon SQS将要求Amazon AWS DLLs等)
您将如何组织此类场景的解决方案?
假设接口和幼稚实施是其中使用的队列中的项目的地方,我看到以下可能的选择:
- 独立的Visual Studio(并因此组装)每个实现:
- 专业:清洁工程,项目级别的“单一职责”,更容易更新具体实施
- Con:很多项目,很多组件需要管理/部署,速度较慢Visual Studio
- 所有“非天真”实施的单个项目:
- Pro/Con:与第一个选项完全相反。
Definetly更多的程序集。 – TcKs
你已经制定了优点/缺点的方式没有任何意义。在一个解决方案中创建多个项目问题解决了。一切都干干净净,易于更新,不违反单一责任等。如果Visual Studio速度太慢,请在解决方案资源管理器中右键单击您未处理的项目,然后选择“卸载项目”。这正是解决方案所设计的目的。 –
@Cody:我很清楚项目是为此设计的。然而,只是“越来越多”项目而不去思考,是一种不好的做法。而且你无法摆脱这样一个事实,即越来越多的项目导致VS速度变慢(并且卸载项目并不是真正的解决方案),并且缩短了构建时间。并补充说明,您需要管理/部署/ etc等您添加的每个程序集... – SaguiItay