关于开源的金玉良言

  1. 好的软件作品,往往源自于开发者的个人需要。
  2. 优秀的程序员知道写什么,卓越的程序员知道改写(和重用)什么。
  3. “计划好扔掉一个吧,迟早你会这么做的。”(Fred Brooks,《人月神话》第11章)
  4. 如果你有正确的态度,有趣的事情自然会找到你。
  5. 当你对一个程序不再感兴趣时,你最后的责任就是把它交给一个可以胜任的接棒者。
  6. 把你的用户当成开发合作者对待,如果想让代码质量快速提升并有效排错,这是最省心的途径。
  7. 早发布,常发布,倾听用户的反馈。
  8. 如果有足够多的beta测试者和合作开发者,几乎所有问题都会很快显现,然后自然有人会把它解决。

    beta测试即“β测试”,和“α测试”相对应。对于一个即将面世的软件产品,α测试是指软件公司组织内部测试人员模拟各类用户行为对产品(此时为α版本)进行测试。随后的β测试是指软件公司组织各类典型用户在日常工作中实际使用(此时产品为β版本),并要求用户报告错误及异常情况。最后软件公司再对β版本进行改错和完善。

  9. 聪明的数据结构配上愚笨的代码,远比反过来要好得多。

  10. 如果你把beta测试者当做最珍贵的资源对待,他们就会成为你最珍贵的资源。
  11. 仅次于拥有好主意的是,识别来自用户的好主意,有时后者会更好。
  12. 通常,那些最有突破性和最有创新力的解决方案来自于你认识到你对问题的基本观念是错的。
  13. “设计上的完美不是没有东西可以再加,而是没有东西可以再减。”
  14. 任何工具都应具备预期内的功能,但一个伟大的工具能给你带来预期外的功能。
  15. 写网关类软件时,尽可能不要干扰数据流,而且绝不要扔掉信息,除非接收方强迫你这么做。
  16. 当你的语言还远不是图灵完备(Turing-complete)的时候,语法糖会让你受益良多。

    语法糖(Syntactic Sugar,或译为语法糖衣)是英国计算机科学家Peter J.Landin发明的术语,是指为计算机语言添加某种不会影响语言功能的成分,但却使其更易用一些,目的是增强代码可读性,避免出错的机会。

  17. 系统的安全性只取决于它所拥有的秘密。谨防虚假的秘密。

  18. 想要解决一个有趣的问题,先去找一个让你感兴趣的问题。
  19. 如果开发协调者有一个至少像Internet这样好的沟通媒介,并且知道如何不靠强制来领导,那么多人合作必然强于单兵作战。

 

摘自《大教堂与集市》

posted on 2015-04-13 22:14  Memory4Young  阅读(399)  评论(0编辑  收藏  举报

导航