读书笔记3-代码大全

在过去我读书时,我经常喜欢通读全书,跟随着作者的思路和章节,记下自己的笔记,以便日后可以通过笔记回顾书中内容。我特别关注一些核心概念和技术,经常重复阅读相关的章节,以便掌握和深入理解这些概念和技术。

虽然全书的阅读是一个好习惯,但是这样做可能会导致一些问题。首先,过于全面的阅读对于许多程序员来说是不现实的,也许会花费很长的时间但最终无法弄清其中一些核心的概念。其次,有一些章节或内容可能与读者的背景或需求无关。此外,对于重复、复杂的内容,反复阅读可能会变得乏味和无效。

 第一步,浏览。首先浏览一遍全书,阅读目录、简介、前言和摘要等内容,了解全书的大致内容和结构,找出自己最感兴趣的章节。

第二步,选择。基于第一步的浏览,选择自己感兴趣的章节,并集中注意力阅读这些章节,了解作者想要传达的核心信息和思想。

第三步,深入学习。通过对重点章节的深入学习,逐渐掌握阅读材料所涉及的核心概念和技术。通过这种方式,我们可以更快地掌握全书的核心内容,减少阅读冗余和浪费时间的情况,并且可以避免阅读过程中的乏味和无效。

总之,只有将阅读过程分层次进行,结合自己的实际需求,才能提高阅读的效率,并真正获得所需要的知识。

一、重构

1.软件演化类型

  • 在修改中软件的质量要么提高,要么恶化。
  • 软件演化的基本原则就是,演化应当提高程序的内在质量。

2.重构的理由

  • 代码重复:DRY,Do not Repeat Yourself;
  • 冗长的子程序:很少会用到长度超过一个屏幕的子程序。改善方法是提高其模块性-增加定义完善、命名准确的子程序,让他们各自集中力量做好一件事;
  • 循环过长或嵌套过深;
  • 内聚性太差的类;
  • 拥有太多参数的参数列表;
  • 变化导致多个类的相同修改;
  • 同时使用的相关数据并未以类的形式组织;
  • 过多使用基本数据类型;
  • 某个类无所事事;
  • 中间人对象无事可做;
  • 子程序明明不恰当。只要看到某个子程序命名有问题,就应该立即着手修改。
  • 注释被用于解释难懂的代码。不要为拙劣的代码编写文档——应当重写代码;
  • 程序中的一些代码似乎是在将来的某个时候才会用到。对未来需求有所准备的代码并不是编写大量空中楼阁式的代码,而是尽可能将满足当前需求的代码清晰明白的表现出来,使未来的程序员理解这些代码到底完成了什么功能,没完成什么功能,以便根据他们的需求进行调整。

3. 数据级的重构

  • 用具名常量代替神秘数值;
  • 使变量的名字更加清晰且传递更多信息;
  • 用函数代替表达式;
  • 将基础类型转化为类。如果一个基础类型需要额外的功能或者额外的数据,那么就应该把基础类型转化为类,并添加你所需要的行为;
  • 将一组类型码转换为类或者枚举类型;

4.语句级的重构

  • 分解布尔表达式
  • 将复杂布尔表达式转换为命名准确的布尔函数;
  • 在嵌套的if-then-else语句中应该一知道答案就返回,而不是赋值给一个返回值

5.子程序级重构

  • 提取子程序或者方法
  • 将冗长的子程序转换为类
  • 合并相似的子程序,通过参数区分他们的功能

6 类接口的重构

  • 将成员函数放到另一个类中
  • 将一个类变为两个类。如果一个类中的成员函数完成两种截然不同的功能,将这样的类转换为两个类
  • 对于不能修改的类成员去掉其set函数。如果一个成员在对象被创建时设置,之后遍不再允许修改,那么删除其set函数,而是在构造函数中进行初始化。

7 系统级重构

  • 使用工厂函数而不是简单的构造函数;
  • 用异常代替错误代码,或者反其道而行之,取决于你的错误处理策略,请确保代码使用了标准的错误处理方法。

8. 安全的重构

  • 保存初始代码。要保证你还能回到代码的初始状态。
  • 重构的步伐请小些。这样才能理解所做修改对程序的全部影响。
  • 同一时间只做一项重构。在进入到下一项重构之前,对代码进行重新编译和测试。
  • 把要做的事情一步步列出来。写出一份重构列表能够让你在修改时保持思路连贯。
  • 设置一个停车场。把你需要在未来进行而现在可以暂且放在一遍的修改工作记录下来。
  • 利用编译器警告信息。把编译器的警告级别设置为最严格。
  • 重新测试。应该把重新测试作为修改代码工作的补充。
  • 检查对代码的修改。如果说第一次运行程序时检查代码是必要的,那么接下来修改代码的过程中,时刻检查代码则更为必要。另外,应该把简单的修改当作复杂的修改对待。
  • 根据风险级别来调整重构方法。尤其是对于有一定风险的重构,谨慎才能避免出错。

9.重构策略

  • 在增加子程序的时候重构
  • 在添加类的时候重构
  • 在修补缺陷的时候重构
  • 关注于易出错的模块
  • 关注高度复杂的模块
  • 在维护环境下,改善你手中正在处理的代码。如果你正在维护某部分代码,请确保代码在离开你的时候比来之前更健康
  • 开发阶段的重构是提高程序质量的最佳时机。

、代码调整技术(性能)

1.逻辑

  • 在知道答案后停止判断;
  • 按照出现频率调整判断顺序,让运行最快和判断为真可能性的判断首先执行;

2.循环

  • 将判断外提。如果在循环运行时某个判断结果不会改变,你就可以把这个判断提到循环的外面。
  • 合并。就是把两个对同一组元素进行循环的操作合并在一起,减少循环开销。
  • 尽可能减少在循环内部做的事情。如果可以在循环外面计算某些语句,而只在循环内部使用计算结果,那么就把该部分语句放在循环外面。

、管理构建

1.鼓励良好的编码实践几种技术

  • 给项目的每一部分分派两个人
  • 逐行复查代码
  • 要求高级技术人员给代码签名
  • 安排一些好的代码示例给别人看
  • 强调代码是公共财产
  • 奖励好代码
  • 一份简单的标准:“我必须能理解并阅读这个项目里的所有代码”

2.编程工具

①源代码工具

  • IDE
  • diff比较器
  • merge工具
  • 源代码美化器
  • 代码模板

②重

代码生成器

打造自己的编程工具

posted @   南北啊  阅读(8)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 无需6万激活码!GitHub神秘组织3小时极速复刻Manus,手把手教你使用OpenManus搭建本
· C#/.NET/.NET Core优秀项目和框架2025年2月简报
· Manus爆火,是硬核还是营销?
· 终于写完轮子一部分:tcp代理 了,记录一下
· 【杭电多校比赛记录】2025“钉耙编程”中国大学生算法设计春季联赛(1)
1 2 3
4
点击右上角即可分享
微信分享提示