本文档概述了FPSMaster项目的代码标准和贡献指南。所有贡献者在提交代码时都应遵循这些标准,以确保代码库的一致性和质量。
-
方法名、变量名和包名使用驼峰式命名法(camelCase)
public void initializeModules() { ... } private String clientVersion;
-
类名和接口名使用帕斯卡命名法(PascalCase)
public class ModuleManager { ... } public interface EventListener { ... }
-
常量使用全大写蛇形命名法(UPPER_SNAKE_CASE)
public static final String CLIENT_VERSION = "v4";
- 按字母顺序组织导入并删除未使用的导入
- 将相关方法分组放置
- 保持方法专注于单一职责
- 限制方法长度以提高可读性(建议控制在50行以内)
- 使用适当的访问修饰符(private, protected, public)来加强封装性
- 字段应放在类顶部,其次是构造函数,然后是方法
- 使用4个空格缩进(不要用制表符)
- 左大括号与声明放在同一行
public void method() { // 代码 }
- 在
if、for、while等关键字后使用空格if (condition) { // 代码 }
- 在运算符周围使用空格
int a = b + c;
- 为所有公共类和方法添加JavaDoc注释
/** * 初始化模块系统。 * 此方法注册所有模块并设置事件监听器。 */ public void initializeModules() { // 实现 }
- 为复杂代码段添加行内注释
- 保持注释与代码变更同步更新
- 使用适当的异常处理
- 避免空的catch块;至少应记录异常
try { // 可能抛出异常的代码 } catch (Exception e) { ClientLogger.error("处理失败: " + e.getMessage()); }
- 提供有意义的错误信息
- 避免使用魔法数字;改用命名常量
- 尽量减少静态字段和方法的使用
- 遵循最小权限原则(使用尽可能严格的访问修饰符)
- 避免代码重复;将通用代码提取为可重用方法
- 根据任务选择合适的数据结构
- 实现适当的空值检查以避免NullPointerException
在提交pull request前,贡献者必须:
- 测试所有受影响的功能:确保变更不会破坏现有功能
- 跨不同Minecraft版本测试:如适用,验证变更在所有支持的Minecraft版本(1.8.9, 1.12.2等)上都能正常工作
- 测试边界情况:考虑并测试边界条件和异常输入
- 性能测试:对于性能关键代码,验证变更不会对性能产生负面影响
- 测试变更的主要功能
- 验证变更不会破坏现有功能
- 在所有适用的Minecraft版本上测试
- 考虑并测试边界情况
- 验证性能影响(如适用)
- 检查测试过程中是否有控制台错误
提交pull request时:
- 描述你的变更:清晰说明PR做了什么
- 引用相关问题:链接到PR解决的所有相关问题
- 保持变更专注:每个PR应只解决一个关注点
- 遵循代码风格:确保代码遵循项目的代码风格指南
- 更新文档:更新变更影响的所有相关文档
- 代码遵循项目的代码风格指南
- 测试所有相关模块
- 文档已更新(如适用)
- PR只解决一个关注点
- PR引用了相关问题
- Fork仓库:创建项目的个人fork
- 创建分支:在新分支中进行变更
- 实现变更:开发功能或修复
- 测试变更:确保所有测试通过且变更按预期工作
- 提交pull request:从你的分支向主仓库创建PR
- 处理评审反馈:根据代码评审要求进行修改
遵循这些指南有助于保持FPSMaster项目的代码质量和一致性。感谢您的贡献,感谢您帮助FPSMaster变得更好!