| Vb教程 | Vb.net教程 | Vfp教程 | C/C++教程 | Vc/Vc++教程 | Delphi教程 | Java教程 | Powerbuilder |
![]() |
|
软件架构:可控的灵活性 文章来源:Matrix.org.cn 在软件开发中,我们对于软件架构经常看到极端:要么不重视软件架构,要么过分重视以至于她成了“天条”。我甚至遇到了这样的事情:某公司强制推行某基于Struts的架构设计,然而到了项目组它却处处遭到抵 制,特别是分部基本上抛弃了这个架构设计。那么,这个原因在哪里呢?为什么一个成本高昂的架构设计没有被接纳呢? 也许这种说法会招致一些人的反对,认为自然而然的应该是前者,然而,实际的情况是,我们常常看到打着业务的幌子实现为面向页面的系统,原因很简单:后者更加的“简单”并似乎有更少的代码和工作量。这在某种程度上是对的。然而,区分这两种不同的设计是必要的,尽管你也可能使用了MVC2的架构,但你可以做出面向页面的设计的。观察我们的软件开发,最先提交的代码未必是最少的代价的代码:我们常常可以发现一些项目总是在那些不起眼的地方不断的“修改”,我们的程序员因此好像很忙,但对我们的项目对公司来说这是糟糕的不必要开销。因此,考虑这两种可能的情况,在做出选择之前加以思考是必要的。 5:用团队和别人的眼光考虑问题。 实际上,每个项目都是有所差异的,特别是人的差异。很糟糕的是,我们通常不得不面对人力资源的极大压力,特别是这些人之间常常都没有共事的经验也就是常常是临时组成的,而这些人员也通常也缺乏一个软件开发的基本共识:对标准的遵从哪怕是最简单的Java编码规范和对自己提交的产品的简单备注和测试都是缺乏的而通常又没有达到代码就是文档的水准。在这个时候,用团队和别人的眼光考虑问题就是必要的,这实际上就是取技术上的“交集”,也就是走简单的路线。如果没有选择的时候,培训工作就是非常必要的。 用团队和别人的眼光考虑问题也会有其它的问题,特别是当项目压力如进度压力等来临的时候或者项目成员根本不考虑公司整体和长期利益的时候,这个问题很突出,有时候作为分析设计人员你甚至很难解决,特别是你面临刚才我所提到的“没有Java开发实际经验甚至缺乏软件开发经验的项目经理试图控制技术的时候”更加如此。 软件架构的设计说起来简单,也可以说起来复杂,然而,如何把事情做到简单并且把其中的针对性能、分层、粘合、扩展等处理好,并提供可控的灵活性不是容易的。通常,只有多一些经验和教训并能够在软件代码上加以实现核心的才可能成为好的分析设计人员。 |