开发人员:构建API时先自己试试

日期:2016-4-5作者:Zachary Flower翻译:崔婧雯来源:TechTarget中国 英文

API设计   API管理   

【TechTarget中国原创】

简单地构建一个API是不够的。如果在发布API之前不能“先自己试试”,那么结局就是失败。Zachary Flower详细解释了个中原因。创业公司的开发生命周期必然充满妥协。有太多东西需要完成,但是没有足够的资源保证所有东西都“正确”完成,因此开发人员在恰当的时候必须妥协。不幸的是,为产品构建API与其说是技术决策,不如定义成业务决策更为贴切,这也正是需要妥协的地方。

为已有产品构建API的挑战是,业务需求总是最重要的。为了跟上业务需求的脚步,我们通常被强迫在产品质量上作出让步,这在创业公司应用开发过程中很常见,也绝对是API开发的最差方式。

开发API时最重要的一件事是就是使用它。“Dogfooding”是创业论坛里的流行词汇,用来描述企业规律地使用自己的产品,从而更好服务客户的行为。在创建API时,能够“先自己试试”极其重要,因为其向开发人员提供了一种方式来集成业务的核心功能到自己的产品里。如果这样,或者作为主要产品的一部分,API无法正常工作,那么开发人员,及其用户,注定无法获得良好的用户体验。这会让所有人都感觉很糟糕。

挑战代码基

如果在构建API时不先自己试试,那么可能最终需要管理两个单独的,大部分功能一样的代码基。第一个代码基,主要产品,是大部分开发活动发生的地方。因此,它比第二个代码基,API,更加清晰并且功能更为丰富。

被称为“第二个”代码基的API,会很快成为无主代码。它的更新很繁琐,和实际开发相比更像数据处理的工作,因为大部分工作是从“主要”代码基里拷贝方法出来。因为其特性和bug修复晚于主要产品,这会使得用户——至少坚持在使用的消费者——感到上当受骗,甚至可能感到被开发人员背叛了。

API开发会最终延期,甚至可能完全终止,从而保证团队将更多的资源关注于主要产品上。

正确还是完全不正确

当构建API时,一个很好的规则就是,如果还没有准备好重写所有后台代码从而自己试试API,那么最好避免开发API。要像思考任何新产品那样仔细全面地思考开发API的决策。这样,你才能高效投入到构建两个新产品里,因为不能不使用API。

当API是你自己产品的正式后台时,那么很容易保持代码DRY——不重复自己。特性直接为API而开发,这使得可以立即向客户发布特性。这也使得在将主要产品发布给API用户之前测试这些新特性容易得多。当制造者同时也是产品的用户时,那么所有API上存在的问题都会得到极大的重视。Bug会被立即修复,因为它们影响到所有人。

随着开发人员越来越频繁地使用第三方API,我发现大家都能够指出哪些是核心产品的核心部分,哪些是后来添加的东西。不需要专家就能构建出质量良好的产品,开发人员会主动解决使用产品直接会遇到的问题:这在后来开发的API里就缺失这样的关注。

我们一直都在努力坚持原创.......请不要一声不吭,就悄悄拿走。

我原创,你原创,我们的内容世界才会更加精彩!

【所有原创内容版权均属TechTarget,欢迎大家转发分享。但未经授权,严禁任何媒体(平面媒体、网络媒体、自媒体等)以及微信公众号复制、转载、摘编或以其他方式进行使用。】

微信公众号

TechTarget微信公众号二维码

TechTarget

官方微博

TechTarget中国官方微博二维码

TechTarget中国

评论
查看更多评论

敬请读者发表评论,本站保留删除与本文无关和不雅评论的权力。

企业应用集成(EAI)>更多

相关推荐

  • 如何创建成功的RESTful API设计

    设计好的API是一项困难的任务,存在很多主观指标。哪怕是完全拥抱RESTfulAPI设计并对其问题域拥有完整视图的小型初创企业最终也会出现命名不一致、界面模糊以及无记录语义等问题。

  • 企业应用获得成功不可或缺的力量——API

    毋庸置疑,我们已经进入到CA Technologies一直强调的应用经济时代。但是,企业若想在应用程序领域取得成功,管理好API是其必不可少的一个因素。

  • RESTful API设计给开发人员带来怎样的未来?

    在模块化应用世界里,最为持久的争论莫过于面向服务架构和表述性状态转移之争了。本文探讨这样的争论带来了什么及其背后的原因。

  • API管理:万物互联引发的商机

    无论是数据交流,后端和前端的连接,还是与各种设备的互联,API都如同一条纽带贯穿其中,越来越多的企业正在借助API推动业务新的发展。

技术手册>更多

  • OSGi模块化技术手册

    最近有一些争论,主要是关于是否完全成熟的OSGi模块化是严格意义上必须的东西,或者Jigsaw是否一种足够好的“更简单”的方法。但是也许关键点在于对于任何既定的组件在哪里适合什么模块化。OSGi是Java领域里无可辩驳的最成熟的模块系统,它与Java几乎是如影相随。在这本技术手册中我们将分三部分来和大家聊聊OSGi模块化以及它和Java千丝万缕的关系。

  • 移动BPM攻略指导

    随着iPhone,Android等移动设备的兴起,移动设备已经在人们的日常工作中发挥着重要的作用,跨越多个时区的人们经常使用手机进行沟通,重要的是,信息管理要适应移动办公这种新的工作方式,移动应用时代来临了。而对于移动应用来说,业务流程管理(BPM)成为了焦点,使用BPM可以大的提高企业的工作效率。可以这样说,移动BPM开启了企业流程管理的新纪元。

  • 企业云ERP学习

    云之一词的出现带起一片“云海”,也改变了很多事情,改变传统的IT架构模式,冲击了传统的业务运作模式。那么企业内部资源规划,即ERP系统当然不能落于人后。

  • BPM项目错误规避指南

    业务与技术的交叉点正是BPM关注的焦点,这也是大多数重大IT问题出现的地方,通过为业务分析员和软件开发人员提供通用的工具,BPM有希望使应用集成发生革命性变化。正因为这样,技术不能够单独支撑BPM的全部内容,也不能单独解决业务流程的所有问题。业务是BPM依托的另一方面。但是企业在进行BPM项目时却会遭遇种种问题,而有些问题是可以通过前期工作避免的,本期TT SOA技术手册介绍如何合理规避BPM项目中的错误,同时提供BPM技巧和工具信息。

TechTarget

最新资源
  • 安全
  • 存储
  • CIO
  • 数据库
  • 服务器
  • 云计算