《代码大全2》阅读笔记05

Posted lhk20213937

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了《代码大全2》阅读笔记05相关的知识,希望对你有一定的参考价值。

第八章

在我过去的编程经验中,我经常写出复杂且难以维护的函数。我经常尝试在一个函数中实现太多的功能,导致函数代码的复杂度极高,可读性和可维护性都很差。

通过阅读这一章,我认识到函数的设计和实现对代码的质量和可维护性至关重要。作者提到,高质量的函数应该具有以下特征:简单、短小、只做一件事情、参数尽量少、输入和输出清晰、异常处理良好等。这些特征都有助于提高函数的可读性和可维护性,并且有助于减少代码中的bug。

结合书中所讲,我认为过于复杂和臃肿的函数会给代码的维护和修改带来很大的难度,也会影响代码的可读性和可维护性。这是因为一个函数中实现太多的功能,导致代码的逻辑复杂度和嵌套层数变得很高,难以理解和修改。此外,由于功能过多,很难保证函数的输入和输出都非常清晰,导致出现错误的概率更高。

因此,我的解决办法是:在编写函数时,要尽量遵循书中提到的高质量函数的特征。将一个大函数拆分成多个小函数,每个函数只实现一个功能,同时保证函数名和参数的名称尽量清晰明了,有助于提高代码的可读性和可维护性。此外,我还可以尝试使用一些调试工具和技术来帮助我识别和解决复杂函数的问题,以确保函数的正确性和质量。

代码大全阅读笔记03

  无论怎么拖也总是要做的,我感觉自己的拖延似乎是毫无意义的浪费时间,我的拖延挤出来的时间都是在干啥,这真是让我反思。好了继续读代码大全,我开始烦了已经,因为它太厚了。过渡工程,这个问题把握好并不容易。一方面,我们希望系统健壮,如果组成系统的各个部分只在最低限度满足健壮性要求,那么整体通常是达不到要求的。软件健壮性不取决于最薄弱的地方,而是等于所有薄弱环节的乘积。构架应该指出每个部分,程序员为了谨慎而宁可做过度工程,还是做出简单的能工作的东西就够了。有些东西是不应该过分花精力的,这个错误我们也犯过,尤其一些一开始就知道以后很可能要重构的部分,大量的精力花在里面很浪费。

  有些东西我还是看不懂的,比如说这个叫做管理复杂度的名词,跟着老师上了一个学期的软件工程概论了,学了很多关于项目的介绍,我听到的是时间复杂度和空间复杂度这都是在说算法,书上说是软件构建的核心,好吧原谅我还小,不懂关于核心的东西。除了这些也学了一些小的知识,比如类的接口应提供一致的抽象,如果违背的话可能会引起很多的问题,类的接口应当隐藏一些信息――如某个系统接口、某项设计决策、或一些实现细节,这些我是有点看迷糊了,接口那么多讲究啊。而且类的包含比继承更可靠,这个,我还是没有经验,有什么更可靠的,是安全性么?哦,下面有说了,继承会加大复杂度,好吧,原来还有这茬,真是感受不到啊。

  然后是关于子程序的地方了,这和我们的单元测试是不是有点关系呢?创建子程序最主要的目的是提高程序的可管理性,当然也有其他一些好的理由。其中,节省代码空间只是一个次要原因:提高可读性、可靠性和可修改性等原因都更重要一些。有时候,把一些简单的操作写成独立的子程序也非常有价值。子程序可以按照其内聚性分为很多类,而你应该让大多数程序具有功能上的内聚性,这是最佳的一种内聚性。子程序的名字是它的质量的指示器。如果名字糟糕但恰如其分,那就说明这个子程序设计得很差劲。如果名字糟糕而且又不准确,那么它就反映不出程序是干什么的。不管怎样,糟糕的名字都意味着程序需要修改。只有在某个子程序的主要目的是返回由其名字所描述的特定结果时,才应该使用函数。细心的程序员会非常谨慎地使用宏,而且只在万不得已时才用。

  读了这些感觉是涨了点见识,虽然是被老书了,但是有些知识是不会过时的,我这样的起步者真是很需要吃到这些知识的。

以上是关于《代码大全2》阅读笔记05的主要内容,如果未能解决你的问题,请参考以下文章

《代码大全》阅读笔记-2-用隐喻来更充分地理解软件开发

《代码大全》阅读笔记-3-三思而后行:前期准备

代码大全阅读笔记01

代码大全阅读笔记02

代码大全阅读笔记03

《代码大全》阅读笔记二