分享
 
 
 

抽象程度思考

王朝other·作者佚名  2007-08-23
窄屏简体版  字體: |||超大  

“软件设计的重点在于抽象”,不记得这句话是哪位说的了,我想改正一下:“保证软件灵活性设计的重点是抽象”,由此可知,抽象的作用是“保证软件的灵活性设计”。越来越多的语言、平台构建在OO思想之上,这充分说明了OO的正确性。OO,一种思想,一种谈到软件设计时必须涉及的思想,越来越多的人开始追捧它,当然,我也是其中之一。有了它,软件设计可以提升到一个“美”的境界;有了它,软件的可读性、可维护性、灵活性、可扩展性等等一大堆的“性”得到了很大的提高。为什么会这样?因为面向对象思想把软件跟现实更紧密地联系了起来,便得一些现实物理世界中的思想可以很容易的运用到软件中去。这几年,“设计模式”、“架构”等等一系列的名词越来越受到人们的关注。所有这些东西,其实就是为了实现一个抽象层次的编程,以保证软件的灵活性。

那什么是抽象?引用一位网友的话:“抽象就是有选择的忽略”,中国有句真理,叫“太极生两仪,两仪生四象,四象生八卦,八卦生万物”。从太极到万物,这种金字塔式的结构在复杂的软件工程中也是存在的,越接近金字塔的顶端,越要有选择的忽略掉更多的东西,从而具有更高的抽象程度。举个例子,两个功能A、B都是实现对数据的增删改,A是针对“客户”的,B是针对“产品”的,我们可以做一个增删改服务或者容器之类的东西来支持所有的增删改功能,A、B功能代码只用对使用这些服务然后再实现一些各自特殊的东西就可以了。这样做就把“增删改逻辑”给抽象了出来。再比如说O/R映射工具,它其实就是把数据操作抽象了出来。“抽象”的反义词应该是“具体”,我们可以把抽象理解为活的,具体理解为死的。各个具体的事物之间肯定会有重复,比如男人和女人都会走路,都会吃饭;比如你没有使用O/R映射工具的数据层的各个类都要实现一些相同的逻辑。软件设计中有一个原则:“Don't Repeat”,就是不要重复。理想状态下,一个系统的任何代码、逻缉、概念在这个系统中都是唯一的,这样的系统肯定是非常灵活,因为“抽象”对应“活”。唯一性很容易保证,但是逻缉、概念的唯一性就很难保证,应该说是根本保证不了,概念这东西抽象到最上层什么都没有了。什么事情都有个度,只能说是软件的灵活性会随抽象程度的提高而提高。

这么说,是不是就意味着抽象程度越高越好?不是!刚才说了,任何事物抽象到最上层就是叫“事物”,还从哪来软件?一些书目中或明或暗地提到软件设计肯定有个最好的抽象程度,而且我们应该去努力达到这个抽象程度。不错,说得很对。但是,项目与项目之间是不同的,不存在适用于所有项目的最好抽象程度。 我的一个同事给我说过一句话:“软件项目的成功标志是什么?有三点:客户满意,公司满意,员工满意”。客户怎么满意?软件按照预算工期、成本完成,并为为他们创造价值;公司怎么满意?软件按照预算工期、成本完成,并为公司创造利益;员工怎么满意?软件按照预算工期、成本完成,开发过程顺利,自已的利益得到保证。得到的结论就是软件项目顺利的按照预算工期、成本完成,就算是成功了。运用抽象的最终目的肯定是促使项目成功,并不是让你搞“科研”。一个项目的所有因素决定了这个项目最好的抽象程度,项目经理、架构师需要反复思考,软件设计时究竟抽象到什么程度最好?这肯定要根据现有的资源(开发人员、工具等)来确定,如果过于抽象,你水平到位,可以理解,那么下面的开发人员呢?你必须要考虑培训成本、沟通成本,过于抽象,会延长工期,甚至让项目遥遥无期。

说了这么多,并没有给出一套权衡的方法,在下实在水平有限,其实在自已带领的项目中也并没有把这些东西把握得很好,希望认真思考过这个问题的人能留下你的只言片语。

 
 
 
免责声明:本文为网络用户发布,其观点仅代表作者个人观点,与本站无关,本站仅提供信息存储服务。文中陈述内容未经本站证实,其真实性、完整性、及时性本站不作任何保证或承诺,请读者仅作参考,并请自行核实相关内容。
2023年上半年GDP全球前十五强
 百态   2023-10-24
美众议院议长启动对拜登的弹劾调查
 百态   2023-09-13
上海、济南、武汉等多地出现不明坠落物
 探索   2023-09-06
印度或要将国名改为“巴拉特”
 百态   2023-09-06
男子为女友送行,买票不登机被捕
 百态   2023-08-20
手机地震预警功能怎么开?
 干货   2023-08-06
女子4年卖2套房花700多万做美容:不但没变美脸,面部还出现变形
 百态   2023-08-04
住户一楼被水淹 还冲来8头猪
 百态   2023-07-31
女子体内爬出大量瓜子状活虫
 百态   2023-07-25
地球连续35年收到神秘规律性信号,网友:不要回答!
 探索   2023-07-21
全球镓价格本周大涨27%
 探索   2023-07-09
钱都流向了那些不缺钱的人,苦都留给了能吃苦的人
 探索   2023-07-02
倩女手游刀客魅者强控制(强混乱强眩晕强睡眠)和对应控制抗性的关系
 百态   2020-08-20
美国5月9日最新疫情:美国确诊人数突破131万
 百态   2020-05-09
荷兰政府宣布将集体辞职
 干货   2020-04-30
倩女幽魂手游师徒任务情义春秋猜成语答案逍遥观:鹏程万里
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案神机营:射石饮羽
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案昆仑山:拔刀相助
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案天工阁:鬼斧神工
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案丝路古道:单枪匹马
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案镇郊荒野:与虎谋皮
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案镇郊荒野:李代桃僵
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案镇郊荒野:指鹿为马
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案金陵:小鸟依人
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案金陵:千金买邻
 干货   2019-11-12
 
推荐阅读
 
 
 
>>返回首頁<<
 
靜靜地坐在廢墟上,四周的荒凉一望無際,忽然覺得,淒涼也很美
© 2005- 王朝網路 版權所有