開發者應該了解的API技術清單!

摘要:有人說,有API的地方就有App,借助這些API開發者輕松構建出一款應用,極大地提高開發效率和開發質量。文中整理了一份API服務清單,內容涵蓋:監控/調試、 CDN 、數據庫、儀表盤、支付、通信等方面!

近幾年,API經濟紛紛崛起,無論是國外還是國內,眾多廠商積極開放API。從2011年開始,數據通過API開發出來已成為一種趨勢,與此同時它也逐漸發成為企業的核心業務。據不完全統計,國外知名站點ProgrammableWeb收錄的新API就達到數萬個,而且還在不斷增長中。

利用豐富的第三方API,開發者輕松構建出一款應用,極大地提高開發效率和開發質量。而對于廠商而言,他們似乎更樂意將API推向市場,比如通過創建API社區、社交網絡等,因為這樣更有利于把產品推向市場,從而達到共贏。

有人說,有API的地方就有App,有的甚至將API作為構建成功Web應用程序的關鍵因素之一(提高API采用率的六大方法)。這足以說明,API已悄悄地融入進每個人的生活。原文作者RANDALL DEGGES發表了這篇博文《API-Driven Development》,筆者對此文進行了摘譯。


譯文如下:

作為一名開發者,誠然編寫代碼如同作家提筆揮毫,非常有成就感與樂趣,但同時我也覺得刪除代碼是件不相伯仲的美事。為什么呢?因為在進行刪除工作時,意味著自己找出了造成干擾的位置,意味著找到了冗余無用的代碼,甚至是找到了能用更少代碼實現相同功能的途徑。代碼越少,意味著出錯的幾率越低。

我的觀點是:利用好第三方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。
  • HerokuPostgres最好的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服務,我們或許可以極大地提高工作效率,擁有更多時間來思考核心業務邏輯。

英文出自:Stormpath

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/447312.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/447312.shtml
英文地址,請注明出處:http://en.pswp.cn/news/447312.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

提高程序員職場價值的10大技巧

如果你已經是個很牛叉的程序員,但是依然覺得覺得還不夠的話,歡迎閱讀此文。本文旨在幫助各位更上一層樓。 你是不是覺得自己已經掌握了所有的編程技巧?別太自以為是了! 會寫代碼的確很重要,但是要拿到更好薪水&#…

google python的風格規范

點擊鏈接,查看內容

IT人應當知道的10個行業小內幕

如果你打算從事IT行業或剛進入這個行業,也許本文下面的小內幕會嚇到你,因為這些事平常都不會公開討論的。如果你是IT資深人士,或許你已經遇到其中的大部分了。如果你愿意,請一起來參與討論吧。 這些內幕大多數是針對網絡管理員、…

Volatile原子性一致性JVM指令重排

概念 Volatile概念:Volatile關鍵字的主要作用是使變量在多個線程間可見。作用: 在多線程間可以進行變量的變更,使得線程間進行數據的共享可見 阻止指令重排序,happens-before package com.example.core.cas;import com.example.c…

python修改文件內容,不需要read,write多個動作。

python 要修改文件內容,常用 是先read,后write , 再 rename,很不爽。 比如:需要 把 yuv_dir "../HD/" # "H:/HD_Master/1080i25/" 改為 yuv_dir "C:/HD/" # "H:…

Atomic系列類

Atomic系列類別 Atomic系列類封裝了一系列的基礎類型和對象操作,其主要目的就是為了實現原子性,主要核心類如下 AtomicIntegerAtomicLongAtomicBooleanAtomicIntegerArrayAtomicLongArrayAtomicReference 原子性的引用對象在對Atomic類操作的時候&…

python 系統學習筆記(十二)---os os.path os.walk

得到當前工作目錄,即當前 Python腳本工作的目錄路徑: os.getcwd() 返回指定目錄下的所有文件和目錄名:os.listdir()函數用來刪除一個文件:os.remove()刪除多個目錄:os.removedirs(r“c:\python”)檢驗給出的路徑是否是…

