知用网
柔彩主题三 · 更轻盈的阅读体验

服务端开发代码规范:别让烂代码拖垮系统

发布时间:2025-12-09 19:03:23 阅读:48 次

命名不是小事,别再用 user1、tempData 了

刚接手一个老项目时,打开文件看到一堆 getSomething()、handleData() 这种函数名,真让人头大。你不知道它到底干了啥,只能一行行往下读。服务代码动不动几千行,命名模糊等于埋雷。变量和函数名得清楚表达意图,比如 getUserById 比 getData 强十倍,别人一眼就知道这是按 ID 查用户。

类名也一样,别图省事叫 Utils 或 Tools,这种名字就像垃圾桶,啥都往里扔。如果是一堆日期处理方法,就叫 DateHelper;如果是发邮件相关的,直接叫 MailService,谁看了都明白。

接口返回要统一,别让前端猜数据结构

有次上线出问题,前端说接口返回的字段突然变成 null,但文档没改。查了一圈才发现后端在异常时直接返回空对象,正常时却套了一层 data。这种不一致让调用方很难受。建议所有接口返回统一格式:

{
  "code": 0,
  "message": "success",
  "data": {
    "id": 123,
    "name": "zhangsan"
  }
}

哪怕没数据,也保持结构不变,前端处理起来省心,不容易崩溃。

错误处理别忽略,日志要能定位问题

线上服务最怕出错找不到原因。有人写代码 catch 了异常就打印个 error occurred 完事,这等于没打。记录日志得带上关键上下文,比如用户 ID、请求路径、输入参数。最好还能生成唯一 traceId,方便追踪整个调用链。

另外,别把数据库密码、密钥这些敏感信息写在代码里。曾经有个同事把配置明文提交到 Git,半夜被叫起来处理数据泄露风险。该用环境变量就用环境变量,别偷懒。

接口别太“胖”,一个函数只干一件事

见过一个函数写了两百多行,从参数校验、写数据库、发消息队列到通知第三方全包了。这种代码改一处就得测全部,一动就容易崩。函数应该尽量单一职责,比如校验归校验,存储归存储。拆开之后不仅好测试,复用性也高。

比如用户注册流程,可以拆成 validateRegisterForm、createUserRecord、sendWelcomeEmail 几个独立步骤,每个步骤出问题都能单独处理,逻辑清晰。

代码格式靠工具,别靠人眼盯

团队里有人喜欢用四个空格,有人坚持两个空格,还有人用 Tab。风格不统一看着就累。与其争论,不如直接上 ESLint、Prettier 这类工具,提交代码前自动格式化。配置一次,全员遵守,省下无数口水战。

同样的,API 文档也别靠手写。用 Swagger 或 OpenAPI 自动生成,接口变了文档自动更新,前端不用再问“这个字段到底有没有”。