第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號(hào)安全,請(qǐng)及時(shí)綁定郵箱和手機(jī)立即綁定
已解決430363個(gè)問題,去搜搜看,總會(huì)有你想問的

如何改善接口文檔-前后端的“橋梁”?

如何改善接口文檔-前后端的“橋梁”?

工作模式公司目前采用前后端分離的模式進(jìn)行項(xiàng)目開發(fā)。本人處于后端組的Java開發(fā)職位。前后端的溝通橋梁前后端分離開發(fā)項(xiàng)目,前端組主要負(fù)責(zé)頁面的設(shè)計(jì)與交互,后端組主要負(fù)責(zé)數(shù)據(jù)的存儲(chǔ)與服務(wù)。前后端組工作協(xié)作靠接口文檔。目前本人公司的接口文檔由前端工程師主要填寫,后端人員進(jìn)行后期的調(diào)整。發(fā)現(xiàn)的問題在前后端兩個(gè)小組協(xié)作開發(fā)項(xiàng)目的過程中,逐漸了發(fā)現(xiàn)了些許協(xié)作問題,以本人目前的眼界,認(rèn)為最為突出的問題會(huì)發(fā)生在接口文檔上。結(jié)論緣由為什么本人會(huì)認(rèn)為最大的問題出現(xiàn)在接口文檔,并在此請(qǐng)教改善之法呢?有以下幾點(diǎn)原因。前后端人員的思維差異接口文檔,表明了前端請(qǐng)求后端數(shù)據(jù)時(shí)的格式。本人公司采用json的數(shù)據(jù)格式進(jìn)行數(shù)據(jù)交互,后端采用Java開發(fā),自然是將model中的數(shù)據(jù)轉(zhuǎn)為json格式“跪送”給前端。但由于每個(gè)人的思維不用,對(duì)接口中的字段命名習(xí)慣等也大不相同。例如后端User類中有name和age兩個(gè)屬性,但前端人員寫接口文檔時(shí)偏偏是{“username”:“xxx”,“sex”:“xxx”}。為了應(yīng)對(duì)這種情況,最開始開發(fā)項(xiàng)目時(shí),后端再返回?cái)?shù)據(jù)之前采用Map的方式將model中的數(shù)據(jù)進(jìn)行重組和封裝,達(dá)到前端要求的接口內(nèi)容。但Java代碼就泛濫出大量的put操作,甚是繁瑣。個(gè)人認(rèn)為這種情況可以在開發(fā)前期兩組就要辦法做統(tǒng)一規(guī)范。前端人員填寫接口的“隨意性”為了避免Map方式所帶來的繁瑣操作和put代碼泛濫,隨后的項(xiàng)目開發(fā)中,引入了DTO類,并借助Dozer工具進(jìn)行實(shí)體類DTO類之間的映射轉(zhuǎn)換。DTO類中的屬性名符合前端人員在接口文檔中所寫的字段名稱。例如為了傳輸U(kuò)ser類的數(shù)據(jù),對(duì)應(yīng)的有UserDTO類,有username和sex屬性。同時(shí)DTO也可以應(yīng)對(duì)傳輸實(shí)體類部分屬性的情況。OK,這種模式進(jìn)行了一段時(shí)間后發(fā)現(xiàn),由于前端人員寫接口太過隨意,導(dǎo)致后端會(huì)產(chǎn)生大量碎片化的DTO類。舉個(gè)詳細(xì)的例子:publicclassCourse{//課程實(shí)體類privateLongid;privateStringnumber;privateStringname;privateTeacherteacher;//課程教師}前端通過接口請(qǐng)求課程相關(guān)的數(shù)據(jù)時(shí),可能是{"number":"xxx","name":"xxxxx"},可能是{"id":xxx,"name":"xxxx"},亦或是{"id":xx,"name":"xxx","teacherName":"xxx"}。這種“隨意性”導(dǎo)致后端要么創(chuàng)建應(yīng)對(duì)各式各樣情況的DTO類,要么就是在實(shí)體類和DTO類中追加冗余的、沒有意義的屬性。例如又可能為了顯示,需要在Course類添加一個(gè)studentScore的屬性。當(dāng)然“隨意性”我用了引號(hào),表示這只是我個(gè)人的觀點(diǎn),并不能說明前端人員有錯(cuò),人家在寫文檔時(shí)自然更偏向于自己認(rèn)為舒服的結(jié)構(gòu),這很正常,本人表示充分理解。3.過于過程化的接口結(jié)構(gòu)第三點(diǎn)是我近期所察覺到的最可怕的一點(diǎn)。諸如上述問題的存在,當(dāng)遇到復(fù)雜的項(xiàng)目時(shí),文檔結(jié)構(gòu)就會(huì)失控。假如前端人員對(duì)后端的技術(shù)并不清楚的話,以及他們更偏向于過程化的編碼思維,直接導(dǎo)致接口結(jié)構(gòu)呈現(xiàn)過程化的趨勢,可悲的是由于交互功能的復(fù)雜度,后端為了實(shí)現(xiàn)前端期望的接口結(jié)構(gòu),在編碼時(shí)已然潛移默化地在進(jìn)行面向過程的開發(fā),而不是面向?qū)ο螅瑐€(gè)人認(rèn)為這是災(zāi)難的征兆。說到這兒,我依舊不認(rèn)為前端在寫接口有錯(cuò)或是有問題,這是人家的正常思維習(xí)慣。以上是本人在自己工作經(jīng)歷中所感悟的痛楚,在此請(qǐng)教各路有經(jīng)驗(yàn)人士的改善觀點(diǎn)。
查看完整描述

2 回答

?
慕容森

TA貢獻(xiàn)1853條經(jīng)驗(yàn) 獲得超18個(gè)贊

雖然我沒經(jīng)歷過這種調(diào)用者來制定接口文檔的工作流,但我覺得問題的核心在于接口的制定兩方應(yīng)當(dāng)有平等的發(fā)言權(quán),不能一方拍板說這樣就這樣
比如model里字段名叫name,就不能允許接口叫username,除非所有model就把名字也改成username。兩個(gè)接口對(duì)同一個(gè)model同一個(gè)字段的命名不一樣,不僅后端會(huì)疼,前端也遲早掉坑,對(duì)大家都沒好處
具體到題主的實(shí)踐中,我覺得一個(gè)改善的方法就是前端出的東西把它認(rèn)為是“接口需求”,后端人員拿到以后在一定的原則(比如保證cover需求)之下進(jìn)行修改,出第二份“接口文檔”,再給前端人員評(píng)審一遍之后達(dá)成共識(shí),成為最終的接口文檔。
還有你的思考很好很對(duì),應(yīng)該和你的老大商量,甚至拉前端老大來商量
最后,平時(shí)多攪基多飯醉,前后端分離是技術(shù)上分離,可不能在感情上也分離
                            
查看完整回答
反對(duì) 回復(fù) 2019-04-16
?
楊__羊羊

TA貢獻(xiàn)1943條經(jīng)驗(yàn) 獲得超7個(gè)贊

在開發(fā)前前后端應(yīng)該商量溝通出一套接口規(guī)范,然后按照此規(guī)范來寫接口文檔
提前確定好規(guī)范,可以有效減少各自的溝通成本
另外,編寫及管理接口文檔也是開發(fā)過程中的重中之重
不妨試用下接口管理平臺(tái),讓對(duì)接口管理變得更輕松直觀
個(gè)人比較推薦eolinker,界面良好,最新版本支持mock的restful測試,保證前后端工作獨(dú)立開來
還有團(tuán)隊(duì)協(xié)作功能,還可導(dǎo)入json數(shù)據(jù)
                            
查看完整回答
反對(duì) 回復(fù) 2019-04-16
  • 2 回答
  • 0 關(guān)注
  • 354 瀏覽
慕課專欄
更多

添加回答

舉報(bào)

0/150
提交
取消
微信客服

購課補(bǔ)貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動(dòng)學(xué)習(xí)伙伴

公眾號(hào)

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號(hào)