开发与协作规则
1. 基本规范
1.1 语言要求
- 请保持对话语言为中文
- 所有代码注释和文档也应使用中文
1.2 平台要求
- 主要开发系统为Windows 11平台
- 支持跨平台开发,包括Linux和macOS
- 代码和脚本应在所有目标平台上正常运行
- 平台特定代码应明确标记并提供替代方案
2. 代码注释规范
2.1 功能函数注释
- 每新增一个功能函数,都需要在代码中添加注释
- 注释中需要包含函数的功能、参数、返回值等信息
- 跨平台函数应注明平台兼容性
2.2 类注释
- 每新增一个类,都需要在代码中添加注释
- 注释中需要包含类的功能、属性、方法等信息
- 跨平台类应注明平台兼容性
2.3 文件头注释
- 每新增一个文件,都需要在文件头添加注释
- 注释中需要包含文件的功能、作者、日期等信息
- 具体格式参考"9. 版权信息规范"
- 跨平台文件应注明支持的平台
2.4 模块注释
- 每新增一个模块,都需要在代码中添加注释
- 注释中需要包含模块的功能、属性、方法等信息
- 跨平台模块应注明平台兼容性
2.5 变量注释
- 关键变量和复杂逻辑变量需要添加注释
- 注释中需要包含变量的功能、类型、默认值等信息
- 自解释的变量名称可不添加注释
2.6 常量注释
- 关键常量和特殊值需要添加注释
- 注释中需要包含常量的功能、类型、值等信息
- 自解释的常量名称可不添加注释
2.7 枚举注释
- 枚举需要添加注释,说明其用途和使用场景
- 注释中需要包含枚举的功能、成员说明等信息
- 重要枚举值需要单独注释说明
2.8 接口注释
- 每新增一个接口,都需要在代码中添加注释
- 注释中需要包含接口的功能、方法等信息
- 跨平台接口应注明平台兼容性
3. 代码修改原则
3.1 保持代码逻辑
- 在修复已存在的代码时,尽量不要破坏已有的代码逻辑
- 只修复必要的问题,除非有强烈的理由需要改变已有的代码逻辑
3.2 代码可读性
- 在新增或修改代码时,要注意代码的可读性和可维护性
- 避免使用复杂的逻辑和嵌套的条件语句
3.3 冲突处理
- 如果新增或修改的代码与已有的代码存在冲突,要及时通知并协调解决
3.4 代码理解
- 在修改代码时,要先尽量去理解已有的代码逻辑
- 避免引入新的问题
4. 代码风格规范
4.1 缩进与空格
- 使用4个空格进行缩进,避免使用制表符
- 运算符两侧添加空格
- 逗号后添加空格
- 大括号使用K&R风格(左大括号在行尾,右大括号单独一行)
4.2 命名约定
- 遵循各编程语言的主流命名约定
- JavaScript/TypeScript:变量和函数使用camelCase,类名使用PascalCase,常量使用UPPER_CASE
- Python:变量和函数使用snake_case,类名使用PascalCase,常量使用UPPER_CASE
- 其他语言:遵循该语言的PEP或官方指南
- 文件名:使用小写字母和下划线,避免使用空格和特殊字符
- 平台特定代码:使用平台前缀(如win_、linux_、mac_)
4.3 代码长度
- 每行代码长度不超过120个字符
- 过长的代码应适当换行,保持可读性
- URL、文件路径等特殊内容可适度超出限制
4.4 跨平台编码注意事项
- 路径处理:使用相对路径或跨平台路径库,避免硬编码路径分隔符
- 系统调用:使用跨平台库或提供平台特定实现
- 文件编码:统一使用UTF-8编码
- 行尾符:统一使用LF(Unix风格)行尾符
- 环境变量:使用跨平台方式获取环境变量
5. 测试与质量保证
5.1 测试要求
- 新增功能必须编写相应的测试用例
- 修复bug后必须添加回归测试
- 测试覆盖率目标:核心功能≥80%
- 跨平台功能必须在所有目标平台上进行测试
5.2 跨平台测试策略
- Windows:在本地Windows 11环境测试
- Linux:通过SSH远程测试或使用容器
- macOS:在实际macOS环境测试
- 自动化测试:优先使用可在多平台运行的测试框架
5.3 代码审查
- 所有代码修改必须经过代码审查
- 代码审查重点:功能正确性、代码风格、性能影响、安全性、跨平台兼容性
5.4 性能与安全性
- 考虑代码的性能影响,避免不必要的计算和资源消耗
- 注意安全编码实践,避免常见的安全漏洞
- 敏感信息不得硬编码在代码中
6. 版本控制规范
6.1 提交消息格式
- 提交消息应简洁明了,描述具体变更
- 格式:[类型] 简短描述
- 类型包括:feat(新功能)、fix(修复)、docs(文档)、style(样式)、refactor(重构)、test(测试)、chore(构建/依赖)
- 跨平台相关变更:使用[cross-platform]标签
6.2 分支管理
- 主分支:main(稳定版本)
- 开发分支:dev(开发中版本)
- 特性分支:feature/功能名称
- 修复分支:fix/问题描述
- 平台特定分支:platform/平台名称(仅在必要时使用)
6.3 代码审查流程
- 提交Pull Request前进行自我审查
- 至少需要1名其他开发者批准才能合并
- 合并前确保所有测试通过,包括跨平台测试
7. 文档管理规则
7.1 COLLABORATION_GUIDELINES.md
- 记录协同规则和最佳实践的更新
- 包含代码规范、开发流程、团队协作等内容
7.2 README.md
- 记录项目版本更新和功能变更
- 包含项目简介、安装说明、使用方法、常见问题等
- 明确说明支持的平台和平台特定要求
- 同步生成规范英文版README_EN.md
7.3 PROJECT_PLAN.md
- 记录项目规划和重要变更
- 包含项目目标、里程碑、任务分配等
- 记录跨平台开发的具体计划和测试策略
7.4 PROMPT_HISTORY.md
- 记录重要的用户需求、设计决策和技术决策
- 记录关键对话和需求变更的上下文
- 作为项目需求的重要参考文档,用于追溯项目演进
- 定期整理,避免冗余重复内容
7.5 文档更新频率
- 每次代码修改后更新相关文档
- 每次对话后立及更新PROMPT_HISTORY.md
- 项目重要变更时更新所有相关文档
8. 开发流程规范
8.1 流程顺序
- 重大功能开发前先更新PROJECT_PLAN.md,明确开发目标和计划
- 重要需求变更或设计决策后更新PROMPT_HISTORY.md
- 小改动和bug修复可直接进行,无需强制更新文档
- 项目阶段完成后总结COLLABORATION_GUIDELINES.md,沉淀知识
8.2 任务执行步骤
- 分析需求,更新PROJECT_PLAN.md
- 编写或修改代码,添加必要的注释
- 编写测试用例,确保功能正常
- 在所有目标平台上运行测试,验证跨平台兼容性
- 提交代码,编写规范的提交消息
- 更新相关文档(README.md等)
- 进行代码审查
- 合并代码,完成任务
8.3 问题处理流程
- 识别问题,记录在PROJECT_PLAN.md中
- 分析问题原因,制定解决方案
- 实施修复,添加注释说明
- 编写测试用例验证修复效果
- 在所有目标平台上验证修复
- 更新相关文档,记录问题和解决方案
- 提交代码,完成修复
9. 版权信息规范
9.1 统一的版权信息格式
所有文档和代码文件必须包含以下版权信息头部,根据不同编程语言使用对应的注释符号:
9.1.1 Markdown文档 (.md)
<!--
File: 文件名
Project: 项目名称
File Created: 创建时间 (格式: YYYY-MM-DD HH:MM:SS am/pm)
Author: wcs (cs@jsait.com)
-----
Last Modified: 修改时间 (格式: YYYY-MM-DD HH:MM:SS am/pm)
Modified By: wcs (cs@jsait.com)
-----
Copyright (c) 创建年份 JS@
-->
9.1.2 Bash脚本 (.sh)
#!/bin/bash
# File: 文件名
# Project: 项目名称
# File Created: 创建时间 (格式: YYYY-MM-DD HH:MM:SS am/pm)
# Author: wcs (cs@jsait.com)
# -----
# Last Modified: 修改时间 (格式: YYYY-MM-DD HH:MM:SS am/pm)
# Modified By: wcs (cs@jsait.com)
# -----
# Copyright (c) 创建年份 JS@
9.1.3 批处理脚本 (.bat)
@echo off
SETLOCAL
REM File: 文件名
REM Project: 项目名称
REM File Created: 创建时间 (格式: YYYY-MM-DD HH:MM:SS am/pm)
REM Author: wcs (cs@jsait.com)
REM -----
REM Last Modified: 修改时间 (格式: YYYY-MM-DD HH:MM:SS am/pm)
REM Modified By: wcs (cs@jsait.com)
REM -----
REM Copyright (c) 创建年份 JS@
9.1.4 Python脚本 (.py)
#!/usr/bin/env python3
# File: 文件名
# Project: 项目名称
# File Created: 创建时间 (格式: YYYY-MM-DD HH:MM:SS am/pm)
# Author: wcs (cs@jsait.com)
# -----
# Last Modified: 修改时间 (格式: YYYY-MM-DD HH:MM:SS am/pm)
# Modified By: wcs (cs@jsait.com)
# -----
# Copyright (c) 创建年份 JS@
9.1.5 JavaScript文件 (.js)
// File: 文件名
// Project: 项目名称
// File Created: 创建时间 (格式: YYYY-MM-DD HH:MM:SS am/pm)
// Author: wcs (cs@jsait.com)
// -----
// Last Modified: 修改时间 (格式: YYYY-MM-DD HH:MM:SS am/pm)
// Modified By: wcs (cs@jsait.com)
// -----
// Copyright (c) 创建年份 JS@
9.2 应用规则
- 强制要求:所有新创建或修改的文件都必须遵循此规范
- 版权年份:使用文档或文件的实际创建年份
- 时间格式:使用12小时制,格式为"YYYY-MM-DD HH:MM:SS am/pm"
- 文件名:使用文件的实际名称
- 项目名称:使用项目的完整名称
- 注释符号:根据不同编程语言使用对应的注释符号,确保语法正确
- 不破坏功能:添加版权信息时不得破坏文件的现有功能
10. 跨平台开发工具与实践
10.1 推荐工具
- 版本控制:Git(跨平台)
- 编辑器/IDE:VS Code(跨平台)
- 构建工具:CMake、Make、npm等(跨平台)
- 容器:Docker(用于一致的Linux测试环境)
- 远程开发:VS Code Remote SSH(用于Linux开发)
10.2 项目结构最佳实践
- 统一的项目结构,适应所有目标平台
- 平台特定代码分离到独立目录或模块
- 使用配置文件管理平台特定设置
- 提供平台特定的构建和运行脚本
10.3 依赖管理
- 使用跨平台包管理器(如pip、npm、 Cargo等)
- 明确指定依赖版本,避免版本冲突
- 平台特定依赖应在文档中明确说明
- 使用依赖锁定文件确保构建一致性
11. 执行与监督
11.1 规则执行
- 所有开发者必须严格遵守上述规则
- 每次代码提交前应自我检查是否符合规则要求
- 代码审查时应将规则遵守情况作为审查重点
11.2 监督机制
- 定期对项目代码和文档进行规则遵守情况检查
- 发现违反规则的情况应及时提醒并纠正
- 严重违反规则的情况应在团队会议中讨论并制定改进措施
11.3 持续改进
- 定期评估规则的有效性和适用性
- 根据实际情况对规则进行必要的调整和完善
-
收集团队成员的反馈,不断优化规则体系