移動開發(fā)中接口層自動化設(shè)計調(diào)研

目前問題

  1. 接口文檔更新不及時漂洋,增加聯(lián)調(diào)時間,降低交付速度
  2. 接口文檔更改后力喷,前端接口層刽漂,后端接口層及測試用例均需要各自修改,增加開發(fā)成本

解決思路

在前后端交互中弟孟,涉及到四個東西

  1. 接口文檔H
  2. 前端接口層CI
  3. 后端接口層BI
  4. 測試用例TC

假設(shè)后續(xù)接口做了一個修改操作m贝咙,比如說m是增加一個參數(shù),m對四者而言都是同一個變動因素拂募,則

H' = FH(H,DSL(m))
CI' = FC(CI,DSL(m))
BI' = FB(BI,DSL(m))
TC' = FT(TC,DSL(m))

其中DSL是使用語言結(jié)構(gòu)化描述操作m庭猩,這部分操作需要去按DSL規(guī)范手工更改窟她。FX函數(shù)是對變化m產(chǎn)生新的描述處理過程。
正常而言眯娱,需要做到自動化礁苗,需要做到

  1. 找到一種DSL方式描述m
  2. 開發(fā)4個FX函數(shù)

為了降低開發(fā)成本,我們可以選擇使用DSL描述H徙缴,通過按規(guī)范把變化m加入到H中變成H'试伙,然后其他三個函數(shù)變成

CI' = FC(H')
BI' = FB(H')
TC' = FT(H')

這是為了簡化編程模式,采用修改全覆蓋策略于样,換句話說三者的變化只跟H'相關(guān)疏叨,與自身前后狀態(tài)無關(guān)。
為了達到這一點穿剖,需要的工作是

  1. 選擇DSL描述H
  2. 開發(fā)三個不同的FX函數(shù)

解決方案

解決方案基于兩點出發(fā)

  1. 最大限度使用現(xiàn)有工具鏈
  2. 最小侵入性及最小開發(fā)工作量

對于接口描述的DSL蚤蔓,我們可以選擇有很多語言都支持的json,xml和yaml等糊余,免去開發(fā)解析的成本秀又。
對于后面三個函數(shù)的開發(fā),根據(jù)我們的業(yè)務(wù)類型贬芥,需要做的工作

  1. Android端Java接口層代碼和Model層自動生成
  2. iOS端OC接口層和Model層自動生成
  3. J2EE端Form層自動生成
  4. 測試端測試頁面及測試用例自動生成

這塊業(yè)界已經(jīng)有較為完善的解決方案吐辙,比如swagger

  1. 使用yaml描述接口及交互數(shù)據(jù)結(jié)構(gòu)定義,DEMO
  2. 可以生成client端(Android和iOS)和server端(Spring MVC)的代碼
  3. 測試接口頁面自動生成蘸劈,DEMO

基本上已經(jīng)滿足我們這邊的需求(測試用例自動生成這塊跟測試組同學(xué)再進行詳細溝通)昏苏,我們需要根據(jù)自身的框架修改部分自動代碼生成的代碼

收益評估

如果解決方案落地,主要的收益有

  1. 規(guī)范化接口文檔定義威沫,增加項目可維護性
  2. 統(tǒng)一多端接口層定義贤惯,并且通過自動生成方式減少人工投入和聯(lián)調(diào)成本

在此基礎(chǔ)上,把方案與我們自身的持續(xù)集成平臺Jenkins相結(jié)合棒掠,還可以在修改接口定義的時候自動修改響應(yīng)各端代碼接口層孵构,這樣的好處有

  1. 避免因接口更改沒通知到位而產(chǎn)生的溝通及聯(lián)調(diào)成本
  2. 由于接口定義改變導(dǎo)致各端接口層改變,強制各端工程師及時響應(yīng)并做響應(yīng)更改
  3. 提供交付速度和代碼質(zhì)量

實現(xiàn)計劃

