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

    《程序员修炼之道:从小工到专家》阅读笔记03

    第六章 当你编码时

    1. 靠巧合编程应该避免靠巧合编程,避免依靠运气和偶然的成功。而要深思熟虑的编程。
    2. 怎样深思熟虑的编程:1)总是意识到你在做什么2)不要盲目的编程3)按照计划行事4)依靠可靠的事物5)为你的假定建立文档6)不要只是测试你的代码,还要测试你的假定7)为你的工作划分优先级。把时间花在重要的方面。
    3. 重构:周遭所见,皆是变异与衰败。代码需要演化:他不是静态的事物!不要对改动犹豫不决
      代码若具有如下特征,则应该考虑重构:1)重复2)非正交的设计3)过时的知识4)性能
      就其核心而言,重构就是重新设计:怎样进行利大于弊的重构:1)不要试图在重构的同时增加功能2)在开始重构之前,确保你拥有良好的测试。 (尽可能经常运行这些测试,如果你的改动破坏了任何东西,你很快可以知道)
    4. 易于测试的代码:单元测试< 测试你的软件,否则你的用户就得测试 >

    第七章 在项目开始之前

    1. 需求只坑完美,不是在没有什么需要增加,而是在没有什么需要去掉时达到的。不要搜集需求而要挖掘他们!与用户一同工作,以像用户一样思考!
    2. 解开不可能解开的谜题
      解开谜题的关键:确定加给你各种约束,并确定你确实拥有自由度
       < 不要在盒子外思考,要找到盒子 >
      我们可以先确定最为严格的约束,然后再在其中考虑其余约束很多时候,对需求的重新诠释能让整个问题全部消失 ------ 就像戈尔迪斯结
    3. 等你准备好:有时犹豫的人会得以保全
      < 倾听反复出现的疑虑,等你准备好再开始 >
    4. 规范陷阱:编写程序规范就是吧需求规约到程序员能够接管的程度的过程
      结构化程序设计 ------ 拥有长久的生命

    第八章 注重实效的项目

    1. 注重实效的团队:有了注重实效的开发者,让他们工作在能够发挥自身能力的环境中,他们很快就会发展并提炼他们自己的、有效的团队动力机制
    2. 无处不在的自动化:软件开发人员常常会使用最糟糕的工具来完成工作
    3. 无情的测试:
      < 早测试,常测试,自动测试 >
      < 要到通过全部测试,编码才算完成 >
      < 通过”蓄意破坏“测试你的测试>
      < 测试状态覆盖,而不是代码覆盖 >
      < 一个 bug只抓一次 >
    4. 全部都是写好记性不如烂笔头:把英语当做又一种编程语言

    个人感受:

    靠巧合编程应该避免靠巧合编程,避免依靠运气和偶然的成功。而要深思熟虑的编程。

    看到这里,我不禁想问,套用模板的编程算是巧合编程吗?答案是肯定的,因为没有经过你自己的深思熟虑的编程都是巧合编程。就像老师说的那样,总有一天你接到一个项目,你找不到对应的模板时,你该怎么办?

    代码的重构:不要对改动犹豫不决,我自己本身就有这样的问题,废了九牛二虎之力码出来一个程序,老师却提出了新的要求,这时候我就开始犹豫了,怎么改动呢?从哪里开始改呢?

    代码若具有如下特征,则应该考虑重构:1)重复2)非正交的设计3)过时的知识4)性能
    就其核心而言,重构就是重新设计:怎样进行利大于弊的重构:1)不要试图在重构的同时增加功能2)在开始重构之前,确保你拥有良好的测试。 (尽可能经常运行这些测试,如果你的改动破坏了任何东西,你很快可以知道)
  • 相关阅读:
    实现一个简单的ConnectionPool
    并发连接MySQL
    C#里面滥用String造成的性能问题
    String.IndexOf
    C#代码中插入X86汇编
    正确理解Handle对象
    orleans发送广播消息
    log日志方法
    PHP 批量插入数据
    逻辑漏洞小结之SRC篇
  • 原文地址:https://www.cnblogs.com/xueqiuxiang/p/13071180.html
Copyright © 2011-2022 走看看