首页 > 编程语言 >《程序员修炼之道:从小工到专家》读后感第一篇(10月)

《程序员修炼之道:从小工到专家》读后感第一篇(10月)

时间:2022-10-29 10:24:57浏览次数:35  
标签:读后感 10 重复 代码 注释 程序员 文档 文件

这几周在紧张的准备期中考试,在读书上进度有所缓慢

本次读后感如下:

重复的危害

  给予计算机两项自相矛盾的知识,是James T. Kirk舰长(出自Star Trek,“星际迷航”——译注)喜欢用来使四处劫掠的人工智能生命失效的方法。遗憾的是,同样的原则也能有效地使你的代码失效。
  我们觉得,可靠地开发软件、并让我们的开发更易于理解和维护的惟一途径,是遵循我们称之为DRY的原则:系统中的每一项知识都必须具有单一、无歧义、权威的表示。

重复是代码中最坏的味道,大家可以回想一下,有多少Bug是因为重复代码漏改引起的,修改重复代码又浪费了多少时间。这么坏的东西一定要深恶痛绝!书中归纳了几种常见的重复类型:

强加的重复(imposed duplication)。开发者觉得他们无可选择——环境似乎要求重复。强加的重复细分为四类:

  • 信息的多种表示。举个例子,QT的语言源文件是(.ts文件),会由QT工具编译为.qm文件提供给应用程序使用。现在PC千牛把这两个文件都提交到了SVN,而不是只提交.ts文件然后动态生成.qm文件。因为漏提交.qm文件已经出过几次文案显示异常的Bug。解决这类重复很简单,保证单一数据源,其它的表示方式都通过根据这个数据源自动生成。办法是有了,但真能保证做到吗?
  • 代码中的文档。DRY法则告诉我们,要把低级的知识放在代码中,它属于那里;把注释保留给其他的高级说明。否则,我们就是在重复知识,而每一次改变都意味着既要改变代码,也要改变注释。注释将不可避免地变得过时,而不可信任的注释比完全没有注释更糟。逻辑清楚的代码自身就是最好的注释,除非是诡异的商业需求、不得已的临时解决方案抑或是在困难问题前屈服后使用的非常规方案。所以只有糟糕的代码才需要许多注释。
  • 文档与代码。程序员们通常都有乖乖写文档的经历,但往往很难坚持,总有一天代码更新了,因为各种各样的理由,文档没有同步。所以在准备提供文档时请下定决心与做出承诺:保证要与代码进行同步的更新。
  • 语言问题。就像C++的.h和.cpp文件,声明与实现就在重复着相同的内容。为了达到模块实现与接口分离的目的,就会出现这类重复。没有简单的技术手段避免,好在信息不一致编译期间会有错误。理想的做法是接口文件能通过实现文件自动生成。

标签:读后感,10,重复,代码,注释,程序员,文档,文件
From: https://www.cnblogs.com/lklyouhouhou/p/16838143.html

相关文章

  • 周六900C++班级2022-10-29 广搜
    7588:农夫抓牛农夫知道一头牛的位置,想要抓住它。农夫和牛都位于数轴上,农夫起始位于点N(0<=N<=100000),牛位于点K(0<=K<=100000)。农夫有两种移动方式:1、从X移动到X-1或X+......
  • 浙江理工大学入队200题——10E
    问题E:零基础学C/C++114——直接插入排序题目描述编一C程序,该程序可以测试多个测试组,每个测试组它能读入一串整数并对它们进行从小到大直接插入排序,同时输出排序时对这......
  • 前端项目实战102-postgrest下拉框搜索接口衍生
    getSelect:(resource:any,params:any,filter?:any)=>{constdata=newURLSearchParams(filter)consturl=`${PostgrestUrl}/${resource}?s......
  • 前端项目实战105-isCompoundKey查询
    ["id"]76search_manufacture_sizeconstisCompoundKey=(primaryKey:PrimaryKey):Boolean=>{returnprimaryKey.length>1;}判断数组长度是否大于1返回值Boole......
  • UG NX 10.0快速入门及应用技巧
    《UGNX10.0快速入门及应用技巧》1.切换经典开发环境  文件->实用工具->用户默认设置->用户界面  或者在菜单栏中  文件->首选项->用户界面  布局:功......
  • 浙江理工大学入队200题——10D
    问题D:零基础学C/C++113——并列排名题目描述在我们参加的各种竞赛中,允许并列的排名方式是经常遇到的。例如有四名选手的成绩分别为50、80、50、30分,则80分的选手为第......
  • CH32F103C8T6调试口Disable后的修复办法
    1.问题描述   因为软件编程,将CH32F103的debugdisable了,无法通过仿真器下载程序。   2.修复  2.1解决思路    利用厂家给的串口ISP进行下载(HU......
  • 沁恒CH32V003F4P6 开发板上手报告和Win10环境配置
    CH32V003沁恒最近推出的低价CH32V003系列,基于青稞RISC-V2A内核,48MHz主频,2KBSRAM,16KBFlash,工作电压兼容3.3V和5V.主要参数如下SystemClock:48MHzSRAM:2......
  • 将1000内素数放入数组
    #include<stdio.h>intmain(){inti=0;intj=0;inttemp=0;intarr[1000]={};for(i=2;i<1000;i++){ for(j=2;j<i;j++){ if(i%j==0){ break;}} if(......
  • 2022年 10月28 日 学习第一天
    注释书写注释是非常好的习惯,必须坚持下去、 平时写代码一定要注意规范 Java中的注释有三种单行注释——在新的一行,用//后面跟着注释。只能注释一行文字多行......