扫码阅读
手机扫码阅读

可维护代码有感

110 2024-04-08

听过这样一个说法:一个优秀的程序员能够维护的代码数量大约2万行。当时觉得2万行距离过于遥远,也很少能够长期维护一个超过2万行代码的项目,因而对这句话体会不深刻。经过了对FunTester框架多年维护以及工作中类似的体验,对于可维护性代码有了更深的体会。可维护代码的数量指标跟代码可维护性密切相关,项目代码可维护性不仅仅对自己,更多的还是对其他陌生人(其中包括对自己代码已经陌生的自己)。当我们编写软件代码时,一个重要的目标是让代码易于维护。代码可维护性是指代码的易读性、易修改性和易测试性。一个高度可维护的代码库能够最大程度地减少开发人员的时间和精力,以及减少错误和缺陷的数量。代码可维护性是开发高质量软件的关键。通过遵循最佳实践和编写测试,开发人员可以创建易于理解、易于修改和易于测试的代码库。这将大大提高开发速度和代码质量,同时减少错误和缺陷的数量。

可读性

如何使我们的代码易于理解和维护非常重要。在编写代码时,我们必须考虑一些关键的方面,以提高代码的可读性。首先,命名应该清晰明了,要让读者能够轻易地理解变量、函数和类的含义。变量和函数名应该描述它们的用途,而类名应该描述对象的特征和功能。其次,代码应该有良好的结构和组织方式。程序代码应该分割成模块或函数,每个函数解决一个问题,模块包含相似任务的函数。而且,代码应该使用缩进和空格来使其更加紧凑和易于阅读。最好将各个不同功能的类分成不同的模块,对于代码中强耦合功能,做好代码结构的设计。尽可能保持每个函数的原子性,提升方法和函数的复用率。除此之外,注释也是非常重要的。注释应该用来解释代码的目的和工作方式,以及解释函数参数和返回值。在注释中,应该使用简单的语言,并提供例子,以帮助读者更好地理解代码。通常我们会把需求文档以及接口文档地址粘贴一份放到代码中的注释内容中。这样当==陌生人==看到代码时,如果有不解的地方可以直接阅读。另外,避免使用具有二义性的语言和缩写,以及过于复杂和混乱的逻辑控制结构。代码应该以一种简单而直接的方式表达逻辑思路,从而减少理解和维护的难度。最后,测试代码是保证代码可读性的重要步骤。通过测试来保证代码的正确性,也为其他开发人员提供使用代码的安全感。提高代码的可读性是一项重要的任务,需要充分考虑代码结构、命名方式、注释以及测试等要素。考虑到维护性,我们应该始终考虑读者的角度,以提高代码的可读性。

可测性

代码可测性(testability)是指代码的易测性、可测性,是指在设计和编写应用程序时,将测试考虑在内,使得程序更易于测试和测试效率更高。代码可测性不仅可以提高测试的效率,也有助于保持代码质量和可维护性。自测:通常我是不给自己的代码编写单元测试的,但是编写新功能或者对老功能进行修改的时候,编写适当的Case是必须的。各种单元测试框架功能已经非常丰富,可以结合各种Mock框架构造自己的测试场景。日志:如果发现代码BUG,通常会优先关注日志。如何维护一个项目中日志的高效打印,也是一个非常重要的事情。太多或者太少都会造成不必要的困扰。虽然日志搜索架构已经非常高效,但是在源头进行必要的规范和设计是非常有必要的。可观测性:如果我们的代码某个功能,对其他服务或者模块是强依赖的关系,那么通常自测很难覆盖缺陷场景。当发生BUG或者异常时,我们需要尽可能对现场进行保存和观察。通常暴露一些可观测性的接口或者日志输出会极大提升排查的速度。也可以通过远程debug功能,更加灵活进行调试和排查故障原因。

可拓展性

代码可拓展性是指代码能够在未来增加新功能、应对需求变化、适应新技术和平台等要求时,能够快速而又有效地进行修改和扩展的能力。在当今的软件开发行业中,代码可拓展性已经成为了一个非常重要的需求和评估标准。具有良好可拓展性的代码可以更容易地满足用户的需求,同时也可以大大减少业务需求的变化对代码的影响,减少维护成本和开发周期。良好的可拓展性对于软件系统的长期成功非常必要,它可以在不需要重新设计或写全新代码的情况下,对现有的代码进行修改和扩充。这种灵活性和可扩展性也可以满足新的业务需求和市场趋势,这是使应用程序长期保持其竞争优势的关键。具备良好可拓展性的代码还可以使开发团队更快地开发新产品或新的版本,并且可以通过便捷的方式更改和更新系统的部分功能。在日益技术迅速变化的时代,这种能力和效率变得尤其重要。此外,一旦建立具有良好可拓展性的代码结构,其设计和代码都可以轻松地重复利用,从而减少重复编写代码的风险和成本,增加稳定的开发基础。具备良好可拓展性的代码也可以提高其可维护性。在对代码进行修正或重构时,可以更快捷地定位和修改有问题的模块,同时也可以更好地理解其它开发人员编写的代码以增加代码可读性。因此,通过提高可拓展性可以使代码更易于使用和维护,从而提高系统的整体性能表现和用户满意度。

补充

在阅读的资料中,还有其他提升代码可维护性的手段,比如:版本管理、代码编写规范,代码复用等。由于水平有限,体会不深,无法分享。最后再分享一个概念:高内聚低耦合。可以通过这个关键字搜到到很多很有用的文章。

原文链接: http://mp.weixin.qq.com/s?__biz=MzU4MTE2NDEyMQ==&mid=2247499490&idx=1&sn=d8af75198f4733a916191738a06ba84e&chksm=fd4973d4ca3efac297f4f3849aaaf690b59f2d052ef1b7d32f1d1423871301654fb16f8557f1#rd