登录  
 加关注
   显示下一条  |  关闭
温馨提示!由于新浪微博认证机制调整,您的新浪微博帐号绑定已过期,请重新绑定!立即重新绑定新浪微博》  |  关闭

秒大刀 博客

好好学习 天天向上

 
 
 

日志

 
 
 
 

[转]给软件从业者的实用建议  

2013-11-05 09:04:22|  分类: 读书 |  标签: |举报 |字号 订阅

  下载LOFTER 我的照片书  |
[转]给软件从业者的实用建议 - 秒大刀 - 秒大刀 博客
 
     若想设计出好的软件,普通的设计原则就够了。你并不特别需要模式,不过若某个问题恰到好可以由某个模式解决,那么该模式将成为解决问题的捷径。时至今日,重复发明轮子绝对谈不上是什么好事。
     模式并不一定是某个问题的终极解决方案,使用模式也不会让你的代码更好,或执行速度更快。你更不可能冲到客户面前说:“看,我的产品使用了组合模式、一个领域模型、控制反转和策略模式等,因此这绝对是个完美的软件。”正确应用模式只能保证解决问题,对待模式要有一颗平常心,不要花费很大的力气去让设计符合某个模式。
     经过了多年的面向对象设计,我们可以总结出一些软件设计中的心得体会。这些体会每天都在指导着我们,我们也在将这些体会不断地传播给别人。
  • 将逻辑相关的职责分组并组成类型。这分组的过程中,要特别留意组成有明确用途的类型。
  • 为类型中的功能创建简洁灵活的抽象。在这个过程中,两个形容词能说明良好抽象的特征:清爽的和有弹性的(Crisp and Resilient)。
  • 在实现具体类型时,注意分离关注点——即谁应该做什么,并确保每个角色都仅有一个类型来扮演,且每个类型仅完成最少的工作。这样做并不是因为懒惰,而是力图简单和高效。
     对于简单,无论怎样强调都不过分。Andrea的办公室里有这样一个纸条,Dino将其作为每一本书签名时的致辞:尽可能保证简单,但不要再继续简单下去了。这事爱因斯坦曾经说过的一句话,每个软件从业人员都应该牢记于心。
     “简单是一切之本”这句话也叫做KISS(Keep It Simple, Stupid),这个理念出现在很多原则以及软件设计文章中。比较流行的原则有如下几条:
  • 不要重复你自己(Don't Repeat Yourself, DRY):指降低应用程序中的重复,且建议对于同样的信息,仅在一个位置存放。
  • 一次且仅一次(Once and Only Once, OAOO):指降低同一个应用程序中编写同样代码的次数。
  • 你不会用到它(You Aren't Gonna Need It, YAGNI):指仅当不可避免需要且没有其他解决办法时,再向程序中添加新功能。
     我们经常喜欢将“简单是一切之本”这个概念与人们这法庭上的权利相比:你所写下的所有的东西都将成为调试过程中的障碍。不仅如此,这些东西也会用在每次你与客户之间的会议上,且对你不利。
  评论这张
 
阅读(1390)| 评论(0)

历史上的今天

评论

<#--最新日志,群博日志--> <#--推荐日志--> <#--引用记录--> <#--博主推荐--> <#--随机阅读--> <#--首页推荐--> <#--历史上的今天--> <#--被推荐日志--> <#--上一篇,下一篇--> <#-- 热度 --> <#-- 网易新闻广告 --> <#--右边模块结构--> <#--评论模块结构--> <#--引用模块结构--> <#--博主发起的投票-->
 
 
 
 
 
 
 
 
 
 
 
 
 
 

页脚

网易公司版权所有 ©1997-2018