【编程好习惯】避免使用魔数

魔数(magic number),即在编写程序时直接在程序中运用数字,而不是采用定义宏或是const变量的方式,图1是使用了魔数的一个示例程序。其中的64是指Msk的最大字节数。从这一程序中可以看出,Msk的最小字节数是MIN_MSK_LEN,即20。采用魔数的危害有:
   1) 降低了程序的可读性。有人可能会提出,那加一些注释不就完了吗?如果真是采用加注释的方式,那为什么不将其定义成一个宏或是const常量呢?要知道查看注释的效率肯定没有直接看代码来得快和方便,也不存在不同步的问题(代码与注释有可能不同步)。
   2) 如果下一次这个最大值要从64改为128,那得在adjustMask()中对每一处都进行更改。另外,当一个项目较大时,魔数的存在会使得程序维护非常、非常困难。
由此看来,这里的“魔”不应理解成象“魔法(magic)”那样神奇,而应理解为象“魔鬼(monster)”那样可怕。

example.c
00290: #define MIN_MSK_LEN 20
00291:
00292: int adjustMsk (MskContext* Context)
00293: {
00294:     char temp [64] = {0};
00295:
00296:     if (Context->lenMsk >
64 ) {
00297:         memcpy (temp, Context->msk + (Context->lenMsk -
64 ),     64 );
00298:         ...
00399:         memcpy (Context->msk, temp,
64 );
00300:     }
00301:     else if (Context->lenMsk < MIN_MSK_LEN) {
00302:         return ERROR;
00303:     }
00304:     ...
00305: }
图1

图2是采用宏之后的版本。其中定义了MAX_MSK_LEN的大小为64,如果其它函数中也需要用到Msk的最大值,那么也可以引用这一宏。如果下一次想将最大值从64改为128时,只要改MAX_MSK_LEN宏的定义就行了。另外,这种宏定义的存在有利于模块与模块之间共享,从而在一定程度上提高重用性。

example.c
00289: #define MIN_MSK_LEN 20
00290:
#define MAX_MSK_LEN 64
00291:
00292: int adjustMsk (MskContext* Context)
00293: {
00294:     char temp [MAX_MSK_LEN] = {0};
00295:
00296:     if (Context->lenMsk >
MAX_MSK_LEN ) {
00297:         memcpy (temp, Context->msk + (Context->lenMsk -
MAX_MSK_LEN ),
00298:            
MAX_MSK_LEN );
00399:         ...
00300:         memcpy (Context->msk, temp,
MAX_MSK_LEN );
00301:     }
00302:     else if (Context->lenMsk < MIN_MSK_LEN) {
00303:         return ERROR;
00304:     }
00305:     ...
00306: }
图2
  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Spring Boot编程习惯是指在开发Spring Boot应用程序时应该遵循的一些最佳实践以及一些规范性要求。这些编程习惯旨在提高代码的可读性、可维护性和可扩展性,让Spring Boot应用程序更加易于理解和维护。 1. 遵循单一职责原则 编写代码时应该遵循单一职责原则,即一个类或一个方法只负责一项职责。这样可以使代码更加清晰,易于维护和测试。 2. 遵循关注点分离原则 关注点分离原则是指将不同的关注点分离开来,避免在同一个类或方法中混杂多个关注点。例如,将业务逻辑与数据访问进行分离。 3. 统一的命名规范 应该为类、方法、变量等统一的命名规范,以提高代码可读性。常见的命名规范包括驼峰命名法、下划线命名法等。 4. 避免魔法数字 应该尽量避免在代码中使用魔法数字,应该将这些数字定义为常量,以便于更好的理解和维护代码。 5. 异常处理机制 应该养成在代码中使用异常处理机制的编程习惯,以及时捕获并处理潜在的异常情况。对于不同的异常情况,应该使用不同的异常类型。 6. 注释规范和文档说明 编写代码时应该养成良好的注释和文档说明的习惯。注释应该清楚明白,说明代码的作用和意图,以方便后续维护。同时,应该提供详细的文档说明,包括接口定义、使用说明等。 总之,Spring Boot编程习惯是开发人员们在开发Spring Boot应用程序时应该遵循的一些最佳实践和规范性要求,这些习惯可以提高代码的可读性、可维护性和可扩展性,让Spring Boot应用程序更加易于理解和维护。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值