首页 > 其他分享 >《代码整洁之道》阅读笔记一

《代码整洁之道》阅读笔记一

时间:2022-12-17 22:45:28浏览次数:43  
标签:注释 函数 重构 代码 笔记 之道 bug 整洁

最近看了《代码整洁之道》,所以产生了一些感受

在编程工程中,会不会经常以下感觉:

 1、修改一个bug,会导致其它的bug出现

 2、添加一个本来是很简单的需求,要修改几十个模块,而且容易忽略其中一些小模  

    块,导致bug的产生

 3、接过别人写的代码,很难找到写代码人的意图

 4、在看代码的时候会在满面里面到处跳,最后把自己都搞晕了,不知道看到哪个

    部分了等等

首先举个例子说说糟糕的代码会导致的后果:曾经有一个很著名的应用-----杀手应用

刚开始的时候发展的非常好,可是后来却倒闭了,而导致他们倒闭的原因很简单:为了赶着出产品,代码写的乱七八糟,特性越加越多,代码越来越乱,最后没有办法再管理这些代码了。最终导致了这个公司的倒闭。多么    

在开发的时候,很多程序员明知道自己写的代码可以做重构,可以优化,不过为了赶进度,都会对自己说,先这样将就用一个,等完成了再做重构,再来优化。不过就像勒布朗说的那样:稍后等于永不。等你开发完了,不管是因为忘记还是担心会改出问题来也好,最后都很少去重构优化了,而这一块糟糕的代码就被放在那儿直到没有办法再维持下去。而混乱的代码 结果是什么呢?确实 我们刚刚开发的时候很快,但是后来就越来越慢,对代码的每次的修改会影响的代码越来越多,最后这个代码再也没有办法继续维护了。

怎样让代码整洁呢?至少要消除重复代码和提高表达力。下面会阐述几点来帮助代码保持整洁。

首先,要用有意义的命名。怎么才叫有意义的命名呢,第一、要名副其实,尽量用有意义的变量名(以从变量名中知道变量表示的意义)。第二、要避免误导。第三、做有意义的区分。第四、使用读的出来的名称。第五、使用可搜索的名称(名称长短应与作用域大小相对)。第五、方法名应该是动词或动词短语。第六、别用双关语。

其次,遵循函数的规则。函数最重要的规则就是短小,并且只做一件事,且要做好这件事。函数如果能做到自顶向下的读完一个流程,那这个代码就是很整洁的。沃德原则:如果每个例程都让你感到深合已意,那就是整洁的代码。函数的参数也是越少越好,除非有足够的特殊的理由才能用三个以上的参数。如果参数中出现bool类型,就直接宣布了本函数不止在做一件事。使用异常返回错误代码,函数比较庞大时,尽量做到只有一个入口 ,一个出口。

 最后是注释。若非必要的注释,那注释就是一种失败(因为注释就是为了弥补代码在表达遭遇了失败)。注释存在的时候越入,不离其所描述的代码越远,越来越变的错误 ,原因很简单,程序员不能坚持 维护注释。不准确的注释,要比没有注释坏的多。尽量用代码来替代注释。哪些注释是必须的,也是有得的呢?1、法律信息(代码规范编写与法律有关的注释:版权,著作权就是要天之翼在源文件开头的)2、提供信息的注释3、对意图的解释4、阐释5、警示6、TODO注释。而哪些注释 是没有必要的呢?下面提出了几点:1、误导性的注释2、多余的注释(函数头上的注释都是多余的)3、位置标记4.能用变量或函数时就别用注释5、注释掉的代码(别人不知道为什么,永远不会去删除)

看完这本书以后再回去看自己参与写过的系统,发现很多地方 存在问题,希望自己以后也能注意到这些问题,写出干净整洁的代码。给自己和以后维护的人都能以赏心悦目的感觉,看自己的代码也像书上所写的一样,看代码就像看一件艺术品.

标签:注释,函数,重构,代码,笔记,之道,bug,整洁
From: https://www.cnblogs.com/1774323810com/p/16989756.html

相关文章

  • 《代码整洁之道》阅读笔记二
    一简洁设计原则Bob大叔借鉴过多位行业大牛说过的话,总结出构建简洁之道:运行所有测试重构:消除重复,保证表达力,尽可能减少类和方法的数量。不可重复表达了程序员的意图尽可能......
  • [深度学习] ImageAI库使用笔记
    ImageAI是一个Python库,旨在使开发人员,研究人员和学生能够使用简单的几行代码来构建具有独立的深度学习和计算机视觉功能的应用程序和系统。ImageAI的官方GitHub存储库为​......
  • [编程基础] Python对象的浅拷贝与深拷贝笔记
    Python中的赋值语句不创建对象的副本,它们只将名称绑定到对象。对于不可变的对象,这通常没有什么区别。但是对于处理可变对象或可变对象的集合,您可能需要寻找一种方法来创建这......
  • [编程基础] Python模块和包使用笔记
    本文探讨Python模块和Python包,这两种机制有助于模块化编程。模块化编程是指将大型笨拙的编程任务分解为单独的,较小的,更易于管理的子任务或模块的过程。然后可以像构建模块......
  • [机器学习] Yellowbrick使用笔记5-回归可视化
    回归模型试图预测连续空间中的目标。回归计分可视化工具显示模型空间中的实例,以便更好地理解模型是如何进行预测的。Yellowbrick已经实施了三种回归评估:残差图ResidualsPlo......
  • [机器学习] Yellowbrick使用笔记4-目标可视化
    目标可视化工具专门用于直观地描述用于监督建模的因变量,通常称为y目标。当前实现了以下可视化:平衡箱可视化BalancedBinning:生成带有垂直线的直方图,垂直线显示推荐值点,以将......
  • [机器学习] Yellowbrick使用笔记3-特征分析可视化
    特征分析可视化工具设计用于在数据空间中可视化实例,以便检测可能影响下游拟合的特征或目标。因为ML操作高维数据集(通常至少35个),可视化工具将重点放在聚合、优化和其他技术上......
  • [机器学习] Yellowbrick使用笔记2-模型选择
    在本教程中,我们将查看各种ScikitLearn模型的分数,并使用Yellowbrick的可视化诊断工具对它们进行比较,以便为我们的数据选择最佳的模型。​​代码下载​​文章目录​​1使用......
  • [机器学习] Yellowbrick使用笔记1-快速入门
    Yellowbrick是一个机器学习可视化库,主要依赖于sklearn机器学习库,能够提供多种机器学习算法的可视化,主要包括特征可视化,分类可视化,回归可视化,回归可视化,聚类可视化,模型选择......
  • [机器学习] 特征选择笔记3-递归式特征消除
    特征选择​​​代码下载​​​本文主要介绍sklearn中进行特征选择的方法。​​sklearn.feature_selection​​模块中的类可用于样本集的特征选择/降维,以提高估计量的准确性......