自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

透明思考@CSDN

思考着的程序员,程序员的思考

  • 博客(355)
  • 资源 (2)
  • 收藏
  • 关注

原创 Ruby完全读书指南

(本文发表于《中华读书报》2006年7月19日)   看到这样一个题目,大概很多读者会记起这样一张图片:左边堆着高高一摞关于Java的技术书籍,右边则是区区两本关于Ruby的。炮制 这张图片的用意显而易见,不过随着Ruby和Rails的急速窜红,Ruby图书也开始如同雨后春笋般纷纷问世——这也意味着学习者们需要花越来越多的时 间和精力来挑选适合自己的书了。   也许Ru

2006-07-21 08:41:00 18757 16

原创 海外读者评《应用Rails进行敏捷Web开发》

Martin Brown:Ruby逐渐成为一种流行的通用语言,但它最重要的影响还是在web开发领域……也即Ruby on Rails造成的影响。《应用Rails进行敏捷Web开发》是一本完善的Ruby on Rails指南。http://www.freesoftwaremagazine.com/articles/book_review_ruby_on_railsAgylen:迄今为止这是唯一一本

2006-07-21 08:23:00 3935

原创 《应用Rails进行敏捷Web开发》上市

Agile Web Development with Rails,Dave Thomas and DHH,电子工业出版社,林芷薰译。今天中译本开始上市,应该很快就可以在书店和dearbook买到了。全书目录  出版社为它创建的Blog代译序:敏捷的奇迹样章试读:第四章立竿见影,第十三章深入Rails,第二十一章保护Rails应用

2006-07-20 11:43:00 3201 2

原创 Selenium 0.7.1 Is There

Almost, actually. For those who solicitous, please check-out from the svn repository and give it a try.0.7.1 have a few exciting features along with it. Element Highlighting. Highlight the curr

2006-07-19 08:50:00 4600 1

原创 CSDN的RoR论坛开版

http://community.csdn.net/Expert/ForumList.asp?typenum=1&roomid=315实际上我不喜欢论坛这种形式。不过在没有别的形式出现之前,先在论坛玩玩吧。关于Ruby/RoR的问题可以来这里讨论,我尽量回答。 

2006-07-06 17:03:00 3462 2

原创 [讨论]谈谈Ruby on Rails的性能问题

关于Ruby/Rails的讨论仍在团结友好而卓有成效地进行着。纯月摘要翻译了一篇“Rail开发中常见的性能问题”,但他对这篇文章有着明显的、无意或有意的误读。在前面列举的5个注意事项中,后3项:3 repeating identical computations during request processing(在处理请求过程中反复做同样的计算操作)4 reading too often

2006-06-28 11:16:00 7068 2

原创 Ruby on Rails真实案例三则

