教堂与集市笔记归纳

不得不承认,自己选择社区有一部分原因是因为这本书。虽然现在还没做出什么贡献,但是终归要向这个目标迈进的,以下部分是在书中摘录,你我共勉
  1. 每一个好的软件的起因都是挠到了开发者本人的痒处Every good work of softWare starts by scratching a developer’s personal itch.
  2. 好的程序员知道写什么,伟大的程序员知道改写(和重复使用)什么。Good programmers know what to write.Great ones know what to rewrite(and reuse)。
  3. “计划扔掉一个,无论如何你都会扔掉一个的”(《人月神话》)。”Plan to throw one away,you will ,anyhow”.
  4. 如果你有正确的态度,有意思的问题会找上你。If you have the right attitude ,intesting problems will find you .
  5. 当你对一个项目失去兴趣时,你的最后的职责是把它交给一个称职的继承者。When you lose interest in a program,your last duty to it is to hand it off to a competent successor.
  6. 把用户像合作者来对待是通往快速改进代码和有效调试的最佳通道。Treating your users as co-developers is your least-hassle route to rapid code improvement and effective debugging.
  7. 早发布,常发布,听取用户的意见。Release early. Release often. And listen to your customers.
  8. 如果beta测试者和合作开发者的群体足够大的话,几乎每个问题都会快速显现,会有人轻而易举的把它解决。Given a large enough beta-tester and co-developer base, almost every problem will be characterized quickly and the fix obvious to someone.
  9. 好的数据结构和差的代码要比反过来搭配好的多(即差的数据结构和好的代码)Smart data structures and dumb code works a lot better than the other way around.
  10. 如果你以“最有价值的资源”来对待你的beta测试者,他们会以成为“最有价值的资源”来回应你的期望。If you treat your beta-testers as if they’re your most valuabel resource, they will respond by becoming your most valuable resource.
  11. 仅次于拥有好的主意的是认识到来自用户的好主意,有时候后者会更好一些。The next best thing to having good ideas is recongizing good ideas from your users.Sometimes the latter is better.
  12. 最有突破和创新的方案常常来自于意识到你把问题的模型弄错了。Often, the most striking and innovative solution come from realizing that your concept of the problem was wrong.
  13. 设计达到完美的时候,不是增加得不能再增加了,而是减少得不能再减少了。PerfectionI(in design)is achieved not when there is nothing more to add , but rather when there is nothing more to take away.
  14. 任何一个工具都应该达到预期的用处,但是一个真正棒的工具会带来你从来预期不到的用处。Any tool should be useful in the expected way, but a truly great tool lends itself to uses you never expected.
  15. 在写关口软件的时候,花点功夫尽可能不要干扰数据流——除非用户强迫你,永远不要扔掉任何数据。When writing gateway software of any kind,take pains to disturbthe data stream as little as possible–and never throw away information unless the recipient forces you to !
  16. 当你的语言离图灵穷尽还差得远的时候,给语法加点料是有帮助的。When your language is nowhere near Turing-comlete,syntatic sugar can be your friend.
  17. 一个安全系统的安全性取决于它保守秘密的安全性。小心伪秘密。A security system is only as secure as its secret.Beware of pseudo-secrets.
  18. 当你开始进行社区建设的时候,你需要能够呈现一个可行的前景,你的程序不一定要能够工作的非常好,他可以是粗糙的,问题多多的,不完整的,缺少文档的。但是它必须是可以运行的和能够说服潜在的合作者在可预见的将来进化成为真正漂亮的东西。
  19. 要解决一个有意思的问题,首先你要找到一个你觉得有意思的问题。To solve an interesting problem,start by finding a problem that is interesting to you.
  20. 如果说一个项目已经延期,那么向项目组里添加程序员的做法会导致已经延期的项目更加延期。
  21. 如果开发的协调者有一个至少和互联网一样好的通讯媒介,并且懂得如何不通过强迫来领导,多个头脑将会不可避免的优于单个头脑的价值。Provided the development co ordinator has communications medium at least as good as the Internet,and knows how to lead without coercion,many heads are inevitably better than one.
  22. 开源文化会最终胜利,或许不是因为合作在道德上正确或者软件“劳役”在道德上错误。而只是因为开源社区可以在一个问题上投入多几个数量级的技术工时,闭源世界无法赢得这场进化式的军备竞争。
文章目录
  1. 1. 不得不承认,自己选择社区有一部分原因是因为这本书。虽然现在还没做出什么贡献,但是终归要向这个目标迈进的,以下部分是在书中摘录,你我共勉
,