Brave Ostrich


肖鹏是ThoughtWorks中国公司的咨询师,目前关注于架构模式、敏捷软件开发等领域,并致力于软件开发最佳实践的推广和应用。
  博客园 :: 首页 ::  :: 联系 :: 订阅 订阅 :: 管理

置顶随笔

     摘要: 敏捷中国大会首日回忆。 关于敏捷衡量。 关于响应式改进。 关于跟Kent Beck的聊天。  阅读全文

posted @ 2009-09-12 00:00 勇敢的鸵鸟 阅读(726) | 评论 (3)编辑

     摘要: 本文发表在《程序员》2009年第四期(总第100期) 本文列出了我在平时发现和积累的在面向对象编程中一些常见的“不够面向对象”的情况。   阅读全文

posted @ 2009-07-04 13:07 勇敢的鸵鸟 阅读(2943) | 评论 (35)编辑

     摘要: 也说面试的火爆是让我震惊的。既然标榜为一个有使命感的程序员,我觉得有责任再写一篇关于多态的文字。我无意再次挑起非技术的争议。所以关于也说面试的回复并不包含在本文中。本文是一篇纯技术文字,里面有任何谬误请不吝指出。我思考再三题目中保留了“再说面试”四个字,让整个事情有始有终,因为我说过要写一篇这样的文章。但是阅读的时候请抛开面试这个背景。 我的文章大多枯燥无味我推荐你阅读Allen Lee或者idior的文章,或者Google更多的文章(使用多态或者Polymorphism作为关键字)。   阅读全文

posted @ 2007-07-22 23:39 勇敢的鸵鸟 阅读(3238) | 评论 (27)编辑

     摘要:
因为项目特别紧张,很久没有时间看书和更新博客了,就像欠了一屁股的债。很早以前(今年二月份)就跟Ron说要把这个系列翻译成中文,一直没有开始。就从它开始吧! Ron Jeffries是一位资深的程序员。很多人都是资深程序员,但是多数人在他面前都显得太年轻了。他“has been a systems developer for more years than most of you have been alive”(他做系统开发人员的时间比大多数人的年龄都大)。 本系列(我也是边看边翻)讲述了Ron和Chet开发一个项目的详细过程。在邮件列表上有非常多的讨论,如果有可能我也会把讨论的内容贴过来。但是相信我,至少我会把这个系列翻完。   阅读全文

posted @ 2007-06-17 15:43 勇敢的鸵鸟 阅读(502) | 评论 (0)编辑

     摘要: GOF的23个模式中与Factory相关的有两个,一个是Factory Method,另一个是Abstract Factory模式。还有一个是Simple Factory,是深入浅出设计模式这本书定义的。这里面没有Factory这个模式,很多人都没有注意到这一点,混淆了Factory和Factory Method。  阅读全文

posted @ 2006-12-03 16:14 勇敢的鸵鸟 阅读(1799) | 评论 (19)编辑

     摘要:
GOF巨作《Design Patterns》毫无疑问是设计模式的圣经,然而“从风格上讲,该书与其说是为学习者而写作的教程范本,还不如说是给学术界人士看的学术报告,严谨有余,生动不足。”〔孟岩〕本系列将《Design Patterns》中文版(结合英文版)中重要句子按句解析,作为自学笔记也给新接触设计模式的朋友一点借鉴。文中原文以粗体标出。我自己不明白的地方以〔TODO:〕标出,希望高手多多指点。
  阅读全文

posted @ 2006-12-02 21:48 勇敢的鸵鸟 阅读(2033) | 评论 (5)编辑

     摘要: Strategy模式虽然强大,而且极其常用,但是本身没有任何神秘和高深而言。Strategy模式背后的技术就是多态,背后的思想就是封装变化。封装变化其实还隐藏了一点就是把变化的(Strategy)和不变的(Context)分离。  阅读全文

posted @ 2006-07-02 21:37 勇敢的鸵鸟 阅读(849) | 评论 (3)编辑

     摘要: 本文首先解释了Bridge模式的定义。然后通过一个例子,一步步将Bridge模式实现。
Strategy模式是从N变化为1+N,原来有N个类但是这N个类里面只有某个算法的区别,我们把N个算法提取出来就变成了1个抽象类(不要理解成Java中的abstract class,而是这个抽象类表示一个概念)和N个实现类(同理,不要理解成对前面那个抽象类的实现,而是辅助实现抽象类的某个功能的一个继承体系)。注意这里只有一个继承体系。