(正如前一篇文章里所许诺的,这里将列出三个采用RoR开发的真实案例。以下内容出自《应用Rails进行敏捷Web开发》一书第22章。)22.7 案例分析:每天运行的Rails要证明Rails的伸缩性,最好的办法莫过于考察一个确实有效伸缩的应用程序。在这一节中,我们将考察三个真实应用遇到的性能问题,以及它们如何解决这些问题。37signals开发的Basecamp(www.basecamp

2006-06-27 16:07:00 7985 3

原创 [讨论]Ruby/Rails是虚妄还是真实

纯月部落有这么一篇文章,内容大抵是对Ruby on Rails表示不屑一顾、以及对吹捧RoR表示愤慨的。总体而言,作为一个尚未走红的技术,就能让人感到愤慨,这很不容易。就好像去年发生的一场讨论,可以看作是从另一个角度对Ruby/Rails的褒奖。(“负暄琐话”也参与了这场讨论。CSDN Blog现在的讨论氛围是比较热烈的。)纯月在底下继续进行的讨论中这样说:“如果你是实际作项目的,我打赌,你绝对不

2006-06-27 16:01:00 7924 16

原创 Ruby/Rails书讯

书评:应用 Rails 进行敏捷 Web 开发 (from IBM developerWorks)Addison-Wesley Professional Ruby Book Series Announced这个系列有三本书,Professional Ruby on Rails Developers Guide、The Ruby Way和Performance Rails。我们的Obie担任编

2006-06-27 15:00:00 2971

原创 《应用Rails进行敏捷Web开发》样章试读

这是第一本关于Ruby on Rails的著作。全书主要内容分为两大部分。在“构建应用程序”部分中,读者将看到一个完整的“在线购书网站”示例。在演示的过程中,作者真实地再现了一个完整的迭代式开发过程,让读者亲身体验实际应用开发中遇到的各种问题、以及Rails如何有效解决这些问题。在随后的“Rails框架”部分中,作者深入介绍了Rails框架的各个组成部分。尤为值得一提的是本部分的后几章:作者先

2006-06-23 14:39:00 5002 1

原创 敏捷的奇迹——《应用Rails进行敏捷Web开发》代译序

(更多关于本书的内容,请看出版社为它创建的Blog:敏捷的奇迹)捧在你手上的这本书算得上一个奇迹:仅仅一年前当我向出版社推荐它时,编辑们还担心这样一本关于“冷门主题”的著作是否能够在国内受到关注,甚至是否值得去 引进翻译它;而当芷薰刚刚完成这个第一版的翻译,编辑们已经迫不及待地把尚未正式出版的第二版塞到了他的手上。当然,你知道,这都是因为Rails。在过去的一年中,Rails创造了太多

2006-06-20 18:24:00 5235 8

原创 小语种介绍:LISP/Scheme

自从裘宗燕教授翻译了《计算机程序的构造和解释》(Structure and Intepretation of Computer Programs,SICP)第二版之后,这本MIT计算机系的编程入门教材开始越来越多地受到中国开发者的关注。同时受到关注的,还有它所介绍的函数式编程(Functional Programming),以及其中范例所使用的Scheme语言。时光倒转到30年前,1975年,

2006-06-11 14:11:00 9924 11

原创 用Selenium测试web应用

问题1:当用户在网上商店购物时,一次完整的购买流程需要用户进行好几个步骤的操作(包括选择商品、填写订单信息、选择支付方式、确认订单等),涉及四到五个页面以及数十个类的协作。如何在开发过程中始终确保该流程能够正确无误、畅通无碍?问题2:客户提出需求:在显示货物列表时,应该首先按货物名称排序,名称相同的货物再按照价格排序。我们已经实现了这一功能,并且有单元测试作为保障,但如何让客户看到我们的成果?

2006-06-11 14:09:00 16833 13

原创 敏捷方法中的开源工具

(本文发表于《程序员》2006年第6期)也许由于软件行业固有的“高科技”特性(或者说,软件人固有的顾影自怜),软件项目的管理和过程控制中从来就不缺少形形色色的工具。在一些大型的、“正规的”软件企业中,配置管理要通过ClearCase,软件设计要使用Rose画出一大堆精美的图形,压力测试要用LoadRunner来跑……当软件公司的老板们痴迷于“形式化管理”与漂亮的报表和文档时,这些昂贵的商业工具

2006-06-11 13:59:00 8107 4

原创 火花:敏捷释放软件价值

题记:何谓“火花”所谓“火花”,我是指一个灵感、一个漂亮的句子、一次心灵的震动,这样稍纵即逝的“点子”。那也许是Martin Fowler的一次演讲,也许是从一个技术词汇联想到另一个德语的单词,或者是郭晓想出的一句口号(也就是本文的题目)。已经有太多次,我为这样的“火花”而激动不已。其中的一些火花变成了我的文章,另一些只催生了blog上的只言片语,更多的火花就这样稍纵即逝了。要抓住火花,需要一种支

2006-06-08 01:36:00 3160

原创 我需要敏捷吗:不必关心敏捷的六大理由

当“敏捷”日益成为整个软件业的热门词汇,作为优秀的开发者、成功的项目经理,我们是否有足够的理由不去关心敏捷?我们帮你列出了6个“不必关心敏捷”的理由,以及对这些理由的深入解释。如果这些理由仍然不能打消你对敏捷的兴趣,首届“敏捷中国”开发者大会即将来到你的身边。你现在就可以报名参加本次大会,与Martin Fowler和众多敏捷专家面对面交流。 理由1:项目需求? 客户即上帝!

2006-05-16 10:18:00 5741 19

转载 技术沙龙预告:用开源软件改进开发过程

http://linux.ccidnet.com/pub/html/tech/opensource/index.htm难以有效保证质量、难以直观掌握进度,这是众多软件开发团队面临的严峻问题。想要使用管理软件改进开发过程,却又对高额的价钱、过剩的功能望而却步。本次技术沙龙给你提供更好的选择——开源软件!听专家讲座,与专家探讨,学会“用开源软件改进开发过程”。·您将了解到:用Selenium和Crui

2006-04-29 15:16:00 3215

原创 今日上网随便看

最近上网都不是特别方便……看到两则比较有趣的,摘录一下罢了。(原本以为starbucks是可以随便上网的地方呢,原来是收费的,sigh。)太极语言出世----比C++更好的语言 code goover(chain * a,code b)//定义遍历的概念 {  while(a)  {   b;   a=a->next;  } }这个,如果我的记性不是太坏的话,应该就是lambda吧?

2006-04-10 21:41:00 2904

原创 西行漫记(20):一路向北

再过十多个小时,我们就要登上泰航的班机,一路向北,回到北京。已经很想家了,很想很想。想念北三环,想念理工大学的篮球场,想念华联,想念烤鸭、蜀味浓的火锅和富春江的油炸臭豆腐。更不用说,还有时刻挂念的家人,和正在装修的新房。明天晚上,就可以回到家了。这是第一次真正与西方人一道工作——在厦门也有Perryn和Andy,但那毕竟是中国的环境。恶魔正在研究语言学,据说语言规则与思维方式是会互相影响的,我以为

2006-03-30 12:53:00 3845 7

原创 西行漫记(19):毕业了

经过6周的学习,ThoughtWorks University第三期学员今天毕业了。其实要从短短6周的时间学到多少东西,大家都知道是不可能的。更重要的是,我们从世界各地聚到一起,彼此认识,彼此了解。我们中的一些人将在几年之后成为影响整个ThoughtWorks、甚至影响整个社群的重要人物,咱们不是有句老话叫“倘富贵莫相忘”么。而且,很难得的,有6周(加上下周,7周)时间不用忙碌,不用操心,可以重新

2006-03-24 20:55:00 4337 11

原创 西行漫记(18):操作即是数据

在上次的blog里提了这么一句:“其实要多态,还不如在对象里面保存一个变量,变量里面是一段程序,运行到那就把这段程序拿出来eval一下,不比创建几个子类强么”。有读者问这个是什么意思,要我给个例子。其实这个很简单,只要想清楚所有的反动派都是纸老虎……嗯,我是说,所有的操作都是lambda。然后把操作当数据就好了。当然,建立在一个基础上:你使用的语言支持方便地把lambda作为一等公民。class

2006-03-18 13:26:00 3308 5

原创 西行漫记(17):Holi-Day

第一个周末到city market去逛的时候,曾经看到一种彩色的香料,颜色鲜艳着在盆子里堆得高高的,很漂亮。谁曾想,这个漂亮的香料原来是有另外一种用法的……这一天是印度的传统节日Holi,也就是春节,代表着春天来了(讲老实话不知道“冬天”是个什么概念)。这一天大家在office见了面都道一声“Happy Holi",气氛挺祥和。直到……sigh……实在是太疯狂咯……可怜了我的TW中国龙shirt亚

2006-03-17 20:33:00 2965 2

原创 西行漫记(16):C#长得太丑了

几天程序写下来,觉得这C#实在是丑到不能行……这几天一直在战的一个事情,譬如说我把一个接口变成抽象类,好家伙,先得把所有的方法前面加上abstract,然后所有子类的实现方法加上override,一通好改……更可气的是我这个步骤是为了把它分成两个接口,等到分完了抽象类一删除,又得把所有子类上的实现方法去掉override,又是一通好改……这家伙要是搁项目里有十几二十个子类,那工作量是相当大亚~~~

2006-03-17 00:56:00 13811 124

原创 西行漫记(15):重构到模式

今天的问题有点意思:我们有停车场(ParkingLot),还有停车小弟(Attendant)。一个停车小弟要管理多个停车场,然后帮客人把车子泊到有空位的停车场去。然后老板说了,要有不同的策略来选择停车场:有时候要选到空位最多的,有时候要选到车子最少的,大老板的车要停到最贵的,熟客的车要停到最便宜的……熟悉面向对象的程序员第一印象会想到Strategy模式。不过我不是,因为目前不是熟悉面向对象的

2006-03-15 01:27:00 3795 2

原创 西行漫记(14):慌神了

地狱特训第一天。其实很久没有写这样的代码,一堆对象彼此关联互相委派。没有容器,连工厂也没有。于是第一感觉就是很难测试。再赶上NMock用得不熟,最后得到的单元测试实际是把三个对象捏到一起做功能测试。觉得慌了,没有安全感,不知道加上哪块代码会break哪个测试。看看别人似乎也在慌,徐x飞快地改代码,看着测试灯绿了又红了;Michael霸占着键盘,似乎已经没有写新的测试了。这是很好的体验,没有安全

2006-03-14 00:08:00 3209 2

原创 西行漫记(13):Show Time

今天是case study的showcase,每个组负责一个decision point,印度公司的老板和TWU的老师坐在下面听,我们讲。我们这个组选择了轻松搞笑的风格——反正是不会缺严肃主题的。结果我们也是得到笑声最多并且(据我观察)让老板兴趣最大的一组,大成功。就像我在课后总结上写的,相信自己的团队,把球传给他们,相信他们会投篮得分。我们的团队出色得连我自己都感到意外,“Positiv

2006-03-10 22:01:00 2760 1

原创 西行漫记(12):对象,结束与开始

昨天是Object Bootcamp的最后一个session。时间过得真快,一转眼三周都快过去了。object上到最后,让我想起了一件很久远以前的事情:变化点/不变点分析。第一次看到这个概念是在Design Patterns Explained里面,但真正写程序的时候很少真正用这种分析思路,更多的是凭直觉,一眼看过去就决定怎么做。虽然大多数时候的选择大致不差,但常常比较难说清楚为什么要这样做。使用

2006-03-09 19:36:00 4974

原创 西行漫记(11):数字化敏捷

今天做案例分析,分组讨论。一个问题是说,有个大项目第三期工程,时间大概是20个月。由于第二期狂赶进度,拉下很多技术债:糟糕的设计,重复代码,等等。现在要考虑,第三期要不要重新做架构,还是在第二期的基础上接着往上堆。这种类似的问题在国内的论坛就已经讨论过很多次。主张继续堆的说,时间紧任务重,抓紧完成功能交货收钱是要紧;主张重新架构的说,勿在浮沙筑高台,深挖洞才好广积粮,更何况架构改好了代码重构了

2006-03-06 21:12:00 3186 4

原创 西行漫记(10):加利福尼亚男孩

Michael和我住在同一个屋。到印度的第一天晚上,除了接站的老师以外,第一个见到的同学就是他。很热心地介绍房子里的设施,帮着我安顿下来,然后接着等另一个同屋Andrew。成熟的举止不像是刚毕业的学生,从略显羞涩的笑容才看出年轻。我早已知道他了,因为Obie在blog上提到过他。这是个加利福尼亚男孩,似乎他也很自豪这个,每次自我介绍的时候都会强调。印象里面,加州男孩很阳光,又不会像德州人或

2006-03-04 15:29:00 3659 1

原创 西行漫记(9):又见Roy

今天是GOC day:Global Operation Committee(以及各个国家office的老大)跟TWU和TW-India的所有人见面。做完自我介绍,徐x说我的口音听起来有点像印度英语……再次不知道该喜还是该悲……Roy的演讲,照例是从财务报告开始。从生意的角度,每次听他讲财务报告,我都忍不住想笑,因为老是想起《亚科卡传》里面亚科卡做克莱斯勒总裁时说的一句话:“我发现我们的现金账户

2006-03-01 23:46:00 3004 5

原创 西行漫记(8):做客户,不容易

Story Bootcamp上完了,昨天早上的课叫做Release Planning。作为客户当然最好是什么都要,但时间不允许成本不允许。最好的办法不是等待一年半载,等所有feature都到位;而是尽快发布、尽快使用、尽快创造价值、尽快得到反馈。所以,要发布,要快发布。通常一次发布由2至5个迭代构成,Release Planning就是讲怎么规划这2至5个迭代的工作,在0.5到3个月的时间里创造最

2006-02-28 23:24:00 3144 2

原创 西行漫记(7):再论语法糖

在前一个blog里,我这样写道:“今天的object bootcamp再度证明,一切反动派都是纸老虎……嗯,一切面向对象都是语法糖。”读者dongbin提出了一个很有趣的问题:“一切面向对象都是语法糖”是否意味着所有面向对象编程语言都可以形式化的转换为函数式编程语言呢?比如LISP。那么可否通过直接在LISP之上添加语法糖来得到更简洁,强大的语言呢?首先,确实可以“直接在LISP之上添加语法糖”,

2006-02-26 15:10:00 4623 5

原创 西行漫记(6):Diversity

其实Diversity是昨天的课程……参加TWU是我第一次出国,整个就是一次体验diversity之旅。昨天课上作的游戏,按照不同的属性来分组,独处vs扎堆、领导者vs追随者、早起vs晚起……然后就会发现:原来每个人都有那么多不同之处,原来每个人也还有那么多相似之处。所以,open-mind和保持自我,确实都是很重要的……昨天还发现听印度英语有长进,譬如印度老师讲“sort of”,发音大概是“索

2006-02-23 18:30:00 3821 4

原创 西行漫记(5):关于故事的故事

首先,识别典型用户 头脑风暴,找到所有可能用这个系统的人 分类,定义用户角色 给每个角色一个典型用户,给他/她照片和名字然后,定义业务流程 角色->目标->流程 每个步骤作什么?(方框) 不同的决策带来什么不同的结果?(菱形框) 流程图用主动语态,不用被动语态然后,业务流程分块,每一块 小

2006-02-22 20:12:00 3165 3

原创 就“敏捷的迷思与真实”一文答读者问

拙作“敏捷的迷思与真实”于《程序员》杂志2005年第7期发表之后,深蒙读者不弃,提出中肯意见良多。今择其上者,略作解答。为避免这位读者的批评意见被有意无意篡改或删除,特此存照,以供对照参考。拙作原文:“XP 很可能是最为严格的一种 ... 有很多种方法提出“迭代”的理念,但从来没有一种方法把迭代的周期精确到一天 ... 很多方法要求定期 ... 提交源代码,但从来没有一种方法把 checkin/c

2006-02-21 19:37:00 4090 8

原创 西行漫记(4):周末

北京有个马神庙,印度有个牛神庙……牛神庙进去不能穿鞋,光脚走在很烫的地上,有强身健体之效。 从庙里转了一个圈出来,大师傅给我们每人头上点了一个红点点,又赠送了一小束仿佛是茉莉花。一定会有好运气的,嗯嗯。(然则,陶文同学照相的表情咋就这么wx呢?rpwt亚……)晚上,买到了蔬菜和肉,以及油盐辣椒。煮饭,炒了青椒肉丝、番茄鸡蛋和炝炒圆白菜,锅子太小材料不全,太影响发挥了……貌似厨艺严重退化中……战超级

2006-02-19 17:15:00 3146 3

原创 西行漫记(3):敏捷的奥秘

昨天和今天,数节课都是关于敏捷的:迭代开发、迭代管理、adaptive requirements、estimation、stand-up、retrospective……总之,就是这类东西。关于敏捷,冰云的观点我认为很正确:its all about money。客户之所以认可我们的做法,因为他们按时间付钱。所以,他们希望在最近的迭代中完成最重要的功能,把不那么重要的功能先放一放;一旦我们开始迭代

2006-02-16 18:19:00 4535 5

原创 西行漫记(2):上课第一天

第一天的课程应该说是非常轻松的,各种各样的介绍:介绍ThoughtWorks、介绍ThoughtWorks University、介绍ThoughtWorks India、介绍印度的生活,等等。整体而言,印度的生活固然是比较奇怪(对我们这些外来者而言),不过未必很糟糕——尤其是跟中国的小城市比起来。譬如说,每天不请自来的room cleaner确实吓了我一跳,但每天有人帮忙收拾房间还算是件不错的事

2006-02-14 18:43:00 5268 11

原创 西行漫记(1):班加罗尔印象

当地时间晚上10点左右来到班加罗尔海关,便得到了一个surprise——不知道究竟算“惊异”还是“惊喜”:海关的哥们叫我们在入境登记表上填当地的联系地址和电话,刚打开电脑来准备查印度office的信息,另一个哥们过来说“关掉关掉”,然后直接叫我们过去了。这件小事大概可以看作一个象征,代表着印度人的生活态度。班加罗尔的交通是超级混乱的,各种小车、摩托车,再加上被称为rickshaw的三轮出租车,

2006-02-12 18:28:00 6340 5

原创 海滩上的思想者

On Beach海滩上的思想者每个星期一,每个ThoughtWorker的Lotus Notes都会收到这样一封邮件: Timesheets are due This is just a reminder that timesheets are due by midnight

2006-01-14 12:55:00 10550 13

敏捷改进巡查计划方案

组织进行敏捷改进时需要检查的事项和检查方式

2009-10-26

持续构建状态提醒声音集锦

好玩的声音,适合用来做构建失败的提醒声音

2009-10-14

空空如也

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

TA关注的人

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