拒绝代码冗余怎么设置 (拒绝代码冗余:遵循变量命名规则的好处)

遵循变量命名规则的好处

拒绝代码冗余是每个开发人员都应该努力做到的一点。冗余的代码不仅会增加代码库的体积,而且会导致代码的可维护性和可读性受到影响。为了避免代码冗余,我们可以采取一系列的设置和规范。

遵循变量命名规则是拒绝代码冗余的一种重要策略。良好的变量命名可以使代码更加清晰、易读和易于维护。在变量命名中,应该使用有意义的名称来描述变量的用途和含义。使用具有一致性的命名约定,例如驼峰命名法或下划线命名法,可以增加代码的一致性和可读性。

使用函数和方法可以帮助我们避免代码冗余。将重复的代码封装到函数或方法中,然后在需要的地方调用,可以减少代码的重复性。这样在修改代码时只需要修改函数或方法的定义,而不需要逐个修改每个调用的地方。这不仅减少了代码量,还提高了代码的可维护性。

我们可以使用代码复用的原则来拒绝代码冗余。代码复用是指在多个地方使用相同或相似的代码段。通过将可复用的代码封装成函数、类或模块,我们可以在不同的地方重复使用,避免了代码的冗余。这样不仅提高了代码的效率,还减少了代码的体积。

使用版本控制系统也是减少代码冗余的一种好方法。版本控制系统可以跟踪代码的变化,并记录每个修改的细节。当多个开发人员同时修改同一份代码时,版本控制系统可以合并他们的修改,避免了重复修改相同的代码。通过版本控制系统,我们可以轻松地查看和比较不同版本的代码,从而更好地管理和减少代码冗余。

最后,我们还可以使用代码检查工具来帮助我们拒绝代码冗余。代码检查工具可以静态地分析代码,并检测出潜在的问题和冗余。通过使用这些工具,我们可以及时发现并修复代码中的问题,保持代码的质量和可维护性。

总结一下,拒绝代码冗余是提高代码质量和可维护性的重要策略。通过遵循变量命名规则、使用函数和方法、代码复用、版本控制系统和代码检查工具,我们可以有效地减少代码冗余,提升代码的可读性和可维护性。


如何让C++中的代码规范一点

