[问答] 如何通过“设计优先”方法支持系统快速增长

  2018年10月23日

如果您正在使用 OpenAPI 规范 (OAS) 开发 API,并使用 Swagger 工具,您可能已经听说过采用“设计优先”方法的重要性。

“设计优先”方法倡导在开始开发 API 之前,使用 OAS 等通用标准定义您的 API,并在 API 设计上达成一致。在“设计优先”方法中,API 定义作为 API 开发的唯一真实来源,可以帮助简化 API 生命周期中后续流程,包括开发、测试、文档等。

但在大规模采用“设计优先”方法也可能带来挑战。这就是为什么我们很高兴 Viasat 的系统工程师 Cyndi Recker 将在即将到来的 SmartBear Connect 大会上发表演讲。在她的演讲“通过‘设计优先’方法支持系统快速增长”中,Cyndi 将展示如何管理系统中广泛的元素,使用“设计优先”方法建立通用的分层数据字典,并创建可重用组件来构建系统 API。

我们最近有机会采访了 Cyndi,了解她的组织如何通过 SwaggerHub 采用“设计优先”方法,并预览她在 SmartBear Connect 上的演讲。

请继续阅读以了解更多信息。

除了您的简历,您还希望参会者了解您的什么?

我对我所做的几乎所有事情都充满热情,无论是在工作中还是在个人时间里。我精力充沛,需要消耗掉所有能量,并努力将生活中的每项任务都视为一次冒险。

您使用 SmartBear 工具(如 SwaggerHub)的经验如何?

我曾在以前的职位中使用过 Collaborator (以前称为 Code Collaborator),它对我们的团队非常有用。我们是全球分布式团队;我的团队成员分布在圣何塞、亚利桑那州、印度和波士顿。Collaborator 运行良好,因为它帮助我们跨越了时间和语言障碍。

谈到我使用 SwaggerHub 的经验,我在 Viasat 使用它已经一年多了,我是一名系统工程师,负责系统的硬件和软件架构。商业移动系统非常复杂,其通信接口跨越飞机、卫星和地面,为航空公司乘客提供 Wi-Fi 服务。

像许多架构一样,系统随着时间的推移而演变,并出现了异常,导致接口出现问题。存在许多系统到系统消息,其中从原始点(如门户)获取的信息在到达最终目的地之前需要多次跳转。例如,一个对象(如飞机)曾被多次创建,具有不同的名称和属性。MAC 地址也是如此。

过去,我曾参与一个军事空间通信项目,当时我手动制作了一个数据字典和需求可追溯工具,因为市场上没有适合我们需求的产品。几年后,我来到 Viasat,面临类似的工具需求。

因此,一年多前我担任这个职位时,我们希望 SwaggerHub 域技术能帮助我们解决一些问题。虽然不完全适合,但它使我们能够在处理新设计的同时维护现有系统。我们可以使用一组通用数据实体和消息作为基础来构建分层模型。SwaggerHub 正在为我们的业务解决一些问题,最重要的是,它帮助我们整理数据。

总而言之,我认为优势在于:

首先,使用域可以让您组织数据,从而在了解所有变更的影响方面获得最大收益。

其次,使用您的 SwaggerHub 工具,您可以点击 API 中的引用,它将导航到另一个文档中的反向引用定义。这有助于您识别使用该实体的 API 和域。将来,我希望看到一个功能,允许我点击一个定义并提供使用该数据实体的所有 API 的摘要。

最后,SwaggerHub 提供了一种与不同角色(如架构师、开发人员、测试、质量保证等)的各种团队成员协作的方式,他们都可以接触到信息并推动项目进展。

Viasat 是何时转向“设计优先”方法的?

我认为 Viasat 一直都有“设计优先”方法,但缺乏出色的工具支持架构和设计任务。

您认为谁将从参加您的演讲中受益最大?

我认为这次会议对许多不同的参与者都有好处。我将展示域如何有助于整合从门户 UX/UI 到更低级系统间消息的多种类型的接口。我还认为,对于那些需要通过包含通用数据的 API 来扩展系统以实现增长的人,以及那些使用 Swagger.io 但尚未尝试过 SwaggerHub 的人来说,这将很有帮助。

您对 SmartBear Connect 最期待的是什么?

我真正感兴趣的有两件事:一是培训和学习其他一些产品,二是结识一些同行,也许能看看他们如何解决一些我还没想出办法的问题。

如果您希望与同行见面讨论类似问题,您有什么正在解决的问题想和他们谈谈吗?

我使用 SwaggerHub 的“设计优先”方法遇到的一个问题是真正达到代码生成的程度。你无法真正实现全面的代码生成成熟度,你仍然需要手动修改代码。所以,我很乐意讨论从 SwaggerHub 进行代码生成的话题。我可能会问:“你们成功了吗?”如果成功了,“你们是如何超越并实现代码自动化的?”

我还非常希望能够对我们的 API 进行自动化测试,并了解其中一些工作原理,因为我们 Viasat 尚未进行过自动化测试。

你们目前如何测试 API?

我们结合了内部测试,并在某些情况下使用 Soap UI。最近,我们组织采用了 DevOps 方法,将测试作为团队的一部分。一些团队正在考虑使用 SoapUI Pro 和 LoadUI Pro 的 ReadyAPI 解决方案。我期待在 SmartBear Connect 的培训课程中更深入地了解这些产品。

今年 10 月 29 日和 30 日,Cyndi 将在 SmartBear Connect 等待与您交流。她非常期待来到波士顿并与您见面。想加入 SmartBear Connect 吗?使用促销代码 "SwaggerHub_Connect18" 可节省 100 美元。 

 

© . All rights reserved.