自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

Robert C. Martin博客中文版

面向对象设计、模式、UML、敏捷方法学和极限编程领域。Robert C. Martin是Object Mentor公司总裁,面向对象设计、模式、UML、敏捷方法学和极限编程领域内的资深顾问。他不仅是Jolt获奖图书《敏捷软件开发:原则、模式与实践》(中文版

  • 博客(15)
  • 收藏
  • 关注

翻译 三大编程语言的性能PK--Java, C/C++和Ruby (原文最终修订于 2006-09-05 下午06:19:40)

译者序本文虽然标题略有争议,但Bob大叔撰写此文并非是要说明Java>C/C++>Ruby,而是延续上篇“性能调优--永远超乎想象”的风格,借以说明程序的性能一般都超乎我们想象的观点,因此请读此文的C/C++爱好者少安毋躁:-)正文你可能会觉得下面的图表比较有意思,因为它是分别用三种编程语言(Ruby, Java, C/C++)写的埃拉托色尼质数过滤算法(译注:Sieve of Era

2006-08-30 11:36:00 42481 161

翻译 性能调优--永远超乎想象 (原文最终修订于 2006-08-28 晚上11:48:38)

多年以前,我在开发一个C++的应用程序。我的同伴Jim Newkirk(当时的)过来告诉说,我们的一个公用函数运行得非常的缓慢。这个函数是用来转换二进制的树结构数据为普通文本,并存储到文件中的。(这是在XML出现之前,但概念类似于XML) 我审视了这个函数一会儿,发现了一个线性查找算法,于是毫无疑问的将这个线性查找算法替换为二分查找法(译注:binary search),然后就把这个函数交回给

2006-08-28 13:30:00 14390 9

翻译 软件分析 Vs. 架构设计 (原文最终修订于 2006-05-29 下午06:44:14)

何谓软件分析(analyse)?它有没有一个成文的定义?如果你曾读过软件教科书或是著作,就会发现有多少个作者,就有多少种分析的定义。具有讽刺意味的是,我们知道软件分析是必不可缺的,但却没有其真正的定义。一个用来区分软件分析与设计(design)的普遍方法是认为分析指“做什么” ,而设计指“怎么做”。乍听起来很有信服力,很显然,如果能在一开始就知道想要系统“做什么”,那至于系统应该“怎么做”就会

2006-08-24 15:53:00 10851 1

翻译 OO难题在Ruby中有了新解 (原文最终修订于 2006-08-21 凌晨02:27:38)

单一职责原则(SRP)认为,一个类应该有且只有一个改变的原由。换个说法,一个类中的方法应该出于同样的一种原由而改变,它们不应被不同原由所驱使,而导致朝着不同的方向改变。举个例子来说,考虑一下以下的Java类:class Employee{  public Money calculatePay() {...}  public void save() {...}  public String

2006-08-23 16:23:00 4486 1

翻译 如何让Ruby代码更简练?!(原文最终修订于 2006-08-18 下午02:42:25)

你可以用它来做什么呢?请阅读...我四前年曾接触过Ruby,就是为了看看这个语言到底什么样。我用了它一段时间然后就把注意力放到Fit,Fitness(译注1),和Java/.Net上了。然而最近,随着Rails的兴起,我又开始关注Ruby了;也开始认识到这是一个多么高效、亲和的语言。学习一项事物最有效的还是通过实战学习。所以我决定从一个Ruby的Kata(译注2)开始,这样就可以反复去练习

2006-08-22 10:26:00 6202 1

翻译 TDD的三条军规 (原文最终修订于 2006-04-09 晚上09:45:01)

这些年来,我喜欢用下面这三条简单的规则来描述测试驱动开发: 除非这能让失败的单元测试通过,否则不允许去编写任何的产品代码。 只允许编写刚好能够导致失败的单元测试。 (编译失败也属于一种失败) 只允许编写刚好能够导致一个失败的单元测试通过的产品代码。 对于任何功能,一定要从编写它的单元测试开始;但是到了原则2,你就不能再为那个单元测试写更多内容。只要一出

2006-08-17 16:52:00 9368 6

翻译 微软眼中的TDD (原文最终修订于2006-06-11,下午03:20:52)

微软最近发布了测试驱动开发的方案(点击这里)。这些方案与Visual Studio 2005 Team System的使用密不可分。老实说,我对他们试图去把他们自己的工具与TDD(译注1)绑定起来并不觉得什么。他们是个商业机构,而这就是一种商业行为。让我觉得什么的,是他们如此完全的曲解了TDD,甚至反其道而行之。如果工具不支持TDD(它的确不能)的话,他们不应该声明它能够。在最近一篇blog(

2006-08-16 16:56:00 6153

翻译 用Rails将敏捷Web开发进行到底! (原文最终修订于2006-08-14,凌晨03:49:12)

前些天我正好有时间学习Rails(译注1)。我就去了《用本主义程序员》的(译注2)网站(http://www.pragmaticprogrammer.com),而且购买了beta版的《用Rails进行敏捷web开发》。我于是就开始了阅读。这本书从初阶开始(就像大多数好书一样)。它指导你通过Ruby(译注3)和Rails的安装和设置,而且还提供给你一些简单的示例和测试让你可以确保你所运行的是正确

2006-08-14 20:23:00 6308 4

翻译 敏捷开发的精神内涵 (原文最终修订于2006-08-11 上午10:49:50)

从根本上来说,所有的敏捷开发实践,诸如TDD(译注1)、结对编程(译注2)、持续集成(译注3)和重构(译注4),都有一个统一的观念--永远不被阻拦。这就好像是一个优秀的撞球选手总要确保他的每一次击球都能为下一击创造好机会,每个优秀的敏捷开发者每有一点进展也都要确保下一步。一个优秀的敏捷开发者决不会走出一步,然后就无法再有进展,或是让别人没办法再有进展。那你怎么知道你的进度停下来了呢?如果你无法

2006-08-11 15:45:00 4107 1

翻译 架构设计--仅是软件开发之第二大影响力?! (原文最终修订于2006-07-01 凌晨03:20:31)

SDWest2006(译注1)对我来说是个有趣的大会。我除了星期三之外(当时我正飞往费城参加一个客户会议 == 因此错过了Jolt颁奖部分)每天都在演讲。我也参加了一些谈话和会议;其中最引人关注的是Mike Cohn的计划与估算的谈话。我的两个谈话都是半天的关于Ood原则的导引。这些谈话都参与的非常好,现场反映也很热烈。这里是我谈话的几份演讲稿: 类设计之高级原则    在OO设计中

2006-08-10 17:44:00 2701 1

翻译 Java枚举,酷! (原文发表于2006-04-25 下午01:13:48)

当我头一次看到Java 5中的新登场的枚举类型(译注:enum)时,我还是持怀疑态度的。这些枚举类型允许你定义成员和方法(译注:variables and methods),甚至是抽象方法!你能用它来做什么呢?嗯,我现在已经找到了这个问题的答案。(至少是部分的)在评阅和改进外面的一些源码的过程中,我有机会找到了一组用来代表月份的私有静态常量(译注:static final constants)

2006-08-10 14:55:00 6918 4

翻译 跋涉于代码的泥潭之中 (原文发表于2006-06-02 下午04:45:17 )

我正在写一本叫做净化代码(译注:Clean Code)的书 。这本书里满载了各种代码示例;有的较短,有的较长。在我看来,如果你想教人如何写出好代码,你就必须给他看很多代码示例。一个我的评论者抱怨说, 他觉得不是一定要“跋涉于代码的泥潭之中”。这种说法让我感到吃惊,这种话以前我也听过很多次,不知道源自何处;不过这倒是很容易解释通,如果我们“跋涉”于代码的泥潭之中,那么代码一定如同泥沼、湿地、或是

2006-08-09 11:31:00 3419 4

翻译 绿色护腕 (原文发表于2006-06-10 下午01:14:07 )

我已经收到了很多的请求,是关于测试优先(译者注:TEST FIRST,一种敏捷开发所倡导的优秀方法)绿色护腕(译者注:Green wrist-band,一种优秀敏捷人的荣誉)的。如果你也想要一个的话就发信过来,要贴邮票,写上你自己地址:Green Wrist BandObject Mentor Inc.1800 Nations DriveSuite 215Gurnee, IL,

2006-08-08 17:40:00 2105 1

翻译 当心:工具的美貌 (原文发表于2006-06-29 下午12:12:33 )

我这周在芬兰的弗罗茨瓦夫(译者注:Wroclaw)为一位客户作咨询。(那是过去叫布雷斯劳(译者注:Breslau)的德国城镇,而现在发VRAHT-swahf的音。)这周末我拜访了这里的考古博物馆,就在城镇的广场旁。当我观看这博物馆的时候,我被那些创造箭、钩、斧子、罐、篮子和所有其他日常生活中的物品的远古人类的细心所震撼了。这些物品肯定曾花去几小时、几天、或是几周去创建;而且那个时代的人民也认为所花

2006-08-02 15:17:00 2436 2

翻译 敏捷人还没接受它么?!(原文发表于2006-07-31 上午07:27:59 )

本文是对Cedric发贴的回复 一些赞成Cedric提出了一些不错的观点,尤其是指出了如果敏捷开发的“传道士们”只使用教条的论点,而不去接触那些遇到实际的问题的真实的开发者,那么他们就没法再将敏捷进行到底。早期的接受者已经采纳了;而下一代是比较摇摆不定的,想影响他们我们就必须用更强的与现实开发紧密相连的论点。然而,我非常不赞成Cedric所提的关于“风险的考量”的观点。从我的观

2006-08-01 15:03:00 5657 6

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除