如何提高代码的可维护性?

薛小落


可维护性代码,要求我们的代码易于理解,如果可以用更少的注释来完成这一功能,势必事半功倍!


1、命名

  • 函数命名:避免函数名使用含糊的字眼,使用主动动词表示函数主动执行。

  • 变量命名:变量的命名一定要是一些有意义的名词,比如userName,而不是a、b、i之类;代码中禁止出现“魔数”(在代码中出现但没有解释的数字常量或字符串)。

PS:变量命名采用英文,千万不要出现有创意地拼写错误,比如:SetPintleOpening, SetPintalClosing。这样估计后来维护者全局搜索代码时要崩溃。

2、函数封装

函数封装最大的好处就是避免代码重复。

举个栗子:

下面这样的代码,估计没有注释的话,一般人都要抓狂,很难看懂吧。

我们看看引入函数之后的例子,该函数名明确地表达了它要做什么,这样一来就不必写注释了。而且,如果有需要后面还可以直接调用此函数,一举两得,减少了重复劳动。

3、引入变量

用变量代替表达式。看下图的例子,可能第一次接触代码难以理解其真实表达的意图。

如果引入变量,而不是函数,能否解决这个困扰呢?答案是肯定的,请看下图:

4、代码分组

尽可能将变量定义在靠近使用它的地方,并且尽可能将变量分门别类,这样更方便后来人对代码的维护。

看下面的例子,很显然,左侧的代码将foo的所有使用组合放在一起,一眼望去就能知道各种关系。如果可以的话,尽量选择代码分组。

5、统一编码规则

无规矩不成方圆,同一个项目组,必须统一编码规范。试想一会驼峰命名法,一会儿又匈牙利命名法,这代码看起来得有多别扭。


一个程序员的奋斗史


听过一句话,想分享一下:有些人写的代码,实习生都能看懂;有些人写的代码,工作十年老司机都看不懂。(可能有点夸张)


肉肉的维迦


1.多写有效的注释。注意是有效,不然写再多也没用?像大家都懂的可以不用写,关键的地方一定要写。

2.持续重构。一定要不断地重构,一有空的时候,见缝插针,最关键的一点是发现两个地方代码相同的时候马上重构抽取,这个习惯养好了就事半功倍了。

3.注意格式。有的人写代码歪歪斜斜的,没有分段或者格式化,层次结构很不清晰,各种跳转代码。其实代码块最好都是按顺序下来的,按生命周期等方式,每个类的初始化,设置参数,设置监听,销毁等都按一定的顺序写下来,整个逻辑清晰很多。

4.独立模块。当各种类独立后还要考虑独立模块,模块化开发的好处显而易见。比如我单独引入百度地图模块,可以多个项目复用,自己的模块也是一样。

5.设计模式。如果能力较强,在适当的地方使用设计模式,使代码解耦的更好。


刀是小李飞刀的刀


命名,注释,代码模块化,源代码目录结构,项目文档,更新文档


风云code


通常来说,在任何一个项目组中都应该有各自的编码规范,目的就是为了增加代码的可读性和可维护性,那么,到底该如何做呢?

1/7 分步阅读

变量命名要有意义,最好是使用英文命名,实在不行的,使用拼音。除了循环中的计数变量,以及特殊场景之外,任何变量都尽量不要使用a、b、c这类完全没有任何意义的名称。增强可读性

2/7

变量除了要有意义之外,还需要统一大小写,比如第一个单词首字母小写,后续单词首字母大写的命名风格。风格统一后,看着代码都会心情舒畅一些,从而可读性更好

3/7

添加必要的注释,虽然,某些变量名可以看出意义,但是,必要的注释可以更为直观的让人看懂代码,增强可读性

4/7

增加代码段的注释。如果是C#语言,可以使用region语法包裹一段逻辑,到时候折叠起来,看起来整体性就很容易阅读。其他语言可以使用比较明显的分隔符号标明段落

5/7

将很长的函数拆分成较小的函数,这样不仅可以增加代码的可读性,还能增加代码的可维护性

6/7

将代码划分层次,比如,访问数据库的代码单独放在一个项目中,前台代码单独放一个项目中,到时候修改的时候就很明确,不至于四处乱找,增加可维护性

7/7

代码的层次之间通过接口来调用,减少各个层次之间的耦合度,增加可维护性









科技许


据说低代码平台比传统开发快6到10倍,这是真的!

低代码软件开发平台,颠覆了传统的软件开发模式,引爆了一场科技革命。其一方面可以降低企业应用开发人力成本,另一方面可以将原有数月甚至数年的开发时间成倍缩短,从而帮助企业实现降本增效的价值。

像国外的OutSystems、Mendix、Salesforce或者国内的星城软件等等,都可以开发OA、ERP、CRM、HR、进销存等各种企业管理应用,并无缝集成打通其他软件系统,实现各系统间的互联互通。

很多人在不太了解低代码平台的时候,可能对于低代码平台存在着两个误解。

一、低代码平台只适合于毫无技术背景的人

事实上低代码开发平台也同样适合开发人员进行开发。低代码开发平台既可以提高开发人员开发信息化系统的效率,同时也满足了无代码基础的业务人员进行信息化开发。

