Skip to content

Latest commit

 

History

History
167 lines (128 loc) · 4.32 KB

File metadata and controls

167 lines (128 loc) · 4.32 KB

贡献指南 / Contributing Guide

感谢您对计算机网络实习项目的贡献兴趣! / Thank you for your interest in contributing to the Computer Network Internship Project!

🚀 如何贡献 / How to Contribute

1. 报告问题 / Reporting Issues

如果您发现了bug或有新功能建议,请:

  • 检查现有的Issues确保问题未被报告
  • 创建新Issue并提供详细描述
  • 包含复现步骤、预期行为和实际行为
  • 提供系统环境信息(操作系统、编译器版本等)

2. 提交代码 / Code Contributions

开发环境设置

# 1. Fork并克隆仓库
git clone https://github.com/your-username/Computer_Network_Internship.git
cd Computer_Network_Internship

# 2. 安装依赖
make install_deps_ubuntu  # Ubuntu/Debian
# 或 make install_deps_centos  # CentOS/RHEL

# 3. 编译测试
make
make test

代码提交流程

  1. 创建分支: git checkout -b feature/your-feature-name
  2. 编写代码: 遵循项目编码规范
  3. 测试代码: 确保所有测试通过
  4. 提交更改:
    git add .
    git commit -m "feat: 添加新功能描述"
  5. 推送分支: git push origin feature/your-feature-name
  6. 创建Pull Request

3. 代码规范 / Coding Standards

C语言编码规范

  • 缩进: 使用4个空格,不使用Tab
  • 命名:
    • 函数名使用snake_case: handle_client()
    • 变量名使用snake_case: client_sock
    • 常量使用全大写: BUF_SIZE
  • 注释:
    • 函数前添加简洁的功能说明
    • 复杂逻辑添加行内注释
    • 使用中英文双语注释

示例代码风格

/**
 * 处理客户端连接
 * Handle client connection
 */
void handle_client(int client_sock) {
    char buffer[BUF_SIZE] = {0};
    
    // 接收客户端数据 / Receive client data
    int bytes = recv(client_sock, buffer, sizeof(buffer) - 1, 0);
    if (bytes <= 0) {
        close(client_sock);
        return;
    }
    
    // 处理请求逻辑 / Process request logic
    process_request(buffer);
}

4. 测试要求 / Testing Requirements

在提交PR前,请确保:

  • 代码编译无警告: make
  • 语法检查通过: make test_syntax
  • 功能测试通过:
    • HTTP服务器能正常启动和响应
    • FTP服务器支持多客户端连接
    • FTP客户端能正确执行所有命令
  • 内存泄漏检测: valgrind ./server (可选但推荐)

5. 提交信息规范 / Commit Message Guidelines

使用语义化提交信息:

<type>: <description>

[optional body]

[optional footer]

提交类型:

  • feat: 新功能
  • fix: bug修复
  • docs: 文档更新
  • style: 代码格式修改
  • refactor: 重构代码
  • test: 测试相关
  • chore: 构建过程或辅助工具变动

示例:

feat: 添加FTP服务器断点续传功能

- 实现RESUME命令支持
- 添加文件偏移量检测
- 更新客户端界面

Closes #123

🎯 贡献方向 / Contribution Areas

优先级高的改进

  • 🔒 安全性增强: SSL/TLS支持、输入验证、权限控制
  • 🚀 性能优化: 异步I/O、连接池、缓存机制
  • 🌐 协议完善: HTTP/2支持、更多FTP命令、IPv6支持
  • 🧪 测试覆盖: 单元测试、集成测试、压力测试

功能扩展建议

  • 📊 Web界面美化和功能增强
  • 📱 移动端适配
  • 🔍 日志系统和监控
  • 📈 统计和分析功能
  • 🌍 国际化支持

📝 文档贡献 / Documentation

文档同样重要!您可以帮助:

  • 改进README文档
  • 添加代码注释
  • 编写使用教程
  • 翻译项目文档
  • 制作项目演示视频

❓ 获取帮助 / Getting Help

如果您有任何问题:

🎉 致谢 / Acknowledgments

感谢每一位贡献者的努力!您的贡献将出现在项目的Contributors页面。

贡献者列表

  • 代码贡献者会自动显示在GitHub Contributors中
  • 重要功能贡献者将在README中特别感谢
  • 文档和测试贡献同样重要和有价值

📄 许可证 / License

通过贡献代码,您同意您的贡献将在与本项目相同的MIT许可证下授权。


再次感谢您的贡献!Together we make it better! 🚀