【转载贴】

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

  我的观点是:利用好第三方 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. Unity AssetBundle 踩坑记录

    Unity AssetBundle 踩坑记录 editor 下选择什么平台的 ab 加载 Material doesn't have a color property '_Color' UnityEd ...

  2. unity3d NGUI 本地化 多语言

    原地址:http://cl314413.blog.163.com/blog/static/1905079762014421115528670/ NGUI的本地化操作: Localization UIL ...

  3. 微信小程序 如何定义全局函数?

    微信小程序 定义全局数据.函数复用.模版等 微信小程序定义全局数据.函数复用.模版等问题总结: 1.如何定义全局数据 在app.js的App({})中定义的数据或函数都是全局的,在页面中可以通过var ...

  4. 自行控制loadrunner的socket协议性能测试 (转)

    一前言 二任务的提出 三实现方案讨论 四技术要点讲解 如何开始录制一个最简单的收发数据包脚本 写日志文件 一行一行读数据包文件 字符串转换为十六进制数据包 发送自己定义的数据包 接收数据包到自定义缓冲 ...

  5. SSM&SSH项目中 springmvc 乱码问题解决

    需要在web.xml文件中配置过滤器: <!-- 过滤器 过滤乱码 --> <filter> <filter-name>characterEncodingFilte ...

  6. LDAP简介及LDAP服务器的安装与配置

    一.LDAP简介 全称:Lightweight Directory Access Protocol,目录服务是一种特殊的数据库系统,其专门针对读取. LDAP目录中的信息是按照树型结构组织,具体信息存 ...

  7. css3的Background新属性

    前言 CSS3中出现了几种关于背景图片的新属性:background-origin.background-clip.background-position等.之前大致了解了下,但是background ...

  8. SVN环境搭建(1)

    原文地址:http://www.penglig.com/post-72.html Subversion 是优秀的版本控制工具,其具体的的优点和详细介绍,这里就不再多说. 首先来下载和搭建 SVN 服务 ...

  9. Java 8 Lambda表达式介绍

    Lambda是什么? Lambda是一个匿名函数,我们可以把Lambda理解为是一段可以传递的代码.可以写出简洁.灵活的代码.作为一种更紧凑的代码风格,使java的语言表达能力得到提升. 可以这么说l ...

  10. 终端中管理SVN服务器 上传、下载、更新【原创】

    从服务器下载项目, 下面的命令意思是 将服务器中mycode仓库的内容下载到/Users/apple/Documents/test目录中 我的电脑名叫做MacBook,记得将这个名字改成你们的电脑名字 ...