当前位置: 首页 > 图文教程 > 网络编程 > ASP.NET > 谈谈软件工程设计的艺术

ASP.NET
漫谈.Net开发关于命名空间和目录划分
.net中关于企业Excel报表的生成
.NET中取得IP/用户名等信息常用方法
关于.Net开发下的分布式缓存设计
.NET中为组合框添加自动查询功能
ASP.NET如何进行性能优化问题
开发中如何有效监控.NET应用程序
ASP.NET2.0 显示写入日期和时间语法
用.NET Array类的Sort方法分类数值
Asp.net Mvc Pv4中使用AjaxHelper
Asp.net中Forms验证的角色验证授权(一)
Asp.net中Forms验证的角色验证授权(二)
Asp.Net2.0数据库基本操作方法学习
Asp.Net之枚举类型输出需要类型转换
用.NET的File控件上传文件的解决方案
.NET泛型技巧之类型参数之间的转换
在ASP.NET中将数据直接输出成Excel格式
在.NET框架下使用自定义配置设置
跟ASP.NET MVC一起使用jQuery
Visual Basic中文本框处理技巧集萃

ASP.NET 中的 谈谈软件工程设计的艺术


出处:互联网   整理: 软晨网(RuanChen.com)   发布: 2009-11-03   浏览: 128 ::
收藏到网摘: n/a

谈谈软件工程设计的艺术如果生活的方式与你背道而驰,如果正确的行为被你视而不见,毁灭就会降临,难得保全。马基雅维利, 约1514年作为最重要的事情之一,如果不是唯一最重要的,一个系统的核心性质是它必须在其生命周期内保持一种 稳定的 结构。艾瓦耳。雅可布森以上的两段话,一是引自一位文艺复兴时期的实用主义政治学家,另一是引自一位当代设计大师。这两段话很好的反映了软件设计工程所面临的困境,两个相反方向的作用力,就象阴阳相生相克:一方面,软件设计需要尽一切可能减少开发时间,使软件尽快面市,同时也对市场的和客户需求的变化作出 迅速的反应;而另一方面,我们又必须花费足够的时间以保证软件的设计有一个好的架构,这样我们可以降低软件的维护费用,而且软件可以有较长的生命期。软件设计过分强调任何一个方面都会造成软件工程投资的极大浪费甚至失败。过分强调软件开发的速度,而忽视软件架构的设计是那些对软件开发工程缺乏经验者最容易犯的错误。糟糕的软件架构设计会导致所谓的1.0版现象,即软件只能开发到第一版。后续开发往往因为修改原有代码过於困难而夭折。因为设计者缺乏长远的目光和足够的项目开发经验而导致过於急躁的作出架构上的决策,因而导致软件结构的支离破碎是很可悲的,往往很多好的软件设计创意就这样胎死腹中。另一个极端同样会导致灾难,因为如果过於强调软件结构的优雅和可扩展性,导致过多的开发时间放在软件架构设计上,结果使 软件的开发时间过长,等到软件推向市场的时候,虽然设计上是完美的,但是竞争对手却早已占据了市场。软件设计的完美主义者容易犯这样的错误。这种人通常是设计方面的行家里手,而且对软件结构的完美有着不懈的追求。但是正是过於追求完美才是工程开发方面的大忌。不是每一个软件的设计都有时间和精力(同时也是财力)做到象STL那样的完美设计。通常一个好的软件设计会努力在这两个互斥的极端之间达到一种平衡。就象儒家讲的中庸。这两个极端之间的张力是随着软件开发的领域,环境,条件,时间,客户的要求,竞争对手现有的水平,等等变化而变化的。就象水形之常变。但是若能领会其中的道,能够把握其中的艺术,就能够象庖丁解牛一样“以无厚而入有间”,游刃而有余了。但是关键在於经验的积累和对平衡的领悟。经验可以很大一部分从前人那里得来,但是对道的把握却是另一度的思维空间了。 所以说软件工程既是科学又是艺术。但是值得注意的是,这绝对不应当成为忽视软件工程规范的借口,就象杨振宁可以谈论科学研究的艺术并不表示柯云路之流的所谓“生命科学”就不是纯粹的胡扯。设计一个容易维护并且有很强生命力的软件不是一件很容易的事;设计一个能够很快实现的软件也不是小菜一碟。平衡这两者来给出一个可行的,健壮的设计,使软件能够在市场上获得成功并生存下去是一件需要奇迹般力量的事业, 然而我们却必须在普通的工作中用我们的创造力去完成这个奇迹。