本文共 1383 字,大约阅读时间需要 4 分钟。
程序员常说:“我最讨厌别人写的代码没有文档,我也最讨厌自己需要写文档。”这句话道出了开发者对文档的复杂情感。对于大多数程序员来说,文档的价值不言而喻,但在实际开发中,如何平衡文档与代码的维护却是一个永恒的难题。
在大规模或超大规模项目中,尤其是需要大量协同开发的项目中,文档的缺失往往会带来严重的后果。项目交接、接口对齐往往靠口口相传,接口定义的准确度难以保证,进而影响整体开发效率。然而,文档往往不被计入考核指标,开发者缺乏动机去撰写高质量的文档,这种情况在AI项目中尤为明显。
作为文档爱好者,撰写和维护文档是日常工作的一部分。然而,面对快速变化的需求和繁重的代码维护任务,如何有效管理文档与代码的同步始终是一个难题。更何况,在AI研发中,开发者不得不面对大量重复性的网络编程工作,这不仅降低了代码质量,也严重压缩了AI专家在核心领域的时间投入,导致企业投入大量人力却难以获得好的效果。
AI接口开发与传统API有显著不同。其开发流程通常包括以下步骤:
前三项是我们团队的核心优势,但API上线却消耗了大部分开发时间。由于大多数开发人员对API相关库(如 Flask、Tornado)的熟悉度较低,且生成的代码质量往往不高,接口开发成为一项繁重的任务。
为了解决上述问题,我们引入了文档驱动的开发模式。核心思想是:API接口文档包含了实现接口的所有信息,因此我们只需完成文档或代码中的一项,另一项可以通过框架自动生成。
我们参考了 OpenAPI Specification 3.0.1 标准和 JSON Schema,开发了一套API描述语言。基于此描述语言撰写API文档即可完成接口开发工作。初步估计,文档驱动模式可以将API开发工作量减少40%-70%。
为了实现文档驱动开发模式,AIMS 基于 Tornado 开发了一套高效的Web后端框架。框架的核心组件包括:
Application Router 组件
Request Handler 组件
Watchman 组件
Recorder 组件
Logger 组件
在 AIMS 架构中,Document 是唯一需手动维护的组件,其余组件均由框架自动生成。这样既降低了开发工作量,又解决了接口一致性问题。自动生成的组件质量优于手动开发,提升了整体服务质量和稳定性。
通过文档驱动模式,开发者只需关注核心功能,减少了重复性工作,提升了开发效率。这一模式在 AI项目中尤为有效,帮助我们高效完成接口开发并保持接口一致性。
转载地址:http://zmquz.baihongyu.com/