由于這個方案涉及到多端人員句柠,涉及前端浦译,后端,測試三個組織溯职,從落地角度來說精盅,可以先在部門內(nèi)部先落地,前期先把基礎(chǔ)服務(wù)后端接口定義引入谜酒,然后逐步把后端接口層自動化及測試用例自動化做起來叹俏,最后再推動Android和iOS端接口層自動化。

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末僻族,一起剝皮案震驚了整個濱河市粘驰,隨后出現(xiàn)的幾起案子屡谐,更是在濱河造成了極大的恐慌,老刑警劉巖蝌数,帶你破解...
    沈念sama閱讀 218,755評論 6 507
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件灸芳,死亡現(xiàn)場離奇詭異途乃,居然都是意外死亡蒋川,警方通過查閱死者的電腦和手機势誊,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 93,305評論 3 395
  • 文/潘曉璐 我一進店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來唆貌,“玉大人滑潘,你說我怎么就攤上這事∠橇” “怎么了语卤?”我有些...
    開封第一講書人閱讀 165,138評論 0 355
  • 文/不壞的土叔 我叫張陵,是天一觀的道長酪刀。 經(jīng)常有香客問我粹舵,道長,這世上最難降的妖魔是什么骂倘? 我笑而不...
    開封第一講書人閱讀 58,791評論 1 295
  • 正文 為了忘掉前任齐婴,我火速辦了婚禮,結(jié)果婚禮上稠茂,老公的妹妹穿的比我還像新娘。我一直安慰自己情妖,他們只是感情好睬关,可當(dāng)我...
    茶點故事閱讀 67,794評論 6 392
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著毡证,像睡著了一般电爹。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上料睛,一...
    開封第一講書人閱讀 51,631評論 1 305
  • 那天丐箩,我揣著相機與錄音,去河邊找鬼恤煞。 笑死屎勘,一個胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的居扒。 我是一名探鬼主播概漱,決...
    沈念sama閱讀 40,362評論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼喜喂!你這毒婦竟也來了瓤摧?” 一聲冷哼從身側(cè)響起竿裂,我...
    開封第一講書人閱讀 39,264評論 0 276
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎照弥,沒想到半個月后腻异,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 45,724評論 1 315
  • 正文 獨居荒郊野嶺守林人離奇死亡这揣,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 37,900評論 3 336
  • 正文 我和宋清朗相戀三年悔常,在試婚紗的時候發(fā)現(xiàn)自己被綠了。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片曾沈。...
    茶點故事閱讀 40,040評論 1 350
  • 序言:一個原本活蹦亂跳的男人離奇死亡这嚣,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出塞俱,到底是詐尸還是另有隱情姐帚,我是刑警寧澤,帶...
    沈念sama閱讀 35,742評論 5 346
  • 正文 年R本政府宣布障涯,位于F島的核電站罐旗,受9級特大地震影響,放射性物質(zhì)發(fā)生泄漏唯蝶。R本人自食惡果不足惜九秀,卻給世界環(huán)境...
    茶點故事閱讀 41,364評論 3 330
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望粘我。 院中可真熱鬧鼓蜒,春花似錦、人聲如沸征字。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,944評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽匙姜。三九已至畅厢,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間氮昧,已是汗流浹背框杜。 一陣腳步聲響...
    開封第一講書人閱讀 33,060評論 1 270
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留袖肥,地道東北人咪辱。 一個月前我還...
    沈念sama閱讀 48,247評論 3 371
  • 正文 我出身青樓,卻偏偏與公主長得像椎组,于是被迫代替她去往敵國和親梧乘。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點故事閱讀 44,979評論 2 355

推薦閱讀更多精彩內(nèi)容

  • Spring Cloud為開發(fā)人員提供了快速構(gòu)建分布式系統(tǒng)中一些常見模式的工具(例如配置管理,服務(wù)發(fā)現(xiàn)选调,斷路器夹供,智...
    卡卡羅2017閱讀 134,659評論 18 139
  • Android 自定義View的各種姿勢1 Activity的顯示之ViewRootImpl詳解 Activity...
    passiontim閱讀 172,162評論 25 707
  • 再一次見你的時候,你還是你仁堪,我還是我哮洽,唯一不同的是我們已不在像剛認識的時候那樣天真不懂事了,我們都成熟了弦聂,考慮問題...
    拾起一片楓葉fly閱讀 164評論 0 0
  • 來公司四個月了鸟辅,app也已經(jīng)迭代更新到第三個版本,前些日子一直在趕進度莺葫,沒時間整理學(xué)習(xí)的東西匪凉,趁最近稍顯空閑,將一...
    悲傷的蓋茨比閱讀 3,534評論 5 2
  • 婆婆回來了聂受,所以晚上陪孩子的時間就充裕了,放學(xué)回來后烤镐,沐涵第一時間拿出作業(yè)記錄本給我說了一下今天的作業(yè)內(nèi)容蛋济,邊吃著...
    鴨蛋媽媽閱讀 163評論 0 0