设万维读者为首页 万维读者网 -- 全球华人的精神家园 广告服务 联系我们 关于万维
 
首  页 新  闻 视  频 博  客 论  坛 分类广告 购  物
搜索>> 发表日志 控制面板 个人相册 给我留言
帮助 退出
懒姑娘的博客  
春江水暖鸭先知  
https://blog.creaders.net/u/3495/ > 复制 > 收藏本页
我的名片
懒姑娘
注册日期: 2010-02-23
访问总量: 96,257 次
点击查看我的个人资料
Calendar
我的公告栏
最新发布
· 女儿制作的动画片
· 保持沉默保持尊严
· 性.资源.权力
· 你进你的主流,我走我的边缘
· 法国国家图书馆
· 如何成为一个优秀的程序员( 四 )
· 如何成为一个优秀的程序员三
友好链接
分类目录
【学无止境】
· 如何成为一个优秀的程序员( 四 )
· 如何成为一个优秀的程序员三
· 如何成为一个优秀的程序员二
· 如何成为一个优秀的程序员
【随便说说】
· 保持沉默保持尊严
· 性.资源.权力
· 你进你的主流,我走我的边缘
· 谈谈恐惧
· 办公室政治斗争
· 老虎究竟招惹了谁?
· Alan Turing的命运
· 阿凡达---陈词滥调
【天涯比邻】
· 女儿制作的动画片
· 法国国家图书馆
· 日内瓦湖边小镇
存档目录
08/01/2010 - 08/31/2010
06/01/2010 - 06/30/2010
04/01/2010 - 04/30/2010
03/01/2010 - 03/31/2010
02/01/2010 - 02/28/2010
发表评论
作者:
用户名: 密码: 您还不是博客/论坛用户?现在就注册!
     
评论:
如何成为一个优秀的程序员( 四 )
                                                           再谈建模 在如何成为一个优秀的程序员二,我谈到了建模.在这里我再补充些想法. 在前面部分我谈到建模中一个常见的错误倾向: 试图建立起一个能够预知未来,包容万象的模块体系.这种好高骛远的建模方式常常导致三个后果: 1 开发工作被无限期拖延; 2 模块层次过于复杂,维护十分困难; 3 软件结构远远偏离了今天的实际需要,模块之间的访问和调用往往需要通过许多不必要的环节,直接影响了软件的运行速度. 接下来,我想谈谈建模中的另一个错误倾向:对现存设计模式的生搬硬套.上世纪九十年代Erich Gamma等人将設計模式(design pattern)理论引入了计算机科学领域.1995年Erich Gamma, Richard Helm, Ralph Johnson et John Vlissides共 同撰写了:" Design Patterns -- Elements of Reusable Object-Oriented Software "一书.它的四位作者也被戏称为"四人帮"(Gang of Four 简称GoF).书中共收录了23个设计模式.此书一出,软件工业界如获至宝.很多人开口GoF闭口还是GoF.软件设计模式几乎成为计算机系学生最重要的 必修课之一.记得当时很流行的一种看法是:优秀的学生去建模,平庸的学生去编码. 事情真的这么简单吗?是不是只要把"四人帮"给我们提供的模式背得滚瓜烂熟,现实中的问题便可迎刃而解? 首 先我想从我个人的学习经验出发来谈谈我对这些设计模式的看法.我最初读GoF的书,是学生时代.当时没有多少编程经验,费了很大力气囫囵吞枣地把全书啃 完.但始终无法对这些设计模式有个清晰的认识,甚至觉得各种模式之间有很多互相矛盾之处,真的运用起来十分困难.当时正好实验室需要编写一个数据压缩程 序.我便趁机现炒现卖,想用自己刚学到的理论来指导实践.该数据压缩软件可以处理4种类型的数据:double, float, int, string.于是我便想当然地建立了四个模块:doubleCompress, floatCompress, intCompress, stringCompress.并且根据当时学的理论知识,运用了抽象工厂模式,单例模式等等.但事实上,不同类型的数据压缩的算法之间有着千丝万缕的关 系,结果导致我的模块之间的关系复杂,逻辑十分混乱.项目开发结果也就可想而知了. 后来有了一定的工作经验,特别是在进行了大量的编码之 后,再重读GoF的设计模式,感觉就完全不同了.不但对书中提到的各种设计模式的利弊有了清楚的认识,而且不无惊喜地发现,在具体的开发实践中,我已经不 知不觉地用上了许多GoF的设计模式了.那么我是如何在不自觉中找到这些设计模式的呢?回想起来,其实很简单.在开发和维护软件的过程中,我常常遇到一些 问题,比方说有些编码被多次重复使用;又比如由于模块之间的关系混乱,导致对某些模块的访问十分繁琐,且没有逻辑等等.这些问题不但使得软件的维护变得十 分困难,而且大大增加了软件出现漏洞的可能性.当这些问题变得越来越不可容忍的时候,我就想也许应该从软件结构上入手,换一种思维方式,重新设计模块.通 过这样一个不断思考优化改进的过程,GoF的设计模式便不请自来了.因此我认为优秀的设计模式是在对具体问题的不断思考,日积月累的编码实践中得来的.因 此这里我要再次重复我曾经提到的观点:建模不应该是程序开发初始阶段的一个单独僵硬的板块,它应该贯穿于整个开发过程中.建模应该始终和软件所要处理的具 体问题紧密联系在一起.一切从问题出发.寻找最简单最合理的设计模式.
 
关于本站 | 广告服务 | 联系我们 | 招聘信息 | 网站导航 | 隐私保护
Copyright (C) 1998-2025. Creaders.NET. All Rights Reserved.