08 2008 档案
摘要:软件构建学问中总有一些理论上很美好,但是一使用就面目全非的东西,比如传统的瀑布模型。敏捷里很多被称之为思想的东西,恰恰没有太高深的理论,但都是一些实践的艺术,强调动手做而不是用理论论证。TDD就是这样一种东西,单纯去研究它的理论,分析它的优点和缺点没有任何意义,因为它本身就是一个很单纯的东西,再对其抽象也得不出象“相对论”那样深厚的理论。问题是你做了没有?支持TDD的人有没有从实践中真正体会到了它的优点,对TDD不屑一顾的人是否通过实践验证了自己的看法,而不是简单的人云亦云? 我第一次实践TDD是在做“TMS 配置数据转换工具”时进行的,在那之前其实已经注意TDD的很长时间了,但是一直无从下.
阅读全文
摘要:上学的时候有一道题目一直困扰着我,那就是厨师摆盘子问题,问题的描述是这样的:厨师的所有盘子都放在一个架子上,每天工作结束他都要将盘子按照从小到大的顺序排好,问题是架子不太稳,如果一次拿出一个或几个盘子,架子可能要倒掉,所以他必须只能从一边翻动盘子,由于他只有两只手,所以只能用两只手将拿起的盘子一起翻转。问题是当给出一个杂乱的盘子序列时,如何以最小的翻转次数将其排序。 当时用穷举的方法解决了这个问题,但是看到很多资料都说此类最优解的问题还可以用动态规划法解决,但是我一直没有找到分解最优子问题的方法,所以只好放弃了。前一段时间看《编程之美》,其中“一摞烙饼问题”那一章提到的一摞烙饼问题其实和厨师.
阅读全文
摘要:自己动手编译firefox,thunderbird 方法补充 去年,我在博文《自己动手编译Mozilla Firefox和Thunderbird》介绍了mozilla旗下的两款开源软件firefox和thunderbird在Windows平台上的编译方法,不过从去年年底开始,mozilla为了简化编译方法,将所有编译firefox和thunderbird的工具集成为一个统一的工具mozilla-build,并用MingW32代替了Cygwin,这样一来,编译firefox和thunderbird就简单多了,不过在编译过程中还是有一些意外情况需要处理,本为就简单介绍一下新的编译方法。我使用的的.
阅读全文
摘要:《编程之美》一摞烙饼问题探讨 这类问题我最早遇到是厨师摆盘子问题,就是厨师要把一个架子上的盘子按照从大到小排列,只能象本题中翻动烙饼的方式翻动盘子,当时我给出了这样的答案:int FindMaxIdx(int *pDishes, int nBegin, int nEnd){ int i,maxIdx = nBegin; for(i = nBegin + 1; i <= nEnd; i++) { if(pDishes[i] > pDishes[maxIdx]) { maxIdx = i; } } return maxIdx;}void Revert(int *pDishes, int
阅读全文
摘要:上个月到福州路“扫”书店,本来想买几本敏捷和TDD的书,确意外发现了《编程之美》这本书。一开始被吸引是因为书名下面的副标题:微软面试。。。。,因为2005年毕业的时候曾有一次失败的微软面试,所以抱着事后看客的心态拿起来翻翻,这一翻就决定立刻买下这本书。从第一章开始,每一章的例子都很吸引我,虽然有一些题目早知道解法,但看到有更巧妙的方法时还是忍不住击节,要是但是面试的时候能先看看这本书就好了,嘿嘿。夸归夸,缺点还是要提的,本书的勘误之多也是出类拔萃的,拿到书时就看到里面夹了一张勘误表,当时没在意,到看的时候就发现不对劲了,上网一查,原来还有一张更长的勘误表,呵呵。 书中第9页给出了一个能够根据.
阅读全文

浙公网安备 33010602011771号