zoukankan      html  css  js  c++  java
  • 《程序员修炼之道》读后感02

    第二章 注重实效的途径

      重复是把双刃剑,一方面加强程序效率以及增加编程的简易程度,但另一方面却是造成Bug的重要原因,这也是计算机中的自相矛盾一方面。

      作为程序员,我们总是在收集知识并且加以利用,对我们的知识加以规范,对我们的知识进行运用,但知识的不稳定以及快速的更新导致我们必须也不断跟进,这是很令人头疼的。如果我们的东西过时了,就意味着我们必须把我们之前学习到的全部更新,这么一个过程繁琐而令人困恼。所以在软件工程中,复用是一项重要的工作,复用别人的代码,编写自己的知识库,这些都是复用。但一旦我们自己的知识库过期了,或者找的别人的代码是旧版本的,这就造成一些问题;或者代码本身已经不符合要求了,就必须对代码进行整体的修改。这个过程就是对于复用负面效果。

      书中吧重复分为强加的重复——环境要求的重复,无意的重复——开发者没意识到的重复,无耐性的重复——偷懒的结果,开发者之间的重复,这些重复大多发生在代码和文档中,因为语言问题和自动生成问题而产生的一些重复,注意这些多余的东西能提高实效。

      另外书中提供了一种正交的系统设计方式,所谓正交就是设计良好的不同功能的代码之间是相互正交的——也就是互不相干的。如果一个系统会相互干扰,那么运行的时候显然是极其混乱的,正交的好处也显而易见——提高生产率与降低风险。提高生产率是因为对于系统的改动都变为了局部的改变,把测试时间降到最低,另外促进复用,提高各个组件的融合。将低风险是因为有问题的代码被隔离了起来,系统更加健壮了。

      这些技巧我在平常的开发过程里面经常会使用,同时揭示的问题也十分尖锐,所以在今后的的学习过程中要多注意这些问题。

      

  • 相关阅读:
    正则化方法:L1和L2 regularization、数据集扩增、dropout
    xgboost原理及应用
    机器学习系列------1. GBDT算法的原理
    c++ stl容器set成员函数介绍及set集合插入,遍历等用法举例
    STL中的set容器的一点总结
    2016-12-17 新浪博客服务器挂掉了,所有博客页面都无法打开
    Centos 6.5 下php5.6.2 的编译安装
    Docker的基本组成
    Docker简介
    基于Dubbo框架构建分布式服务(集群容错&负载均衡)
  • 原文地址:https://www.cnblogs.com/limitCM/p/11070397.html
Copyright © 2011-2022 走看看