近幾年,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