本文概要
简要介绍C/C++ 网络应用系统的特点、应用场景,简述适用于C/C++ 网络应用的开发流程。
C/C++ 网络应用系统特点
- 高性能
- 高吞吐量
- 节省内存
- 开发、测试用时多、开发效率慢
- 调式成本特别高
C/C++ 网络系统的应用场景
- 数据接口服务
- 计算密集型应用,比如搜索引擎、图像处理、统计学习等
- 特殊领域应用,只能由C/C++ 完成
开发流程的目标
由于上面提到的C/C++ 的特点和应用场景,因此开发流程要达到下面的目标:
- 安全
- 控制bug
- 保证收益
开发流程
需求
因为C/C++ 系统的自身特点,在网络应用中,它们常常担当后端系统、基础服务等。在整个产品的系统架构中,C/C++系统和业务系统常常被分离开来。C/C++ 系统不直接响应来自产品的需求,只响应业务系统提出的技术升级或改造。
设计
- 日志一定全面,Debug、info、warning、error、fetal
- 使用参数开关来控制新加的特性,对新的特性一定要追加日志
- 单例测试覆盖率要尽可能高
- 对输入的安全检查一定要做到位
- 可扩展性一定要高
编码
- C/C++ 代码要遵守代码规范和代码标准
- C/C++ 代码书写尽量遵从ANSI/ISO 标准
- 不要使用生僻的语法
- 代码可读性和可维护性一定要高
- 一定要书写单例测试
测试
- A/B 测试
测试环境的搭建
必须多套测试环境
- 普通测试环境
- 压力测试环境
- 沙箱环境
- 线上小流量环境
必须在每一种测试环境都测试完成后,才能发布到生产环境或在生产环境上推全流量
发布
灰度发布