【TED演讲】Arduino创始人:开启开源想象力
近几年,API经济纷纷崛起,无论是国外还是国内,众多厂商积极开放API。从2011年开始,数据通过API开发出来已成为一种趋势,与此同时它也逐渐发成为<a href="" target="blank">企业的核心业务http://www.csdn.net/article/2013-03-04/2814333-8000-apis-rise-of-the-enterprise。据不完全统计,国外知名站点<a href="" target="blank">ProgrammableWebhttp://www.csdn.net/article/2014-04-24/2819476-API收录的新API就达到数万个,而且还在不断增长中。
利用丰富的第三方API,开发者轻松构建出一款应用,极大地提高开发效率和开发质量。而对于厂商而言,他们似乎更乐意将<a href="" target="_blank">API推向市场http://www.csdn.net/article/2014-04-30/2819563-10-Ways-To-Market-Your-API,比如通过创建API社区、社交网络等,因为这样更有利于把产品推向市场,从而达到共赢。
有人说,有API的地方就有App,有的甚至将API作为构建成功Web应用程序的关键因素之一(<a href="" target="blank">提高API采用率的六大方法http://www.csdn.net/article/2014-03-20/2818851-Six-Great-Ways-to-Increase-API-Adoption)。这足以说明,API已悄悄地融入进每个人的生活。原文作者RANDALL DEGGES发表了这篇博文《<a href="" target="blank">API-Driven Developmenthttps://stormpath.com/blog/api-driven-development/》,笔者对此文进行了摘译。
译文如下:
<a href="" target="_blank"><img src="" alt="" border="0" />http://img.kuqin.com/upimg/allimg/140929/2324546020-0.jpghttp://img.kuqin.com/upimg/allimg/140929/2324546020-0.jpg
作为一名开发者,诚然编写代码如同作家提笔挥毫,非常有成就感与乐趣,但同时我也觉得删除代码是件不相伯仲的美事。为什么呢?因为在进行删除工作时,意味着自己找出了造成干扰的位置,意味着找到了冗余无用的代码,甚至是找到了能用更少代码实现相同功能的途径。代码越少,意味着出错的几率越低。
我的观点是:利用好第三方API,减少自己的代码工作量,让出错的概率尽量降低。只有这样,我们才可以把更多精力放到更核心的开发工作或业务逻辑思考当中去。
我们没有想象中聪明
<a href="" target="_blank"><img src="" alt="" border="0" />http://img.kuqin.com/upimg/allimg/140929/2324541547-1.jpghttp://img.kuqin.com/upimg/allimg/140929/2324541547-1.jpg
一名善于阅读和思考的程序员,想必是出众的程序员,譬如正在浏览本文的你。但是无论我们多么优秀,一个无法避免的事实是我们写的代码绝不可能零错误。
最合理的时间利用,不是为每一个项目都进行重复建设,依葫芦画瓢。更好的时间分配是我们能持续打造更令人惊叹的应用,不断推陈出新。
如果要为应用添加日志功能,Loggly足可为我们节省三年左右的开发时间;如果要为应用添加用户管理和身份认证模块,Stormpath已做得足够完美。如果仍不满意,还是觉得自己才是最好,那么我们必须为此付出额外的时间,金钱,技术,同时还得兼顾维护,安全,托管等问题。
因此,如果有现成可用的一群技术大咖为我们铺好了前进道路,我们为什么还要敬而远之舍近索远呢?充分利用API服务,进行有效整合,才是明智的选择。
效率优先
<a href="" target="_blank"><img src="" alt="" border="0" />http://img.kuqin.com/upimg/allimg/140929/2324544060-2.jpghttp://img.kuqin.com/upimg/allimg/140929/2324544060-2.jpg
不要把时间浪费在不必要的环节上。我们的目标是为客户打造最好的应用,而不是7x24小时地守候在计算机旁,关注程序运营中的每个细节。
此外,难道我们的竞争对手还会自己来打造非核心的程序组成部分吗?面对紧张的竞争局面,我们必须充分且合理地分配资源,让自己尽可能地走在对手的前面。
工具和解决方案
以下作者整理了一个API服务清单,一方面希望能让你的开发过程变得轻松,另外一方面希望能帮你节约时间,精力和努力。
认证/授权(Authentication / Authorization)
- Stormpath—把应用中有关用户管理的部分都放心交给它好了,其功能包括:安全地存储用户信息,管理用户权限,快速地进行邮箱验证和密码重置。
分析(Analytics)
- Keen.io–能完美地进行自定义分析。
CDN
- CloudFlare–搭载CDN与DDoS攻击保护功能!
- Fastly–令人惊叹的CDN API,速度奇快,定制自由度高。
CRM
- Intercom–使用简便,功能全面。
仪表盘(Dashboards)
- Ducksboard–界面精美,直接高效的API,能方便地进行项目数据查阅。
- Leftronic–同样精美的设计,个人认为它对地理信息支持更好。
数据库
- Bonsai–使用强大的RESTful搜索引擎ElasticSearch。
- Heroku Postgres–最好的PostgreSQL托管服务。
- MongoHQ–个人喜爱的MongoDB数据库供应者。
- OpenRedis–我会一直使用的Redis服务提供者,永远不会弄丢数据,可扩展能力强。
部署/托管
邮件
- Sendgrid–透过API来发送邮件,非常简单。
日志
- Loggly–易用的日志管理工具。
监控/调试
支付
实时处理
存储
- Amazon S3–几无对手的文件存储和文件流服务API。
通信
测试
- Travis CI–提供了单元和综合测试服务,包含公共免费和专项收费的服务级别。
写在最后
打造一款明星级产品绝非易事,而透过利用API服务,我们或许可以极大地提高工作效率,拥有更多时间来思考核心业务逻辑。