architect的用意是好的,结构清晰,但是主要还是看能不能把每个developer的思维方式也弄得同样清晰。如果team members各自按自己的方法作,multi-tier architect只是增加层数从而增加整个程序的复杂性。比如我们本来的设计有这么几层,VIEW(又分成 pages, user controls, scripts, styles, ... 那时候还没有master page), Controller (classes in the web project), model (business entities), DA, and model-DA binding. totally 6-7 layers. 其中DA 和binding layer 是用一个工具生成的,不用也不给用手写。对做惯了old ASP page直接用stored procedures的人(team大了,什么人儿都会有),一下子真搞不清楚这么多层。还有不少developer对什么样的logic应该放在那一层真的没有感觉。比如有人在user control的code里直接改写hosting page中某些内容,或相邻的其他user control的内容,或者有人甚至直接把display logic写到controller里面。对这样的implementation分层越多越是灾难。
一个development team好比一个合唱团,团员有的会唱花腔女高音,有的是如泣如诉的抒情高手, 如果每个人唱得都很有自己的特色,本来一个和美的多声部合唱,经这个合唱团唱出来一定很难听。
MS 的asp.net MVC我没有用过,看过sample code,好像每个entity就generate 一个sub directory, 一个page,一个controller。如果一个项目需要几十个entities是不是就有几十个这样的独立的东西?是不是有点琐碎?而一个项目更多的不是去manage单个entity的状态,而是它们之间的相互关系。这个在MVC里不知道是如何处理的。 我没有实干经验,说的可能很外行,还请澳土等专家指教。