articles

Coding 原则与规范

coding

编写可维护、高效代码的基石

A bright pink sheet of paper used to wrap flowers curves in front of rich blue background
一、通用开发原则
  1. KISS原则(Keep It Simple, Stupid)
    保持代码简单、清晰,避免过度设计。复杂问题尽量用简单方案解决。

  2. DRY原则(Don’t Repeat Yourself)
    避免重复代码,重复逻辑应抽象为函数、类或模块。

  3. YAGNI原则(You Aren’t Gonna Need It)
    不要为未来可能需要的功能提前编写代码,仅实现当前明确需要的功能。

  4. SOLID原则(面向对象设计五大原则)

    • 单一职责原则:一个类只负责一个功能。
    • 开闭原则:对扩展开放,对修改关闭。
    • 里氏替换原则:子类应能替换父类而不影响程序正确性。
    • 接口隔离原则:接口应小而专,避免大而全。
    • 依赖倒置原则:依赖抽象而非具体实现。
  5. 高内聚、低耦合
    模块内部功能紧密相关,模块之间依赖尽可能减少。

二、代码规范
  1. 命名规范

    • 变量、函数、类名需有意义,避免缩写(除非通用缩写)。
    • 遵循语言惯例(如Python用蛇形命名,Java用驼峰命名)。
  2. 代码格式

    • 统一缩进、空格、换行风格(可使用ESLint、Prettier等工具)。
    • 控制行长度(通常80~120字符)。
  3. 注释与文档

    • 注释解释“为什么”而非“做什么”(代码应自解释)。
    • 公共API必须写文档。
    • 更新代码时同步更新注释。
  4. 函数与模块设计

    • 函数尽量短小,单一职责。
    • 避免过深嵌套,提前返回减少嵌套。
三、工程实践
  1. 版本控制规范

    • 使用Git等工具,遵循分支策略(如Git Flow、GitHub Flow)。
    • 提交信息清晰(可参考Conventional Commits / Angular 规范)。
  2. 测试规范

    • 编写单元测试、集成测试,追求高覆盖率。
    • 测试应独立、可重复。
    • 遵循测试金字塔(底层单元测试多,顶层UI测试少)。
  3. 代码审查

    • 所有代码需经审查。
    • 审查关注逻辑、安全、性能,而非个人风格。
  4. 持续集成/持续部署

    • 自动化构建、测试、部署流程。
    • 及时修复失败的构建。
四、安全与性能
  1. 安全原则

    • 输入验证与过滤,防止注入攻击。
    • 遵循最小权限原则。
    • 敏感信息加密存储与传输。
  2. 性能意识

    • 避免过早优化,但需注意时间复杂度。
    • 监控关键性能指标(响应时间、资源占用等)。
五、文档即代码(Docs-as-Code)

倡导将文档视为与代码同等重要的资产,并使用相同的工作流进行管理。

  • 版本控制:所有技术文档(如需求、设计、API文档)应纳入Git等版本控制系统。
  • 编写格式:推荐使用轻量级标记语言(如Markdown、AsciiDoc)进行编写,便于版本管理和自动化生成。
  • 自动化构建:通过CI/CD流水线自动化构建和部署文档站点,确保文档与代码版本同步更新。
六、常见开发范式补充
  1. 面向对象编程:遵循封装、继承、多态思想。
  2. 函数式编程:提倡不可变数据、纯函数,减少副作用。
  3. 领域驱动设计:复杂业务时,通过领域模型对齐代码与业务逻辑。
七、工具与自动化
  • 使用静态代码分析工具(如SonarQube)。
  • 自动化格式化、安全检查。
  • 依赖管理(定期更新、漏洞扫描)。
总结

软件开发规范的核心目标是:提升代码可读性、可维护性、可扩展性,同时保障软件质量和团队协作效率。实际开发中,团队应根据项目特点(如技术栈、规模、业务领域)制定具体的规范,并借助自动化工具确保执行。随着技术演进,规范也需持续迭代优化。