Malware-Slayer项目中的枚举类型命名规范演进

Malware-Slayer项目中的枚举类型命名规范演进

malware-slayer Successor of "System77", made in Godot Engine malware-slayer 项目地址: https://gitcode.com/gh_mirrors/ma/malware-slayer

在软件开发中,良好的代码规范对于项目的可维护性和可读性至关重要。本文将以Malware-Slayer项目为例,探讨枚举类型(enum)命名规范的最佳实践及其演进过程。

枚举类型的基本概念

枚举类型是一种特殊的数据类型,它允许变量只能取一组预定义的常量值。在游戏开发中,枚举常用于表示游戏状态、屏幕模式、控制选项等有限且明确的选项集合。

原始命名规范的问题

Malware-Slayer项目最初采用了以下枚举命名方式:

enum _cursor_state {NORMAL, AIM}
enum _screen_resolution {_1280x720, _1600x900, _1920x1080, _2560x1440, _3840x2160}
enum _fullscreen {WINDOWED, FULLSCREEN}
enum _vsync {DISABLED, ENABLED}

这种命名方式存在几个潜在问题:

  1. 前导下划线通常用于表示内部实现细节,可能误导开发者认为这些枚举是私有的
  2. 枚举类型名和值混用大小写,缺乏一致性
  3. 对于布尔性质的选项(如垂直同步),使用枚举可能过度设计

推荐的命名规范

经过讨论,项目决定采用更符合行业惯例的命名方式:

enum CURSOR_STATE {NORMAL, AIM}
enum SCREEN_RESOLUTION {RES_1280X720, RES_1600X900, RES_1920X1080, RES_2560X1440, RES_3840X2160}
enum SCREEN_MODE {WINDOWED, FULLSCREEN}
enum VSYNC {DISABLED, ENABLED}

这种改进后的规范具有以下优点:

  1. 全部使用大写字母,明确表示这些是常量值
  2. 移除了前导下划线,表明这些是公开可用的类型
  3. 对于分辨率等特殊值,添加前缀(RES_)提高可读性
  4. 类型名称更清晰地表达了其用途

实际应用示例

在代码中使用这些枚举类型时,可以这样声明变量:

var current_resolution: SCREEN_RESOLUTION
var screen_mode: SCREEN_MODE
var vsync_status: VSYNC

这种类型声明方式既清晰又类型安全,编译器可以检查赋值的有效性,避免无效值的出现。

关于布尔性质选项的考量

虽然VSYNC本质上是一个二元选项,但使用枚举而非布尔值有以下优势:

  1. 语义更明确(DISABLED/ENABLED比false/true更易理解)
  2. 为未来可能的扩展预留空间(如添加ADAPTIVE等选项)
  3. 与其他设置项保持一致的代码风格

总结

Malware-Slayer项目通过这次枚举命名规范的改进,提升了代码的一致性和可读性。这个案例也展示了良好的编码规范如何随着项目发展而演进。对于开发者而言,遵循这些规范不仅有助于当前项目的维护,也能培养出更好的编程习惯。

malware-slayer Successor of "System77", made in Godot Engine malware-slayer 项目地址: https://gitcode.com/gh_mirrors/ma/malware-slayer

创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

尤根阔Sherlock

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值