项目中接口定义不可少

这几天一直在整理公司的code,有段C++的code的逻辑要移到Java code中,就是几十个参数的处理逻辑,从C++转成Java。

过程很痛苦,原因如下:

  1. 相关逻辑非常复杂,零散分布在各个模块中
  2. 没有人能讲清楚现有的逻辑,都只能粗线条的讲个大概
  3. 先前没有文档记录相关逻辑

如果是先前做这一块逻辑的人来整这个task,应该是轻车熟路,但这个不是理由。该做的task必须完成。

这里我想说的是,项目规模比较大的时候,一个清晰的接口定义何其重要!

我希望的接口定义大致包括:

  • 模块间数据flow
  • 模块间数据结构说明
  • 模块间调用的API说明

很多项目往往由于工期紧,或者公司没有硬性要求,于是没有文档记录接口相关信息。每次fix bug时的修修补补,也没有像样的统一的记录。

这样做导致的不好的后果是:

  • 时间长了,即使是原作者也会记不清接口,调试和维护时要花费额外的effort来“回顾”
  • 接手项目的人要花很多的时间去摸索接口API、数据flow、接口数据结构,经常绕很多弯路
  • 代码质量不高,因为没有清晰的接口定义,就不会有清晰的大局观。在只见树木不见森林的情况下“修修补补”,是危险的,也是错误的做法

所以,还是不要偷懒,接口定义不可少。方便别人也方便自己。

BTW,一旦发现代码逻辑过于复杂和分散了,要及时重构,不要偷懒。

你可能感兴趣的:(项目中接口定义不可少)