而Bridge模式是从M×N变化为M+N,原来系统中有M×N个类,但是从中可以提取出N个算法(Implementor)和M个主体(Abstraction)。这样构成了两个继承体系,N个Implementor构成一个继承体系,M个Abstractor构成一个继承体系。两个继承体系可以独立的变化。
  阅读全文

posted @ 2006-06-17 22:29 勇敢的鸵鸟 阅读(1512) | 评论 (8)编辑

2009年12月20日

posted @ 2009-12-20 22:53 勇敢的鸵鸟 阅读(98) | 评论 (0)编辑

2009年12月8日

     摘要: /Files/DesignPatterns/Archive.zip图片  阅读全文

posted @ 2009-12-08 22:52 勇敢的鸵鸟 阅读(116) | 评论 (0)编辑

2009年11月16日

     摘要: Training: Agile Requirement Ma... - Google Docs培训分为三个部分:第一部分讲解敏捷需求管理的基本知识。测试一。(15')第二部分介绍20个具体建议。测试二。(45')第三部分练习——新水手书店。(是否需要使用罗枫组的例子?)(30')准备:1.现将客户分为三个小组,尽量每个小组包括:开发、测试和PO等多种角色。2.准备故事卡,每...  阅读全文

posted @ 2009-11-16 08:30 勇敢的鸵鸟 阅读(130) | 评论 (0)编辑

2009年9月12日

     摘要: 敏捷中国大会首日回忆。 关于敏捷衡量。 关于响应式改进。 关于跟Kent Beck的聊天。  阅读全文

posted @ 2009-09-12 00:00 勇敢的鸵鸟 阅读(726) | 评论 (3)编辑

2009年7月4日

     摘要: 本文发表在《程序员》2009年第四期(总第100期) 本文列出了我在平时发现和积累的在面向对象编程中一些常见的“不够面向对象”的情况。   阅读全文

posted @ 2009-07-04 13:07 勇敢的鸵鸟 阅读(2943) | 评论 (35)编辑

2009年6月18日

     摘要: Test  阅读全文

posted @ 2009-06-18 22:14 勇敢的鸵鸟 阅读(158) | 评论 (0)编辑

2009年3月28日

     摘要: 今天是第二次参加北京OpenParty。今天的话题贡献者比较多,投票筛掉了一半,其中有些是很不错的话题。不过,我只参加了其中一个,而且是非技术的——科学松鼠会。参加完他们的Session之后,大家意犹未尽地从游戏厅转到大厅继续讨论,然后又被从大厅赶到会议室讨论。长途跋涉,不亦乐乎!科学松鼠会是一个非常有意思的组织,他们试图通过一种比较公众比较喜闻乐见的方式进行科普工作。活动很多,影响也不小——惭愧...  阅读全文

posted @ 2009-03-28 21:54 勇敢的鸵鸟 阅读(244) | 评论 (0)编辑

2009年3月7日

     摘要: 我靠,我可是一大堆东东都在上面啊!据说有人幸运的看到了这个页面: Temporary service interruption Flickr上有一张更大的图: 我就只看到了Page Load Error。不过,我可以正式体验一下Google Offline Documents了。  阅读全文

posted @ 2009-03-07 22:22 勇敢的鸵鸟 阅读(204) | 评论 (1)编辑

2009年2月10日

     摘要: 昨天的月亮据说是最圆的,就在这个月圆之夜,伟大的CCAV用一场大火烧掉了自己的小鸡鸡,验证了自己作为太监媒体的身份。在公公们眼里,这样一场伟大的庆祝当然不应该有任何杂音。 也许昨天晚上,篝火表演时间太长(据说搞到了凌晨),直到中午CCAV才睡醒,并表示真诚的盗窃。记住,不能发图片,要看只能到AV上自己看。  阅读全文

posted @ 2009-02-10 21:08 勇敢的鸵鸟 阅读(297) | 评论 (2)编辑

2009年2月6日

     摘要: 我确信,一切理论都是暂时的,唯有事实的总汇才具有永久的价值,因此,在我的种种理论由于丧失了用处而和那些习俗及信仰一样承受废止的命运的时候,我的书,作为一部古代习俗和信仰的集录,会依然保留其效益。 ——《金枝》第三版第九卷,费雷泽  阅读全文

posted @ 2009-02-06 17:12 勇敢的鸵鸟 阅读(166) | 评论 (0)编辑

2009年1月30日

     摘要: 说实话在翻译POSA的时候,我不想用这两个词:并发、并行,而宁愿保留原文。但是对于一本讲分布式计算的书,如果我如此固执,里面会多出大量的英文——虽然现在已经是很多了。实际上,我在译文中也做了灵活的处理。比如,“client and server run concurrently”就译成了“客户端和服务器并行运行”。Concurrency译成并发容易给人“同时启动”的印象。至于二者的区别可以参考Su...  阅读全文

posted @ 2009-01-30 22:50 勇敢的鸵鸟 阅读(351) | 评论 (0)编辑

     摘要: 摘自图灵论坛,Steven Mark的高论 和几位老师讨论过 "using" 和 "by using", 他们的分别在於写作手法上的分别. 在这两句例句中的 "using" 和 "by using" 是一样的. 不过 "by using" 是明确地指出 "Users can express themselves" 是透过"Using clips, lines from the movies" 来达...  阅读全文

posted @ 2009-01-30 09:12 勇敢的鸵鸟 阅读(1887) | 评论 (0)编辑

2009年1月21日

     摘要: usability and availability  阅读全文

posted @ 2009-01-21 22:56 勇敢的鸵鸟 阅读(285) | 评论 (0)编辑

2009年1月8日

     摘要: 今天启动Maxthon报错:Ordinal Not Found。 思索之,盖前日Review他人代码,为测试运行下MFC42D.dll从网上。 取System32下的MFC42.dll与MFC42u.dll,置于Maxthon目录中,解之。 幸甚,遂记之! Google之。 同样的现象可能有两种原因,对应两种解决方案。 From: http://www.cryer.co.uk/brian/win...  阅读全文

posted @ 2009-01-08 22:07 勇敢的鸵鸟 阅读(351) | 评论 (0)编辑

2009年1月2日

     摘要: 本书介绍很多模式可以从这里(http://www.enterpriseintegrationpatterns.com/)找到,特别是有些模式在POSA中仅仅提到而没有做详细介绍的模式比如Message Filter、Process Manager等等。  阅读全文

posted @ 2009-01-02 22:50 勇敢的鸵鸟 阅读(211) | 评论 (0)编辑

2009年1月1日

     摘要: 今天去台湖北京国际图书城转了一圈。因为来去匆匆,基本上没有怎么看书,主要逛了逛图书博物馆。内容还是不错的,但是内容的组织顺序似乎不是太好,没有严格按照时间来组织。貌似是按照文字载体来编排的,但是对于我这样的外行人看来还是有点不舒服。最不舒服的还不是内容安排,而是内容展示第一章的介绍栏就出现了严重的标点符号错误(见下图),这在这种展览中实在是不应该出现的。 注意最后一段的引号使用,这是一个非常明显的...  阅读全文

posted @ 2009-01-01 17:54 勇敢的鸵鸟 阅读(321) | 评论 (0)编辑

2008年12月28日

     摘要:
在本书(尤其是第16章)中反复出现了“Critical Section”和“Critical Region”两个术语。其实这两个术语的含义是一样的,都是表示一段不可重入的代码段。
  阅读全文

posted @ 2008-12-28 17:14 勇敢的鸵鸟 阅读(187) | 评论 (0)编辑

2008年12月24日

     摘要:
一个客户只需要9个人月的项目,在我们的帮助下却用了36个人月,如何定义成功引发激烈讨论。 客户价值、客户培训、团队建设、流程改进、软件交付,咨询项目的成败如何衡量? “为客户实现价值”与“实现客户价值”是否总是一致?公司的价值和利益是否缺位? 期待你的想法!
  阅读全文

posted @ 2008-12-24 22:27 勇敢的鸵鸟 阅读(432) | 评论 (0)编辑

2008年12月16日

     摘要: 未完待续,本文目前仅用于跟图灵论坛上的同学交流。 参考文章可以从这里(http://files.cnblogs.com/DesignPatterns/Act-Obj.pdf)下载。 Active Object要解决的问题 举例来说,在如下图所示的系统中,我们希望Gateway两端的Supplier和Consumer通信的过程中,Gateway的进程不能阻塞(must not block waiti...  阅读全文

posted @ 2008-12-16 17:56 勇敢的鸵鸟 阅读(223) | 评论 (0)编辑

2008年12月11日

     摘要:
初试敏捷.
  阅读全文

posted @ 2008-12-11 09:36 勇敢的鸵鸟 阅读(2073) | 评论 (9)编辑