代碼重構(gòu):讓你網(wǎng)站的代碼更優(yōu)美和簡潔
2019-03-26 來源:tid.tenpay.com

重構(gòu),這個(gè)詞在前端這塊讓人想到的更多的是頁面制作(HTML/CSS)這塊的工作。然后在前端中還有一塊更重要的地方 —— 那就是代碼的重構(gòu);學(xué)軟件工程的同學(xué)應(yīng)該會比較清楚。
代碼重構(gòu),簡單來講就是把原來的代碼重新構(gòu)建和編寫,讓代碼更加清晰,提升代碼的復(fù)用性和性能等。
下面開始拋磚,希望能為在做代碼重構(gòu)和對代碼重構(gòu)有興趣的同學(xué)能帶來一些啟發(fā)和幫助。
實(shí)例:Web彈層(Dialog/LayerBox/LogicBox)
代碼一:
這里創(chuàng)建一個(gè)對話框(多例)的基本代碼,這里主要做了以下幾件事
1、 如果頁面上找不到為當(dāng)前ID的對話框,則創(chuàng)建一個(gè)新的;
2、 設(shè)置對話框標(biāo)題;
3、 設(shè)置右上角關(guān)閉命令菜單的事件;
4、 設(shè)置對話框內(nèi)容;
5、 設(shè)置對話框操作按鈕。
思考:
1、 是否真的需要多例形式的組件;
2、 是否真的需要在右上角加一個(gè)關(guān)閉命令菜單;
3、 ……
代碼二:
經(jīng)過之前的實(shí)踐,將多例改成單例,這里也去除掉了右上角的關(guān)閉按鈕,為了增加其擴(kuò)展和靈活性,這里采用了事件注入(鉤子)的方式進(jìn)行回調(diào)處理。
對于這次重構(gòu)后,得到以下改進(jìn):
1、 將多例改成單例,降低了對實(shí)例的維護(hù),并且更方便的對實(shí)例進(jìn)行管理;
2、 事件機(jī)制的改成,減少事件綁定和維護(hù);
3、 將HTML結(jié)構(gòu)解耦,JS代碼不需要關(guān)心頁面結(jié)構(gòu)的維護(hù);但是會帶來頁面上的維護(hù)工作;
思考:
還有沒有其它更靈活和簡潔一點(diǎn)的方式呢?
代碼三:
上面是最近的一個(gè)演進(jìn)版本,這個(gè)是一個(gè)公共的邏輯彈層(表單操作等),這里較上一次去調(diào)了事件鉤子,直接采用callback傳遞的方式,并采用鏈?zhǔn)降姆绞竭M(jìn)行處理,頁面上調(diào)用更加簡單。
調(diào)用示例:
較之前相比:
1、不需要先去set對應(yīng)的事件鉤子;
2、方法分離,各司其職。如:show/hide 只負(fù)責(zé)其可見性,其它的由對應(yīng)的方法處理,使接口方法的職責(zé)更清晰;
3、頁面結(jié)構(gòu)回歸到了JS代碼,考慮多產(chǎn)品的應(yīng)用場景,減少頁面結(jié)構(gòu)的維護(hù)
OK,拋磚結(jié)束。
最后一句話,代碼優(yōu)化無止境,只有更多的思考、重構(gòu)。讓自己的代碼更具可用性、靈活性。也為團(tuán)隊(duì)降低學(xué)習(xí)成本。
延伸閱讀:
- 網(wǎng)站代碼優(yōu)化怎么做?得學(xué)會做“減法”
- 該如何通過代碼優(yōu)化來提高網(wǎng)頁加載速度?
- 網(wǎng)站代碼優(yōu)化:網(wǎng)站加速必須注意的八個(gè)方面
標(biāo)簽: 代碼優(yōu)化 代碼重構(gòu) 前端優(yōu)化
版權(quán)申明:本站文章部分自網(wǎng)絡(luò),如有侵權(quán),請聯(lián)系:west999com@outlook.com
特別注意:本站所有轉(zhuǎn)載文章言論不代表本站觀點(diǎn)!
本站所提供的圖片等素材,版權(quán)歸原作者所有,如需使用,請與原作者聯(lián)系。