为什么开发人员在实现版本控制时如此珍贵地发布API?
当我听到关于发布版本1 API的讨论时,它始终伴随着这个基本的想法:
这是Vic Gundotra最近的一个例子,但是在API发布前一天还有很多其他的包括Stackoverflow本身. 我不明白的是,为什么第一个版本必须如此“正确”?使用API??,您可以实现版本控制和良好的文档,如果您做得好,哪个并不难,为什么对版本1 API如此珍贵? 从版本到版本,因为它是版本化的,所以API可以在没有任何重大更改的情况下发生显着变化,因为仍然支持旧版本.我想知道为什么发布API的重大问题? 解决方法
这意味着两件事: >维护API的多个版本.即使你只支持“最后3个版本”仍然是一个负担.特别是,如果您在以后公开要删除的功能,则意味着您无法执行任何清理工作,这些清除工作将作为删除的一部分提供,直到N个版本来来去去.考虑由于API中的重大变化而可能产生的存储数据的任何分支 – 当多个系统使用它们时,迁移存储表示,在不同的发布计划上更新,这是一个真正的痛苦. (是的,实现和API之间存在差异 – 但API中的更改通常最终意味着在堆栈中一直发生变化.) 正确设计API是一件棘手的事情.是的,在实用主义和完美主义之间取得了平衡 – 但它并不像你想要的那样简单. 我还要指出,(例如)一个开源项目与10个用户快速推出然后更改它,以及像谷歌或微软这样的公司为全球开发者社区这样做之间存在相当大的维护差异.大公司的内部API(您无法轻松修复整个代码库)与小公司的内部API之间存在巨大差异,您可以随时随地改变世界. 对于对此做出如此重大的事情感到惊讶,我有一些同情 – 但这表明你没有经历过改变API可能意味着什么的痛苦.你可能同样感到惊讶 – 或者甚至更多 – 只要在一个错误的决定逃逸到世界之后做出根本改变是多么困难. (免责声明:我在谷歌工作,但不在G区工作.这个答案中的意见是我自己的,不代表谷歌.) (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
- asp.net-mvc – 在ASP.NET MVC视图中使用代码隐藏
- asp.net – 如何防止重播攻击?
- 如何在非MVC ASP.NET应用程序中使用Fine Uploader服务器端
- asp.net-mvc-3 – MVC3不显眼的验证在IE中不起作用
- ASP.NET的会员系统是否足够安全?
- asp.net-mvc – ASP.NET MVC ValidateInput(false)停止使用
- asp.net – 将OpenID集成到网站的注册过程中
- asp.net – asmx到WCF或Web API
- asp.net-mvc – ASP.NET MVC如何在生产中禁用调试路由/视图
- asp.net-mvc – 单元测试ViewEngines.Engines.FindView的正
- 可以在ASP.NET用户控件中使用void async方法吗?
- 框架类似于ASP.Net AjaxPro
- asp.net-mvc – 仍然在存储库和解耦,ASP.NET MVC
- asp.net – 这个LINQ statment是否容易受SQL注入
- 在代理服务器后面设置ASP.NET应用程序的基本URL
- ASP.NET Web API中除IQueryable之外的OData查询和
- asp.net core 系列 5 MVC框架路由(上)
- ASP.NET站点移动到IIS7会导致页面输出中出现乱码
- asp.net“记住我”的cookie
- asp.net-core – 如何在EF Core 2.1.0中为Admin用