【转载贴】

  作为一名开发者,诚然编写代码如同作家提笔挥毫,非常有成就感与乐趣,但同时我也觉得删除代码是件不相伯仲的美事。为什么呢?因为在进行删除工作 时,意味着自己找出了造成干扰的位置,意味着找到了冗余无用的代码,甚至是找到了能用更少代码实现相同功能的途径。代码越少,意味着出错的几率越低。

  我的观点是:利用好第三方 API,减少自己的代码工作量,让出错的概率尽量降低。只有这样,我们才可以把更多精力放到更核心的开发工作或业务逻辑思考当中去。

  们没有想象中聪明

  一名善于阅读和思考的程序员,想必是出众的程序员,譬如正在浏览本文的你。但是无论我们多么优秀,一个无法避免的事实是我们写的代码绝不可能零错误。

  最合理的时间利用,不是为每一个项目都进行重复建设,依葫芦画瓢。更好的时间分配是我们能持续打造更令人惊叹的应用,不断推陈出新。

  如果要为应用添加日志功能,Loggly 足可为我们节省三年左右的开发时间;如果要为应用添加用户管理和身份认证模块,Stormpath 已做得足够完美。如果仍不满意,还是觉得自己才是最好,那么我们必须为此付出额外的时间,金钱,技术,同时还得兼顾维护,安全,托管等问题。

  因此,如果有现成可用的一群技术大咖为我们铺好了前进道路,我们为什么还要敬而远之舍近索远呢?充分利用 API 服务,进行有效整合,才是明智的选择。

  效率优先

  不要把时间浪费在不必要的环节上。我们的目标是为客户打造最好的应用,而不是 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 服务提供者,永远不会弄丢数据,可扩展能力强。

  部署/托管

  • Heroku一个不错的托管公司。
  • Flynn建造于 Docker 之上,Heroku 的有力竞争者。

  邮件

  • Sendgrid透过 API 来发送邮件,非常简单。

  日志

  • Loggly易用的日志管理工具。

  监控/调试

  • New Relic如果曾经错过它,你会发现是多么地遗憾。它能提供丰富的性能/监控信息。
  • RunScope非常有用的调试和监控 API 服务。

  支付

  • Stripe极好的信用卡相关交易处理者。
  • Coinbase最好的比特币交易服务提供者。

  实时处理

  • Firebase强大的实时数据存储和同步 API。
  • Pusher让 Web socket 通信变得简单。

  存储

  • Amazon S3几无对手的文件存储和文件流服务 API。

  通信

  • OpenCNAM智能来电显示和识别。
  • Twilio易用的电话和短信平台。

  测试

  • Travis CI提供了单元和综合测试服务,包含公共免费和专项收费的服务级别。

  写在最后

  打造一款明星级产品绝非易事,而透过利用 API 服务,我们或许可以极大地提高工作效率,拥有更多时间来思考核心业务逻辑。

【转】开发者应该了解的API技术清单的更多相关文章

  1. 开发者应该了解的API技术清单

    近几年,API经济纷纷崛起,无论是国外还是国内,众多厂商积极开放API.开发者很多时候是要借助这些API,才能轻松构建出一款应用,极大地提高开发效率和开发质量.文中整理了一份API服务清单,内容涵盖: ...

  2. 开发者应该了解的API技术清单!

    英文原文:API-Driven Development 作为一名开发者,诚然编写代码如同作家提笔挥毫,非常有成就感与乐趣,但同时我也觉得删除代码是件不相伯仲的美事.为什么呢?因为在进行删除工作时,意味 ...

  3. (转)Java API设计清单

    转自: 伯乐在线 Java API设计清单 英文原文 TheAmiableAPI 在设计Java API的时候总是有很多不同的规范和考量.与任何复杂的事物一样,这项工作往往就是在考验我们思考的缜密程度 ...

  4. GitHub万星项目:黑客成长技术清单

    最近有个GitHub项目很火,叫"Awesome Hacking",这个项目是由Twitter账号@HackwithGithub 维护,喜欢逛Twitter的安全爱好者应该了解,在 ...

  5. 转:GitHub 万星推荐成长技术清单

    转:http://www.4hou.com/info/news/7061.html 最近两天,在reddit安全板块和Twitter上有个GitHub项目很火,叫“Awesome Hacking”. ...

  6. GitHub 万星推荐:黑客成长技术清单

    GitHub 万星推荐:黑客成长技术清单 导语:如果你需要一些安全入门引导,“Awesome Hacking”无疑是最佳选择之一. 最近两天,在reddit安全板块和Twitter上有个GitHub项 ...

  7. GitHub上个最有意思的项目合集(技术清单系列)

    没有1K以上的星星都不好意思推荐给大家!林子大了,啥项目都有,这里给大家搜罗了10个Github上有趣的项目.如果你就着辣椒食用本文,一定会激动的流下泪来...... 1.一行代码没有 | 18k s ...

  8. 用ASP.NET Web API技术开发HTTP接口

    开发工具 Visual Studio 2013 SQL Server 2008 R2 准备工作 启动Visual Studio 2013,新建一个ASP.NET Web应用程序,命名为SimpleAP ...

  9. 用ASP.NET Web API技术开发HTTP接口(一)

    开发工具 Visual Studio 2013 SQL Server 2008 R2 准备工作 启动Visual Studio 2013,新建一个ASP.NET Web应用程序,命名为SimpleAP ...

随机推荐

  1. [Spring boot] Application properties and configurations

    We can use different application properties application.properties: server.port=9090 application-pro ...

  2. CentOS下安装实时检測网络带宽的小工具bmon

    首先下载rpmforge-release扩展的rpm包 32位操作系统:wget http://www.sudu.us/Tools/bmon/rpmforge-release-0.3.6-1.el5. ...

  3. java 方法传参方式: 按值调用

    程序设计语言中将参数传递给方法的几种方式: 按名调用(call by name): Algol 语言采用此方式, 已成为历史; 按值调用(call by value): 方法接收到的是调用者提供的 变 ...

  4. spring自己主动装配Bean属性

    spring提供了3种类型的自己主动装配 byName:把与Bean的属性具有同样名字(或者ID)的其它Bean自己主动装配到Bean的相应属性中. byType:把与Bean的属性具有同样类型的其它 ...

  5. JPA 使用报Named query not found错误

    具体错误如下: Caused by: java.lang.IllegalArgumentException: Named query not found: select emp from TBicEm ...

  6. Centos下安装JDK、Maven和Git

    原文地址:https://github.com/eacdy/spring-cloud-book/blob/master/3%20%E4%BD%BF%E7%94%A8Docker%E6%9E%84%E5 ...

  7. js使用ctrl+s保存表单提升用户体验

    本质上是监控ctrl+s 然后触发相应事件 <script language="JavaScript"> //Ctrl+s保存 document.onkeydown=f ...

  8. Centos系统设置

    1.设置中文语言 yum install fonts-chinese vim /etc/sysconfig/i18n LANG="zh_CN.GB18030" LANGUAGE=& ...

  9. atitit.复合变量,也就是类似$$a的变量的原理与实现 java c#.net php js

    atitit.复合变量,也就是类似$$a的变量的原理与实现 java c#.net php js 1.1. 复合变量,也就是类似$$a的变量,它会进行两次的解释. 1 1.2. 数据库里面的复合变量1 ...

  10. 没有博士学位,照样玩转TensorFlow深度学习

    教程 | 没有博士学位,照样玩转TensorFlow深度学习 机器之心2017-01-24 12:32:22 程序设计 谷歌 操作系统 阅读(362)评论(0) 选自Codelabs 机器之心编译 参 ...