摘要:于是,轉(zhuǎn)換層就此誕生。轉(zhuǎn)換層顧名思義,把接口數(shù)據(jù)格式轉(zhuǎn)換成頁(yè)面所需要格式。第二版設(shè)計(jì)在第一版設(shè)計(jì)中,遇到轉(zhuǎn)換方法與使用頁(yè)面對(duì)應(yīng)不明確的問題。在第三版設(shè)計(jì),也是從調(diào)整劃分子模塊方式下手,改回?cái)?shù)據(jù)類型的維度劃分,同時(shí),規(guī)范方法命名。
前言
在工作中,經(jīng)常會(huì)遇到,接口的數(shù)據(jù)格式與頁(yè)面布局/交互不匹配的情況,需要前端進(jìn)行處理。 心想:“數(shù)據(jù)處理與業(yè)務(wù)無(wú)關(guān),多帶帶抽離一個(gè)模塊來(lái)寫吧。” 于是,轉(zhuǎn)換層就此誕生。
第一版設(shè)計(jì)當(dāng)我設(shè)計(jì)模塊時(shí),
第一步 會(huì)明確模塊的職責(zé)。
轉(zhuǎn)換層——顧名思義,把接口數(shù)據(jù)格式 轉(zhuǎn)換 成頁(yè)面所需要格式。
第二步 制定與其他模塊對(duì)接規(guī)則。
因?yàn)樗菑捻?yè)面模塊抽離出來(lái)的,所以只有頁(yè)面模塊才能引用它。
而且邏輯單一(把輸入數(shù)據(jù)處理后輸出),所以它只能引用工具模塊。
第三步 劃分子模塊。
模塊主要是處理數(shù)據(jù)的問題,所以根據(jù)數(shù)據(jù)類型的維度劃分子模塊。
第一版設(shè)計(jì)大功告成
// 消息通知信息的轉(zhuǎn)換方法 // transform/notice.js export default{ show(data) { .... return ret; } }
// 面板頁(yè)使用 // page/dashboard import noticeModel from "model/notice.js"; //發(fā)送消息通知請(qǐng)求類 import noticeTransform from "transform/notice.js"; //轉(zhuǎn)換成頁(yè)面所需要接口格式 const data = await noticeModel.show().then(res => noticeTransform.show(res));
缺陷!!!
第一版設(shè)計(jì)中,我們很難看出某個(gè)轉(zhuǎn)換方法,被那一個(gè)或幾個(gè)頁(yè)面使用。
隨著項(xiàng)目復(fù)雜度不斷增大,以后接手的小伙伴根本就不敢改/刪轉(zhuǎn)換層里的代碼。
在第一版設(shè)計(jì)中,遇到轉(zhuǎn)換方法與使用頁(yè)面對(duì)應(yīng)不明確的問題。
思考后,決定調(diào)整劃分子模塊方式,改為根據(jù)頁(yè)面維度劃分。
第二版成品
// 面板頁(yè)里的消息通知信息轉(zhuǎn)換方法 // transform/dashboard.js export default{ noticeShow(data) { .... return ret; } }
// 面板頁(yè)使用 // page/dashboard import noticeModel from "model/notice.js"; import dashboardTransform from "transform/dashboard.js"; const data = await noticeModel.show().then(res => dashboardTransform.noticeShow(res));
缺陷 Again!!!
雖然能清晰識(shí)別頁(yè)面具有那些轉(zhuǎn)換方法,
但是,如果A與B、C...頁(yè)面,需要對(duì)相同的數(shù)據(jù)轉(zhuǎn)成相同格式。
這樣的模塊劃分,對(duì)相似代碼抽離是不友好的。
在第二版設(shè)計(jì)中,遇到相似的代碼難以復(fù)用的問題。
在第三版設(shè)計(jì),也是從調(diào)整劃分子模塊方式下手,改回數(shù)據(jù)類型的維度劃分,
同時(shí),規(guī)范方法命名。
給頁(yè)面模塊使用方法名= model名 + "for" + 頁(yè)面名稱,
私有方法名= "_" + model名 + 格式語(yǔ)義。
第三版成品
// A、B頁(yè)面 要把消息通知信息轉(zhuǎn)換一句提示 // transform/notice.js const transform = { _showOneTip(data) { .... return ret; }, showForA(data){ return this._showOneTip(data); }, showForB(data){ return this._showOneTip(data); } } export default transform;總結(jié)
業(yè)務(wù)會(huì)不斷迭代優(yōu)化,其實(shí)代碼也需要不斷迭代優(yōu)化的過(guò)程。
在過(guò)程中不斷思考,盡可能把項(xiàng)目設(shè)計(jì)的更具有結(jié)構(gòu)性。
當(dāng)然,每次更新項(xiàng)目底層設(shè)計(jì),工作量是不少,所以也要多感謝團(tuán)隊(duì)支持。
同一個(gè)數(shù)據(jù),有可能不同頁(yè)面有不同格式。
如何把模塊之間的聯(lián)系更加明確。
如何復(fù)用具有相同邏輯代碼。
細(xì)節(jié)轉(zhuǎn)換方法不能修改傳入數(shù)據(jù)。
江湖救急
筆者有兩年多前端開發(fā)經(jīng)驗(yàn)(地點(diǎn)北京),比較擅長(zhǎng)vue與性能優(yōu)化。
希望能進(jìn)入具有Geek精神團(tuán)隊(duì),一起折騰,一起做有意思事情。
文章版權(quán)歸作者所有,未經(jīng)允許請(qǐng)勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。
轉(zhuǎn)載請(qǐng)注明本文地址:http://specialneedsforspecialkids.com/yun/105136.html
摘要:于是,轉(zhuǎn)換層就此誕生。轉(zhuǎn)換層顧名思義,把接口數(shù)據(jù)格式轉(zhuǎn)換成頁(yè)面所需要格式。第二版設(shè)計(jì)在第一版設(shè)計(jì)中,遇到轉(zhuǎn)換方法與使用頁(yè)面對(duì)應(yīng)不明確的問題。在第三版設(shè)計(jì),也是從調(diào)整劃分子模塊方式下手,改回?cái)?shù)據(jù)類型的維度劃分,同時(shí),規(guī)范方法命名。 前言 在工作中,經(jīng)常會(huì)遇到,接口的數(shù)據(jù)格式與頁(yè)面布局/交互不匹配的情況,需要前端進(jìn)行處理。 心想:數(shù)據(jù)處理與業(yè)務(wù)無(wú)關(guān),單獨(dú)抽離一個(gè)模塊來(lái)寫吧。 于是,轉(zhuǎn)換層就...
摘要:經(jīng)調(diào)研發(fā)現(xiàn),是個(gè)簡(jiǎn)單高效且性能高的動(dòng)畫方案。換言之,設(shè)計(jì)師用把動(dòng)畫效果做出來(lái),再用導(dǎo)出相應(yīng)地文件給到前端,前端使用庫(kù)就可以實(shí)現(xiàn)動(dòng)畫效果。 項(xiàng)目背景 在海外項(xiàng)目中,為了優(yōu)化用戶體驗(yàn)加入了幾處微交互動(dòng)畫,實(shí)現(xiàn)方式是設(shè)計(jì)輸出合成的雪碧圖,前端通過(guò)序列幀實(shí)現(xiàn)動(dòng)畫效果:?showImg(https://segmentfault.com/img/bVbp6jB);序列幀:showImg(https...
摘要:由于控件與業(yè)務(wù)邏輯之間的緊耦合,相應(yīng)帶來(lái)的問題就是變更的代價(jià)增大,以及難以編寫針對(duì)性的單元測(cè)試。這些東西的組合提供了到譯者注視圖模型后面統(tǒng)一簡(jiǎn)稱之間的連接方式。的單元測(cè)試可以完全模擬在上用的那些功能。 原文:https://github.com/kuitos/kui...全部文章:https://github.com/kuitos/kui... [譯注] MVVM 模式 原文:The ...
摘要:表形容詞,意為的具有的。指的是一組架構(gòu)約束條件和原則。協(xié)議要優(yōu)于協(xié)議。的操作方法在中有各自的語(yǔ)義,理解它們的語(yǔ)義至為重要。返回結(jié)果對(duì)于不同操作方法和操作對(duì)象集合或個(gè)體,服務(wù)器返回的結(jié)果應(yīng)該符合以下規(guī)范。附錄該文主要參考理解架構(gòu)設(shè)計(jì)指南 前言 近十年,前端高速發(fā)展,整個(gè)互聯(lián)網(wǎng)應(yīng)用經(jīng)歷了從輕客戶端到重客戶端的變化,隨著前端規(guī)模越來(lái)越大,交互越來(lái)越復(fù)雜,前后端分離的設(shè)計(jì)開始流行。 移動(dòng)互聯(lián)網(wǎng)...
閱讀 1093·2021-10-12 10:11
閱讀 876·2019-08-30 15:53
閱讀 2286·2019-08-30 14:15
閱讀 2961·2019-08-30 14:09
閱讀 1197·2019-08-29 17:24
閱讀 972·2019-08-26 18:27
閱讀 1282·2019-08-26 11:57
閱讀 2146·2019-08-23 18:23