使用open-slim-mock讓Android開發變得優雅
簡介
open-slim-mock 是我在開發的一款基於nodejs的服務端程式,用於在app的開發除錯階段更好的與後端人員協作,便於前後端分離,快速定位介面問題。經過一年的使用,提高了我們的開發效率。現在程式碼經過完全重構,程式碼更清晰,功能更強大,現在開業開源出來,用於學習研究。
動機
在日常開發中,遇到一些與開發無關但是非常影響開發效率的事情:
並行開發
經常專案時間被壓縮的很緊,通常一個功能介面和app同時開發,這時候會做好資料結構的約定,造一些mock資料,兩邊獨立開發,寫好後就可以聯調了。
幫我打個包地址是xxx
後端發現自己的功能有問題,又不想寫單元測試(什麼單元測試是什麼),就喜歡找你打一個包,地址寫他的本機地址,這在別人看來舉手之勞的事你不幫?然而打包隨著專案的複雜,越來越耗時不說,地址經常改來改去還容易忙中出錯。
三英戰呂布
專案老闆很重視,給你安排了劉關張三個後臺來寫介面,每人負責一個模組,這時候要聯調了,發現功能需求要求你去劉那裡拿到A資料,再把A給關那裡拿到B資料,在把B資料提交給張,每個介面執行在不同的測試環境,你怎麼辦?
跨域訪問
app專案包含HTML5頁面,想先在先進的瀏覽器Chrome環境下除錯好再整合到app中,發現後臺資料無法訪問,跨域被拒絕,如何解決?
解決之道
-
open-slim-mock如何解決並行開發問題?
open-slim-mock就是盛放mock資料而生的,可以進預先準備好的文字、二進位制資料作為結果返回。 -
open-slim-mock如何解決幫我打個包地址是xxx問題?
open-slim-mock使用反向代理技術將請求轉發到遠端伺服器,在將結果轉發給app。 -
open-slim-mock如何解決三英戰呂布問題?
open-slim-mock的反向代理任意顆粒度小到單個請求,即可以對A介面代理到A伺服器,B介面代理到B伺服器。 -
open-slim-mock如何解決跨域訪問問題?
open-slim-mock可以動態配置對響應頭進行注入,強制允許跨域訪問
Q&A
-
Q:阿里/騰訊/** 已經有類似專案了,又好又強大
A: 響應號召,研究自主可控的技術,專注程式碼之上的思想和解決問題的方法,不被一些KPI驅動的開源專案遮擋了雙眼 -
Q: 有bug/缺少xx功能
A: 會盡力修復bug,不會做大而全什麼功能都往裡面加,建議fork。