1.关键字if, while, for与其后的控制表达式的(括号之间插入一个空格分隔,但括号内的表达式应紧贴括号。 例如:while ␣(1); 2.双目运算符的两侧插入一个空格分隔,单目运算符和操作数之间不加空格。 例如:i␣=␣i␣+␣1、++i、!(i␣<␣1)、-x、&a[1]等。 3.后缀运算符和操作数之间也不加空格。 例如:取结构体成员s.a、函数调用foo(arg1)、取数组成员a[i]。 4. 、,号和;号之后要加空格,这是英文的书写习惯。 例如:for␣(i␣=␣1;␣i␣<␣10;␣i++)、foo(arg1,␣arg2)。 5.以上关于双目运算符和后缀运算符的规则不是严格要求,有时候为了突出优先级也可以写得更紧凑一些. 例如:for␣(i=1;␣i<10;␣i++)、distance␣=␣sqrt(x*x␣+␣y*y)等。但是省略的空格一定不要误导了读代码的人,例如a||b␣&&␣c很容易让人理解成错误的优先级。 6.由于标准的Linux终端是24行80列的,接近或大于80个字符的较长语句要折行写,折行后用空格和上面的表达式或参数对齐。 例如: if␣(sqrt(x*x␣+␣y*y) > 5.0 &&␣x␣<␣0.0 &&␣y␣>␣0.0) 缩进 内核关于缩进的规则有以下几条: 1.要用缩进体现出语句块的层次关系,使用Tab字符缩进,不能用空格代替Tab。函数里面的代码,也称为代码块或复合代码,要求进行缩进。遇到循环和分支结构的处理,循环和分支下的代码块要求再进行缩进,假设循环和分支里又嵌套了循环和分支,代码块应该层层缩进 2.if/else、while、do/while、for、switch这些可以带语句块的语句,语句块的{和}应该和关键字写在一起,用空格隔开,而不是单独占一行。 例如应该这样写: if␣(...)␣{ →语句列表 }␣else␣if␣(...)␣{ →语句列表 } 更多的人习惯这样写: If ␣(…) { →语句列表 } else if ␣(…) { →语句列表 } 内核的写法和[K&R]一致,好处是不必占用太多空行,使得一屏能显示更多代码。这两种写法用得都很广泛,只要在同一个项目中能保持统一就可以了。 3.函数定义的{和}单独占一行,这一点和语句块的规定不同. 例如 : int sum(int a, int b) { 语句列表; } 4. switch和语句块里的case、default对齐写,也就是说语句块里的case、 default相对于switch不往里缩进。 例如: switch(…) { case ‘A’: 语句列表; case ‘B’: 语句列表; default: 语句列表; } 5.一行只写一条语句 6.代码中每个逻辑段落之间应该用一个空行分隔开。例如每个函数定 义之间应该插入一个空行,头文件、全局变量定义和函数定义之间也应该插入空行. 7.在分支和循环中不管有一条还是多条语句建议都要加上“{}” 注释 1.单行注释应采用/*␣comment␣*/的形式,用空格把界定符和文字分开。 2.整个源文件的顶部注释。说明此模块的相关信息,例如文件名、作者和版本历史等,顶头写不缩进。 3.相对独立的语句组注释。对这一组语句做特别说明,写在语句组上侧,和此语句组之间不留空行,与当前语句组的缩进一致。注意,说明语句组的注释一定要写在语句组上面,不能写在语句组下面。 4.代码行右侧的简短注释。对当前代码行做特别说明,一般为单行注释,和代码之间至少用一个空格隔开,一个源文件中所有的右侧注释最好能上下对齐。 标识符的命名规范 标识符的命名要清晰明了,可以使用完整的单词和大家易于理解的缩写。短的单词可以通过去元音形成缩写,较长的单词可以取单词的头几个字母形成缩写,也可以采用大家基本认同的缩写。例如count写成cnt,block写成blk,length写成len,window写成win,message写成msg,temporary可以写成temp,也可以进一步写成tmp。 内核风格规定变量、函数和类型采用全小写加下划线的方式命名,常量(宏定义和枚举常量)采用全大写加下划线的方式命名。如函数名radix_tree_insert、类型名struct radix_tree_root。 常量的命名规范:每一个英文字符大写 ,每个单词之间可以用‘_’连接 RADIX_TREE_MAP_SHIFT等。 标签的命名规范 要求有一定的描述性,顶端左对齐 全局变量和全局函数的命名一定要详细,不惜多用几个单词多写几个下划线,例如函数名radix_tree_insert,因为它们在整个项目的许多源文件中都会用到,必须让使用者明确这个变量或函数是干什么用的。局部变量和只在一个源文件中调用的内部函数的命名可以简略一些,但不能太短,不要使用单个字母做变量名,只有一个例外:用i、j、k做循环变量是可以的。 针对中国程序员的一条特别规定:禁止用汉语拼音作为标识符名称,可读性极差。函数的编码风格每个函数都应该设计得尽可能简单,简单的函数才容易维护。应遵循以下原则: 实现一个函数只是为了做好一件事情,不要把函数设计成用途广泛、面面俱到的,这样的函数肯定会超长,而且往往不可重用,维护困难。 函数内部的缩进层次不宜过多,一般以少于4层为宜。如果缩进层次太多就说明设计得太复杂了,应该考虑分割成更小的函数来调用。 函数不要写得太长,建议在24行的标准终端上不超过两屏,太长会造成阅读困难,如果一个函数超过两屏就应该考虑分割函数了。 执行函数就是执行一个动作,函数名通常应包含动词,例如get_current、radix_tree_insert。 比较重要的函数定义上面必须加注释,说此函数的功能、参数、返回值、错误码等。 另一种度量函数复杂度的办法是看有多少个局部变量,5到10个局部变量就已经很多了,局部变量再多就很难维护了,应该考虑分割函数。函数参数的防错设计程序一般分为Debug 版本和Release 版本,Debug 版本用于内部调试,Release 版本发行给用户使用。 在编写函数时,要进行反复的考查,并且自问:“我打算做哪些假定?”一旦确定了的假定,就要使用断言对假定进行检查。使用断言捕捉不应该发生的非法情况。不要混淆非法情况与错误情况之间的区别,后者是必然存在的并且是一定要作出处理的。 在函数的入口处,使用断言检查参数的有效性(合法性)。 assert(表达式); 的意思是:当表达式为真时,程序继续运行,如果表达市为假,那程序就会停止运行,并提示错误信息。 #include #include void test(char *p) { assert(p != NULL); printf(p=%s\n,p); } 程序说明:由于我们在main函数中传了NULL指针值给test函数,在test函数执行到assert(p != NULL);发现表达式不为真,就终止了程序的运行,并提示错误的行数信息。 注意:由于assert是一个宏,只在debug版本中起作用,所以assert一般只用于内部函数对参数有效性进行检查,如果该函数作为一个外部接口来使用时,一般需要利用if,else语句进行防错设计。 函数注释:说明此函数的功能、参数、返回值、错误码等,写在函数定义上侧,和此函数定义之间不留空行,顶头写不缩进。 /*------------------------------------------------- function:判断分数格式是否正确 params:score 客户输入的分数 returns:1 分数格式正确 0 分数格式错误 -------------------------------------------------*/ int IsValidScore(char *score) { /*……*/ } 函数内的注释要尽可能少用。注释只是用来说明你的代码能做什么(比如函数接口定义),而不是说明怎样做的,只要代码写得足够清晰,怎样做是一目了然的,如果你需要用注释才能解释清楚,那就表示你的代码可读性很差,除非是特别需要提醒注意的地方才使用函数内注释。 编程好习惯初始化变量 尽可能使用局部变量 一个函数只有一个紧凑的职责 避免函数过长避免函数嵌套过深 不要拘泥于小节 ……

在vb中,在标准模块中用dim语句定义的变量是什么变量

在标准模块中用Dim语句定义的变量是模块级全局变量,在该模块的任意一个地方都可以直接通过变量名访问,在该模块之外的地方可以通过模块名.变量名访问。

如何消除冗余

continue; va = dio_scodetoviraddr(scode); if (!va || !hwreg_present(va + DIO_IDOFF)) continue; /* no board present at that select code */ /* Found a board, allocate it an entry in the list */ b = kmalloc(sizeof(struct dioboard), GFP_KERNEL); /* read the ID byte(s) and encode if necessary. Note workaround * for broken internal HPIB devices... */ if (!DIO_ISIHPIB(scode)) prid = DIO_ID(va); else prid = DIO_ID_IHPIB; if (DIO_NEEDSSECID(prid)) { secid = DIO_SECID(va); b->id = DIO_ENCODE_ID(prid, secid); } else b->id = prid; b->configured = 0; b->scode = scode; b->ipl = DIO_IPL(va); b->name = dio_getname(b->id); printk(select code %3d: ipl %d: ID %02X, scode, b->ipl, prid); if (DIO_NEEDSSECID(b->id)) printk(:%02X, secid); printk(: %s\n, b->name); b->next = NULL; if (bprev) bprev->next = b;

JAVA 定义和继承

按题目说就是要求写个JavaBean了~子类来继承时不能直接访问这个Private变量,但是可以通过get/set方法来访问变量。// 定义一个类public class User { // 定义一个私有的成员变量 private String userName; // 定义一个无参的构造函数(按你的题目意思,这个可以不要) public User() { } // 定义赋值方法 public void setUserName(String userName) { this.userName = userName; } // 定义取值方法 public String getUserName() { return userName; }}

C语言如何排除数字冗余

是这个意思吗:#includevoidmain(){inti,j,n,a[100];scanf(%d,&n);scanf(%d,&a[0]);for(i=1;i

java中为什么要通过方法的返回值,来调用成员变量。这样做的优点是什么?

这样做的主要优点是:1. 体现面向对象的封装性!因为方法是经过程序员严格设置的处理数据的一种方式,用方法来操作成员变量,使对成员变量的操作更加安全!2. 当方法中的代码多,某一对象需要多次调用这一方法时,可以达到代码重复利用的优点!3. 方便对代码进行维护,如果要修改数据处理的流程,那只需修改方法即可!4. 结构严谨,利用其他程序员阅读理解!


本文地址: https://www.1dh.cc/article/2629.html
创业故事网

创业者故事网(cygs.cc)-分享创业心得、创业经验、创业知识、创业成功案例的网站,记录创业成功、创业失败的真实案例,希望您通过观看创业故事分享的文章,发现创业商机,开启自己成功的创业之路。

红五百科

红五百科网站为您提供生活百科、生活常识、美食菜谱、数码科技、女性时尚等多样化信息,以及各种百科小知识、教学教程等。

安科瑞电器制造有限公司

安科瑞电气提供的解决方案包括变电所运维云平台、安全用电管理云平台、环保用电监管云平台、智慧消防云平台、能源管理云平台、工业企业能源管控平台、远程预付费云平台、餐饮油烟监管云平台、电动汽车/电瓶车充电桩收费管理云平台、电力监控/无线测温系统、电能质量治理系统、电气火灾监控系统、消防设备电源监控系统、防火门监控系统、应急照明和疏散指示系统、智能照明控制系统、医用隔离电源绝缘监测系统等,帮助用户实现能源智能化、可视化、精细化管理,提高用能效率和用能安全,为企业节能降耗和实现能源数字化建设提供数据服务。

赣锋锂业集团股份有限公司

截至2017年12月31日,按产能计,我们为全球第三大及中国最大的锂化合物生产商及全球最大的金属锂生产商。我们提供涵盖五个主要类别逾40种锂化合物及金属锂产品,我们认为此乃全球锂化合物及金属锂供货商中最齐全的产品供应之一。

梨江物流

梨江物流公司是一家从事长沙到全国的陆运、空运、海运物流服务的长沙物流公司。梨江物流以快捷、准时、安全、优惠的服务宗旨为广大客户服务!

软件屋

软件屋发布手机版软件和游戏,提供绿色app以及手机版游戏下载,更新超多的手机游戏软件平台,帮助您解答有关软件的下载问题,软件屋将成为手机用户的忠实伙伴!

长治市神通防爆电机修造有限公司

长治市神通防爆电机修造有限公司是一家专业从事防爆电机维修的企业。

上海易雍健康信息諮詢有限公司

Health-Cross中国官方网站,为中国保险公司提供领先的的硬件、软件、TPA咨询和技术服务。助力中国保险的行业持续创新转型。

帝恩爱斯

DNS.LA-综合网络服务提供商,网络云产品服务商,全栈自研智能dns云解析产品,完全自主知识产权,涵盖智能DNS解析、SSL证书、域名注册、DNS加速等产品服务,安全、高效、简单易用的网络服务与产品平台。

杭州古森服饰

杭州古森服饰|古森服饰|杭州服饰|工装|工作服|职业装|

懂运营

懂运营网站提供运营技术干货,为淘宝、天猫、京东、拼多多、抖音、快手、跨境电商等运营人提供运营干货知识经验,通过交流分享、大咖互动等方式解决运营过程中的问题,努力成为电商资讯平台。

安基瓷砖•岩板官网

安基瓷砖岩板始建于2002年,是一家集科研、生产和销售为一体的知名建陶企业,在广东拥有2个大型现代化陶瓷生产基地,10条窑炉,10条抛光生产线,产能规模位居全国前列。