《程序员的修炼之道 从小工到专家》 读书笔记

  1. 并不存在容易的答案,也不存在最佳的解决方案,一种东西,无论是工具还是语言,还是OS,只是在某些特定情境下更为适应。
  2. 你不应该局限于任何特定的技术,而是应该拥有足够广博的背景和经验基础,以便在特定的情境下选出最佳的解决方案。背景源自于对计算机科学基本原理的理解,经验来自于广泛的项目。
  3. 优秀的程序员不仅要完成工作还要完成的漂亮。他们能够超越直接的问题去思考,他们对他们所做的每件事情负

第一章  注重实效的哲学

 

一、   我的代码让猫给吃了

1.在所有的弱点中,最大的弱点就是害怕暴露自己的弱点。

2.优秀的程序员对自己的职业生涯负责,并且不害怕承认无知和错误。出现问题的时候要想办法提供解决方案而不是借口。

3.在你告诉别人坏消息之前,是否还有其他可以试一试的办法。不要说事情做不到,要说明能够做什么来挽回局面。

 

二、软件的熵

      1.不要让你的软件中出现破窗效应。

 

三、   石头汤与煮青蛙

  1. 不要像青蛙一样只留心大图景,要持续不断的观察周围发生的事情,而不只是你自己在做的事。

 

四、   足够好的软件

  1. 许多用户宁愿在今天用上有一些“毛边”的软件,也不愿等待一年后的多媒体版本。

 

五、   你的知识资产

  1. 知识上的投资总能得到最好的回报。
  2. 你的知识和经验是你最重要的职业财富。随着你知识价值的降低,对于你的公司或客户来说,你的价值也在降低,我们要阻止这样的事情发生,绝不让他发生。
  3. 你必须定期为你的知识资产投资,即使投资量很小,习惯自身和总量一样重要。
  4. 你知道的不同事情越多,你就越有价值。
  5. 每年至少学习一种新语言,每季度至少阅读一本技术书籍,也要阅读非技术书籍。
  6. 与世隔绝可能对你的职业生涯是致命的,打听一下你们公司以外的人都在做什么。
  7. 批判的思考你所听到的和得到的,你需要确保你的资产中的知识是准确的。
  8. 在网络时代,许多人似乎已经忘记了满是研究资料和工作人员的真实图书馆。

六、   交流

  1. 我相信,被打量比被忽略要好。
  2. 交流的基本步骤:明白你要说什么、了解交流的对象、选择适当的时机、选择风格(口头、纸面)、让文档美观一些、让听众参与文档的制作、把会议变成对话,做倾听者。
  3. 你说什么和你怎么说同样重要。

 

 

 

 

第二章  注重实效的途径

七、重复的危害

      1.DRY原则:Don’t repeat yourself。系统中的每一项知识都必须具有单一、无歧义、权威的表示。

 

 

八、正交性

      1.“正交性”是来自于几何中的术语,如果两条直线相交成直角,他么就是正交的。这两条直线相互不依赖,你如果沿着某条直线移动,投影到另一条直线上的位置不变。计算技术中,“正交性”指的是两个事物高度解耦,互不影响。如,改动界面不会影响数据库,改动数据库不会影响界面。

      2.维持正交的几个策略:

           2.1让代码保持解耦

           2.2避免使用全局数据,每当代码使用全局数据时,他都把自己与共享该数据的其他组件绑定在了一起。

          

 

九、可撤销性

      1.如果某个想法是你唯一的想法,再没有什么比这更危险的事情了。

      2.要把决策视为写在沙滩上的,而不要把他们刻在石头上,大浪随时可能到来,把他们抹去。

      3.不存在最终决策。

十、曳光弹

      1.曳光弹和原型开发很相似,接到需求以后,先快速开发出一个用户能用的东西来,

十一、原型与便签

  1. 你可以选择通过原型来研究任何带有风险的事物。
  2. 原型制作是一种学习经验,其价值并不在于所产生的代码,而在于所学到的经验教训,那才是原型制作的要点所在。

十二、领域语言(没看懂说的是什么,好像是关于编译原理的一些知识)

  1. 语言的界限就像一个人世界的界限。

十三、估算(项目管理)

     

 

 

第三章  基本工具

十四、纯文本的威力(用纯文本来保存数据)

  1. 作为一个优秀的程序员,我们的基本材料不是木头,不是铁,而是知识。

十五、shell游戏

  1. GUI的好处是所见即所得,缺点是所见即全部所得。

十六、强力编辑(选择一款好用的编辑器)

十七、源码控制

  1. 代码的版本管理很重要就像是一个巨大的撤销和重做按钮。

十八、调试

  1. 调试就是解决问题。
  2. 在技术方面,你应该专注于修正问题而不是发出指责。
  3. 最容易欺骗的人是一个人自己。
  4. 在开始查看bug之前,要确保你是在能够成功编译的代码上运行工作,而且没有警告。把编译器的级别尽可能的调的最高。
  5. 开始修复bug的最佳途径是让其再现。
  6. 不要假定,要证明。
  7. 当你遇到让人吃惊的bug时,除了只是修正它以外,你还要确定先前为什么没有找出这个bug,考虑你是否需要进行单元测试或者是其他测试。
  8. 参数检查是防止bug的一个重要方法。

十九、文本操纵

二十、代码生成器

 

          

 

posted @ 2017-07-21 09:55  学计算机的人绝不认输  阅读(354)  评论(0编辑  收藏  举报