Java JUC工具類--CountDownLatch

CountDownLatch:用于監聽某些初始化操作,并且線程進行阻塞,等初始化執行完畢后,通知主線程繼續工作執行 package com.example.core.juc;import java.util.concurrent.CountDownLatch;public class UseCountDownLatch {public stat…

Java JUC工具類--CyclicBarrier

CyclicBarrier:柵欄的概念,多線程的進行阻塞,等待某一個臨界值條件滿足后,同時執行 類比:每個線程代表一個跑步運動員,當運動員都準備好后,才一起出發,只要有一個人沒有準備好&#…

人生感悟:人生像吃自助餐

問我怎樣管理欲望,過簡單生活?我的答案是:你要先學會品味人生,品味的同義詞,就叫做體悟內涵。 人為什么有這么多欲望?其實,我們每個人在一個社會,就像進入一個自助餐(buffet)店,食物非常的多…

Java JUC工具類--Future

Future模式,也是非常經典的設計模式,這種模式主要就利用空間換時間的概念,也就是說異步執行(需要開啟一個新的線程)在互聯網高并發的應用服務中,我們隨處可見這種理念和代碼,主要就是使用了這種…

職場與生活 八條原則 讓你不再浪費時間和提高效率

Heidi Roizen女士一度是硅谷人人爭相學習的典范。她曾創辦自己的公司并管理了14年之久。后來,她擔任蘋果公司主管開發者關系的高級副總裁。現在,她是DFJ Venture的一位風投家,她還在斯坦福主講一門名叫??“企業家精神??”的課程。她幾乎認…

Java JUC工具類--Exchanger

Exchanger Exchanger用于進行線程間的數據交換,它提供一個同步點,在這個同步點,兩個線程可以交換彼此的數據兩個線程通過exchange方法交換數據,如果一個線程先執行exchange方法,它會一直等待第二個線程也執行exchang…

爸爸的素質決定孩子飛多高,爸爸們請反復看!!!

好父親等于200個好老師,當爹的都好好看看,以后孩子不給力別怨別人! 孩子是父親的影子,希望每個閱讀完全文的父親,都能成為一個好父親。 NO.1爸爸是孩子最好的老師 爸爸的素質有多高,孩子就能飛多高 用理性的父愛幫…

Java JUC工具類--ForkJoin

ForkJoin Fork/Join框架是JAVA7提供的一個用于并行執行任務的框架,是一個把大任務分割成若干個小任務,最終匯總每個小任務結果后得到大任務結果的框架Fork/Join中兩個重要的類 ForkJoinTask:使用該框架,需要創建一個ForkJoin任務…

修復bug的12個關鍵步驟

要多少時間才能修復bug,事先是很難知道的,特別是如果你和這些代碼還素不相識的話,情況就更加撲朔迷離了。James Shore在《The Art of Agile 》一書中,明確指出要想修復問題得先知道問題的所在。而我們之所以無法準確估計時間是因為…

Java JUC工具類--Master-Worker

Master-Worker Master-Worker模式是常用的并行計算模式。它的核心思想是系統由兩類進程協作工作:Master進程和Worker進程Master負責接收和分配任務,Worker負責處理子任務當各個Worker子進程處理完成后,會將結果返回給Master,由Ma…

身體打來的電話,你一定要接!

心臟有問題時。左邊手臂會酸、麻、痛。肝臟有問題時。小腿晚上睡覺時容易抽筋。腎臟出現問題時。聲音就會出不來,就會沙啞。脾胃出現問題時。偏頭痛。附:五臟排毒最簡單有效的方法 一、心臟有問題時 1。呼吸會不順暢,胸口會悶也會刺痛&…

Java JUC工具類--Semaphore

Semaphore 在Semaphore信號量非常適合高并發訪問限制,新系統在上線之前,要對系統的訪問量進行評估,評估是經過以往的經驗、數據、歷年的訪問量,已經推廣力度進行一個合理的評估當然評估標準不能太大也不能太小,太大的…