项目相互依赖管理
在用VS中进行开发一个项目时必定会有很多“项目(Project)”,不同的Project负责不同的功能模块,这样子可以将功能分散到不同的Project中去。这样不仅可以功能分摊到各自的Project降低开发的难度,同时也可以方便以后的维护和拓展。项目管理这是一门很深的学问,我在我的一个小项目体会到了冰山一角,跟大家来分享一下。
当项目很多的时候,不同项目之间必定会有相互调用相互依赖的关系,这种关系会随着项目数量的增加而变得错综复杂。随之项目之间的依赖关系的管理就至关重要了,举个切身的例子来说明不好的项目以来将会带来怎样的后果。我前段时间做的一个项目有四个Projects,分别为DataService、App、Func、Lib这么四个项目,四个项目之间的依赖关系如下:
(箭头指的方向为依赖的方向,如App指向DataService表示App依赖于DataService)
从上图可以看出我这四个项目之间的依赖关系比较复杂(换句话说是比较不好),Func和Lib之间相互依赖从而形成了一个环。这种情况在一般编程的时候并没有大碍,但是如果说你同时修改了Func和Lib中的内容,然后你又重新生成解决方案,那么你的噩梦就从此开始了!比如说Func中的A函数调用了Lib中的B函数,然后B的DLL还没生成,所以A无法生成DLL,与此同时Lib中的C函数调用了Func中的D函数,由于Func的DLL没有正常生成,Lib的DLL也无法生成。就这么形成了一个死循环。
解决方案是,将Func中调用Lib和Lib中调用Func的类中的方法注释,生成,然后将注释取消接着生成。
比较好的方法就是让两个项目之间不会产生一个相互依赖的环,这样子的话就可以很有效的避免此类的问题。在我的项目中,我将Lib项目中被Func引用到的类提取出来放到另一个项目中既可以解决这个问题。
我认为这个问题可以在设计阶段的时候完全避免,只要将需求分析地彻底,功能模块划分的清晰,并且设计的时候注意到这个问题。