Skip to main content
Glama
DEVELOPMENT_GUIDE.md3.15 kB
# 开发指南 - 防止功能回退 ## 🎯 问题背景 在快速开发过程中,新功能经常会破坏已有的功能。这个指南提供系统化的解决方案。 ## 🛡️ 保护机制 ### 1. 自动回归测试 ```bash # 每次开发前运行 python3 test_regression_protection.py # 提交前自动运行(已配置Git hook) git commit -m "your message" # 会自动运行测试 ``` ### 2. 功能隔离开发 ```bash # 为新功能创建分支 git checkout -b feature/new-feature-name # 开发完成后合并 git checkout main git merge feature/new-feature-name ``` ### 3. 测试驱动开发 - 修改功能前,先确保现有测试通过 - 添加新功能时,同时添加对应测试 - 重构代码时,保持测试绿色 ## 🔧 核心功能模块 ### Docker配置管理 - **文件**: `docker_config_manager.py` - **测试**: 包含在回归测试中 - **关键功能**: 容器配置、镜像管理、shell设置 ### Zsh配置管理 - **文件**: `enhanced_config_manager.py` - **测试**: `test_zsh_connection.py` - **关键功能**: 配置文件复制、环境设置 ### 三级跳板连接 - **文件**: `enhanced_config_manager.py` - **配置**: hg222服务器配置 - **关键功能**: relay → szzj → 目标服务器 ## 📋 开发检查清单 ### 开发前 - [ ] 运行 `python3 test_regression_protection.py` - [ ] 确认所有现有功能正常 - [ ] 创建功能分支 ### 开发中 - [ ] 频繁运行相关测试 - [ ] 保持小步提交 - [ ] 及时更新测试 ### 开发后 - [ ] 运行完整回归测试 - [ ] 检查是否影响其他功能 - [ ] 更新文档和测试 ## 🚨 常见问题模式 ### 1. 配置文件冲突 **问题**: 修改配置管理器时破坏现有配置 **解决**: - 保持向后兼容 - 添加配置迁移逻辑 - 测试所有配置场景 ### 2. 依赖关系破坏 **问题**: 修改一个模块影响其他模块 **解决**: - 明确模块边界 - 使用接口而非实现 - 添加集成测试 ### 3. 环境差异 **问题**: 本地工作但其他环境失败 **解决**: - 统一开发环境 - 使用容器化测试 - 多环境验证 ## 🔄 持续改进 ### 测试覆盖扩展 ```bash # 添加新的测试到回归保护 # 编辑 test_regression_protection.py # 在 core_tests 列表中添加新测试 ``` ### 监控和报告 - 查看测试报告: `regression_test_report_*.txt` - 分析失败模式 - 优化测试策略 ## 💡 最佳实践 1. **小步快跑**: 频繁小提交比大改动更安全 2. **测试先行**: 修改前确保测试覆盖 3. **功能隔离**: 新功能独立开发和测试 4. **文档同步**: 代码和文档同时更新 5. **团队协作**: 共享测试和最佳实践 ## 🛠️ 工具和命令 ```bash # 快速测试 python3 test_regression_protection.py # 检查特定功能 python3 test_shell_config.py python3 test_zsh_connection.py # 安全提交(会自动运行测试) git add . git commit -m "feat: 新功能描述" # 强制跳过测试(不推荐) git commit --no-verify -m "紧急修复" ``` --- **记住**: 预防胜于治疗。花时间建立好的开发流程,比后期修复破坏的功能更高效!

Latest Blog Posts

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/maricoxu/remote-terminal-mcp'

If you have feedback or need assistance with the MCP directory API, please join our Discord server