请按照以下开发规范和要求进行Chat-Room项目的开发,重点遵循极简主义原则: 优先使用Augment Context Engine来分析问题, 提出方案 这是一个个人学习socket编程的练手项目 **极简设计原则:** - 遵循"如无必要,勿增实体"的原则,删除所有冗余代码和不必要的功能 - 动态评估和重构代码,确保每一行代码都有明确的存在价值 - 优化项目结构,确保简洁性、可读性和良好的学习体验,特别适合新手入门 - 文件结构保持扁平化: - 根目录只保留必要文件:主入口文件、配置文件、README.md、package.json等 - 所有测试文件统一放在`test/`目录下 - 演示代码放在`demo/`目录下 - 源代码按功能模块组织在`client/`, `server/`, `shared/`目录下 - 设计文档、分析文档、总结文档等都放在`docs/`目录下 - 配置文件放在`config/`目录下 - 对调试工具, 临时测试, 重复文档, 过时文档, 验证脚本等带有临时性质的文件及时分门别类地归档到 `archive/`文件夹下 - 每次commit之前都要检查是否需要归档的文件 **代码规范:** - 所有代码注释必须使用中文 - 为每个函数、类、重要逻辑块添加详细且适当的中文注释,说明其功能、参数、返回值和使用场景 - 使用清晰易懂的代码写法,优先选择可读性高的实现方式 - 避免过度工程化,选择最直接有效的实现方案 - 变量和函数命名使用英文,但要求语义清晰,避免缩写 **版本控制:** - 每完成一个独立功能模块或完成一个问题的解决后立即进行一次git commit - commit信息必须使用中文,要求简短精炼(建议20字以内),准确体现本次提交的核心内容 - commit信息格式:[功能类型]: 具体功能描述 - 功能类型包括:新增、修复、优化、重构、文档、测试等 - 在提交前确保代码通过基本测试,避免提交破坏性代码 **架构设计:** - 采用模块化开发方式,将功能拆分为独立的模块 - 降低模块间的耦合度,提高代码的可维护性和可扩展性 - 按照功能的重要程度和依赖关系制定开发优先级: 1. 核心通信功能(消息收发、连接管理) 2. 基础UI界面(消息显示、输入框) 3. 文件传输功能(上传下载、进度显示) 4. AI集成功能(GLM-4-Flash API集成) 5. 界面美化和高级功能(主题、表情、通知等) - 每个模块都应该可以独立测试和部署 - 使用配置文件管理所有可配置参数,避免硬编码 **功能实现:** - 严格按照项目文档中提到的所有功能进行实现,确保功能完整性 - 基于现有代码架构进行开发,保持与现有模块的兼容性 - 如发现文档中的设计不合理,可以提出改进建议,但必须保证原有功能需求得到满足 - 在实现过程中如有疑问或需要澄清需求,及时沟通确认 - 优先实现MVP(最小可行产品),然后逐步迭代完善 - 确保新功能不会破坏现有功能的正常运行 **文档要求:** - 编写完善的项目文档,包括功能说明、使用方法、API接口等 - 创建详细的README.md文件,包含: - 项目简介(一句话说明项目用途) - 快速开始指南(3步以内启动项目) - 功能特性列表 - 安装和配置步骤 - 使用示例和演示 - 开发指南和贡献说明 - 故障排除和常见问题 - 保持文档与代码同步更新,文档应该简洁明了,避免冗长描述 - `docs/` 中只保留 - 为重要的配置选项和API接口提供示例 **质量保证:** - 为每个核心功能编写单元测试,测试覆盖率应达到主要功能点 - 确保代码在不同环境下的兼容性(Windows、macOS、Linux) - 定期进行代码审查和重构,移除不再使用的代码 - 在添加新功能前,先运行现有测试确保不会引入回归问题 - 使用适当的错误处理和日志记录,便于调试和维护 **特别注意事项:** - 基于记忆中的项目配置管理偏好,使用YAML/JSON配置文件替代环境变量 - 服务器和客户端使用独立的配置文件,包含所有相关设置并提供默认值和模板 - AI模块改进需按照GLM-4-Flash API文档进行,确保API调用的正确性和稳定性 - 在开发过程中始终考虑新手用户的学习体验,代码和文档都要易于理解