透明思考


Transparent Thoughts


  1. 迈向敏捷的第一步

    [以下内容来自一封私人邮件]

    从最容易实践的技术层面上,我推荐你依序做以下事情:

    0. 源代码配置管理(CVS或者SVN,很可能你们已经有了)。

    1. 严格的签入/签出管理制度:做任何任务之前必须checkout/update到最新版本,完成任务之后必须立即checkin到代码库。

    2.自动化构建:用Ant/Maven/NAnt/Rake/Make……编写项目构建脚本,并把构建脚本也checkin到代码库。自动化构建的目标:在一台新的机器(安装了一些基本的平台例如Java)上checkout完整的源代码之后,能够用一条命令完成编译、链接、打包、部署等所有步骤,得到一个可工作的软件。

    3. 持续集成:安装持续集成服务器(推荐CruiseControl.rb),让它监视你的项目,在每次checkin发生之后立即执行自动化构建脚本,确保项目能够完整构建。如果构建失败,所有工作必须停止,修复之后才能继续checkout/checkin。

    4. 加入测试:在发现bug时,首先编写测试来重现这个bug;修复bug之后应该保证测试通过。把测试代码也放进代码库,并在构建脚本中执行所有测试。此时你的持续集成环境应该也开始执行测试。

    5. 测试驱动:开始实现任何新功能之前,首先编写测试来描述自己要做的事情,然后编写代码让测试通过。

    如果你能够成功做到以上5个(或者说,6个)步骤,你就迈出了成功的第一步,软件的质量会有效提升,响应需求变化的能力也会有效提升。那时我们可以继续探讨以后的步骤。


  2. 英雄汇,会英雄

    2007软件技术英雄会上,见到很多老朋友和新朋友。CSDN,尽管对它有种种意见和挑剔,但仍然认为是一个伟大的事业。蒋涛最令我佩服的,便是这份坚持。自己相信正确的事,就一直坚持去做,不断地去影响别人。多年的坚持终于有了今天的成就。

    五年前的情景就像还在昨天。那时侯老师表扬唐琦,说台湾二十五六岁的年轻人往往没有这份干练。转眼间我自己都已经走向二十七岁,唐琦还是那么活跃。扪心自问,虽然没有做成什么事,至少还是坚持了自己,没有做亏心事,算是对得起自己吧?但毕竟还是没有做成什么事,也是因为不够坚持自己的想法,只白白浪费了那些好点子。

    终于见到了仰慕已久的李日贵(Jini)。周老师说他和我长得像,没料到果然有几分神似——表情都够SUI。听他描述台湾的种种,动心想去旅游一番了。

    明天一早去爬长城。上次去八达岭是十多年前的事了,该去充充好汉,和众多英雄一道。


  3. 给Typo装上Rich Editor

    找到一个rich editor,给我的Typo装上,现在编辑文章方便多了。

    还是自己做blog比较好,需要什么可以自己动手。别了,BlogDriver,我想这次是真的搬迁了,因为完全可以自己控制。

    (说实话,希望不需要我再修改什么。如果还需要的话,就得架一个svn才行。)


  4. 第八号当铺

    某人说,如果真有第八号当铺,一定会去典当。

    幸亏没有。

    因为有边际效用递减律。多多的幸福,因为边际效用递减,会想要拿去换别的东西。用爱情去换钱,用身体去换事业成功。因为没有一般等价物也没有市场参考价,交换的时候根本不知道自己到底有没有亏、亏了多少。

    更糟糕的是还有永远无法战胜的熵增加定律。交换得来的东西渐渐的变得没有价值了,想要换回去的时候,已经不能再换,或者只能狠狠地折个价。

    所以,这样的当铺,大概只能让绝大多数人感到更遗憾、更后悔、更不幸福吧。就像改变历史的能力一样。

    只有当下才是值得珍惜的。日日是好日。


  5. CruiseControl.rb 1.1 Released

    CruiseControl.rb发布了1.1版本。主要的特性包括:

    • 如果Builder出错,项目会继续轮询build。
    • Build页面上左边的历史列表只显示最近30个,更多的build放进下拉列表框。
    • 可以用daemon模式运行(不支持Windows)。
    • 升级到Rails 1.2.3。

    还有,我的名字出现在“核心团队”名单里 :>