《程序员修炼之道》摘录

  • 我们,采集的只是石头,却必须时刻展望未来的大教堂。 ——采石工人的教条
  • 如果你确实遇到了一个你未曾见过的术语,请不要轻易跳过它。 ——注重实效的程序员
  • 大多数人发现自己很难接受变化,有时是出于好的理由,有时只是因为固有的惰性。 ——石头汤与煮青蛙
  • 软件的熵:使你的项目保持整洁。
  • 在所有的弱点中,最大的弱点是害怕暴露弱点,相反的,作为注重实效的程序员需要诚实和坦率。
  • 对自己的代码负责,必须分析风险是否超出了你的控制。
  • Provide Options. Don’t Make Lame Excutes.
    提供各种选择,不要找蹩脚的借口。
  • 不要害怕提出要求,也不要害怕承认你需要帮助。
  • 有些花木茁壮成长,另一些注定要成为堆肥。
  • Use Tracer Bullets to Find the Target.
    用曳光弹(在黑暗中发光的代码)找到目标。
  • 你应该预先指定一份应急计划,如果磁盘垮了,带走了你所有的源码,而你没有做备份,那是你的错。
  • Don’t live with Broken Windows.
    不要容忍破窗户。
  • 如果你发现你所在团队和项目的代码十分漂亮——编写整洁,设计良好,并且很优雅——你就很可能会格外注意不去把它弄脏,就像那些消防员一样。
  • Be a Catalyst for Change.
    做变化的催化剂。
  • 请求原谅比获取许可更容易。 ——“石头汤”,“士兵”,“村民”
  • 大多数软件灾难都是从微不足道的小事情开始的。
  • Remember the Big Picture.
    记住大图景。
  • 写出漂亮代码的七种方法(可读性强,有意义的名称+减少方法的长度):
    1. 尽快结束if语句。
    2. 如果只是简单的布尔运算(逻辑运算),不要使用if语句。
    3. 使用空白,这是免费的,在实际编写代码的过程中,会很容易的发现在什么地方加入空白,这不但美观而且让读者易懂。
    4. 不要使用无谓的注释。
    5. 不要在源文件中留下已经删除的代码,哪怕标注了。
    6. 不要有太长的代码。
    7. 不要在一个功能(或者函数内)有太多的代码行。
  • 要用有意义的命名,不管是变量还是方法或者类等等,让人一眼看去,就明白这个东西是做什么的,它比注释管用,因为注释得另外去维护。
  • 不要用缩写,凡是命名都写全称,不要怕名字长。
  • 限制方法长度,在代码规范中强制要求,一个方法不能超过10行,听起来不可思议,其实很容易,参考:《重构》。
  • 减少缩进,例:if里有多层if的话不如用if 加 switch试试。
  • 多条件组合的,简单进行重构,例如:
    不要return aaa&&bbb,改为:
if(aaa){ return true;}
if(bbb){ return false;}
//看起来很傻的写法,其实可读性很强,是好代码。
  • 时间,技术和急躁都在合谋反对我们。
  • 你可以训练你自己,编写出足够好的软件——对你的用户、对未来的维护者、对你自己内心的安宁来说足够好。
  • 你所制作的系统的范围和质量应该作为系统需求的一部分规定下来。
  • Make Quality a Requirements Issue.
    使质量成为需求问题。
  • 知道何时止步,不要因为过度修饰和过于求精而毁损完好的程序。
  • 知识上的投资总能得到最好的回报。
  • 程序员的只是资产:程序员所知道的关于计算机技术和他们所工作的应用领域的全部事实,以及他们的所有经验。
  • 如何管理我的知识资产:
    1. 严肃的投资者定期投资(学习新知识)——作为习惯
    2. 多元化是长期成功的关键
    3. 聪明的投资者在保守的投资和高风险,高回报的投资之间平衡他们的资产,好的管理风险,不要把你所有的技术鸡蛋放在一个篮子里
    4. 投资者低买高卖,以获取最大回报,多学习新兴的技术
    5. 应周期性地重新评估和平衡资产
  • Insert Regularly in Your Knowledge Portfolio.
    定期为你的知识资产投资。
  • Critically Analyze What You Read an Hear.
    批判地分析你读到的和听到的。
  • 与古鲁打交道的礼节与教养:
    1. 明确具体地表达你想要问什么
    2. 小心而得体地组织你的问题,记住:你是在请求帮助
  • 我相信,被打量比被忽略要好。
  • 规划你想说的东西,写出大纲,然后问自己,是否讲清楚了?
  • 交流:知道你想要说什么——了解你的听众——选择好时机——选择风格——让文档美观——让听众参与——做倾听者——回复他人
  • 你说什么和你怎么说同样重要。
  • 重复的危害:不要在系统各处对知识进行重复。
  • 正交性:不要将同一个知识分散在多个系统组织中,打包,共同调用。
  • 善于估计时间完成任务,能更好的生存下去,时间与资源都是有限的。
  • DRY原则:Don’t Repeat Yourself.
  • 为变量写一个文档
  • 请勿复制、粘贴代码:你现在可能节省几秒钟,以后可能损失几小时。
  • 维持正交性,代码的灵活性:
    1. 在没有必要的情况下不让你的代码与其他代码相联系,实现隔离。
    2. 避免使用全局数据
    3. 避免编写相似的函数
  • 可撤销性:如果某个想法是你唯一的想法,再没有什么比这危险的事情了
  • 语言的界限,就是一个人的世界的界限。

你可能感兴趣的:(读书)