对于开发人员来说,使用低代码开发平台可以有效的提高开发效率。开发人员通过图形化界面交互实现应用搭建,可视化的操作,标准化的配置,大大缩减开发时间和所需人员。当然代码平台并不是万能的,他并不能实现所有的功能,拿星城软件定制来说,当在平台遇到实现不了的配置,可以自定义开发,也就是说可以根据需要自己开发出平台没有的功能。

二、低代码平台只是变革传统开发模式,并不是为了颠覆开发者

低代码平台是为了减轻和降低开发者的“工具属性”,让开发者从繁重的代码解放出来,参与更具有价值的创作,是未来价值的必然趋势。同时,发人员不需要多次和业务人员和实际使用人员反复沟通,面对界面化的需求,对于开发人员,很可能是将之前的代码推翻重来。

低代码平台有什么优势?

首先,提高效率!

业务人员可以自行搭建业务流程管理系统,降低了沟通成本。同时也避免了“开发人员不懂业务”的尴尬。也不用等待开发人员的实现过程中,出现系统实现了之后与需求不匹配,甚至实现了之后业务逻辑已经发生了变化的尴尬。管理者也可以通过无代码平台,注入管理思维。

其次,降低成本!

优秀的开发者的高薪早已不是秘密,所以开发资源不能浪费在一些通用而且易于实现的需求,无代码平台就是做这个事情,可以以非常低的成本,来代替开发人员的部分工作内容。原来需要十个人的项目,现在可能只要四个人甚至更少的人就能完成。

当然,低代码平台还有很多其他的价值,这里就只列举了对企业最重要的两点来阐述,降本和增效,这几乎是所有企业永恒的主题。

东软现如今正在开发相关项目并提供服务。

SaCa ACAP 微服务开发运行支撑平台通过对微服务架构的深入理解和实践,实现了微服务设计、开发、测试、维护、监控的一站式管理,帮助企业快速搭建分布式应用服务体系,同时为传统企业的互联网转型提供了优秀的解决方案。如想了解更多,请点击 https://platform.neusoft.com。


aran_renee


根据个人多年代码经验:为提高代码的可维护性,首先 1.在项目工程搭建时候,包命名规范,功能模块尽量独立结偶,划分不同服务2.项目代码基本规范插件和项目组代码规范要求文档(本地安装阿里扫描插件扫描,代码圈复杂度扫描,重复代码重复检测,代码安全covert er 扫描)3.代码设计模式灵活运用,代码常量,枚举类,公共方法类定义,切记不能使用魔鬼数字 4.对于业务复杂的流程,写好必要注释,同时最好配合流程图文档说明

5.项目组定期举行代码走查,代码分享会

以上仅个人皮毛经验,还愿与您互相交流探讨!


码农三哥


为了提高代码的可维护性,我根据自己的实际情况总结出以下六点方式,供您进行参考。


注释您的代码

/*

注释你的代码至关重要,因为如果您编写了一个程序却未对其进行注释,那么缺少注释将使您浪费时间来重新写一遍代码。毕竟基本上就算是你自己写的代码,几个月不看那肯定就忘了。所以注释代码又帮助了别人也帮助了你自己。当然如何注释好代码又是一门学问了,这里就不扯远了。

*/

不要忘记错误检查

每个中型程序都有很多功能和过程,这意味着每个程序都应进行错误检查。良好的错误检查可以防止程序BOOM了,并使调试速度更快。当然现在优秀的IDE都自带查错功能,你现在基本不必花费很多时间查找错误。

使用更少的代码

这是有道理的,你有更少的代码,这样也变相的提高了可维护性(谁会想维护一个用了几百上千的ifelse语句的神仙代码)。它摆脱了未经修改的功能和诊断语句将使您的代码看起来更简洁。如果您有机会使用现有的库,那就更好了!这样会一定程度的提高可维护性,毕竟这会精简你的代码。

编写易于修改的代码

这也可以说成是编写模块化的代码,这即方便移植也方便别人来修改你的代码,但是当很多人都使用了你编写的代码,但是在使用过程中发现它出问题了!这时候如果只需要改几个define的参数的话就能修正就能减少很多工作量,不然就需要每个人都重新更改他们的代码,增加了很多工作量。

编写易于测试的代码

发现错误越早,修复该错误的成本就越低。尽管测试每种可能的情况都可能很耗时,但是你可以编写一段简短的专用于测试的代码,这虽然看上去是多余的,但真出了问题这可就是防范于未然了。

解决问题,而不是症状

这也是很多程序员偷懒导致的更多的问题

快速修复和实际修复之间的区别是,第一种情况是开发人员决定解决症状而不是解决问题时发生的。当开发人员细致的了解错误原因并设法查明错误原因时,才可能进行真正的修复。仓促完成的所有操作只会创建令人困惑的代码,供下一个倒霉的人清理。

有些人刚进公司,看到上一个人留下的“遗产”,那绝对是崩溃的。


以上就是个人认为的对编写可维护性高的代码的一些方法,如果还有其他疑问的话可以在评论中提出,谢谢!


分享到:


相關文章: