zoukankan      html  css  js  c++  java
  • 《程序员的修炼之道 从小工到专家》 读书笔记

    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的一个重要方法。

    十九、文本操纵

    二十、代码生成器

              

  • 相关阅读:
    Spark_总结五
    Linux sudo 命令使用简介
    Linux nohup命令应用简介--让Linux的进程不受终端影响
    Linux 修改linux的SSH的默认端口
    Linux 多个vi、vim进程编辑同一文件时的临时文件问题
    Linux 系统下用源码包安装软件
    Linux 配置iso系统盘为本地yum源
    profile,bashrc,.bash_profile,.bash_login,.profile,.bashrc,.bash_logout浅析 Part 2
    Linux profile1,bashrc,.bash_profile,.bash_login,.profile,.bashrc,.bash_logout浅析 Part1
    Linux 目录结构学习与简析 Part2
  • 原文地址:https://www.cnblogs.com/1102whw/p/7216174.html
Copyright © 2011-2022 走看看