中文字幕在线观看,亚洲а∨天堂久久精品9966,亚洲成a人片在线观看你懂的,亚洲av成人片无码网站,亚洲国产精品无码久久久五月天

代碼重構(gòu):讓你網(wǎng)站的代碼更優(yōu)美和簡潔

2019-03-26    來源:tid.tenpay.com

容器云強勢上線!快速搭建集群,上萬Linux鏡像隨意使用

重構(gòu),這個詞在前端這塊讓人想到的更多的是頁面制作(HTML/CSS)這塊的工作。然后在前端中還有一塊更重要的地方 —— 那就是代碼的重構(gòu);學軟件工程的同學應(yīng)該會比較清楚。

代碼重構(gòu),簡單來講就是把原來的代碼重新構(gòu)建和編寫,讓代碼更加清晰,提升代碼的復用性和性能等。

下面開始拋磚,希望能為在做代碼重構(gòu)和對代碼重構(gòu)有興趣的同學能帶來一些啟發(fā)和幫助。

實例:Web彈層(Dialog/LayerBox/LogicBox)

代碼一:

這里創(chuàng)建一個對話框(多例)的基本代碼,這里主要做了以下幾件事

1、  如果頁面上找不到為當前ID的對話框,則創(chuàng)建一個新的;

2、  設(shè)置對話框標題;

3、  設(shè)置右上角關(guān)閉命令菜單的事件;

4、  設(shè)置對話框內(nèi)容;

5、  設(shè)置對話框操作按鈕。

思考:

1、  是否真的需要多例形式的組件;

2、  是否真的需要在右上角加一個關(guān)閉命令菜單;

3、  ……

代碼二:

 

經(jīng)過之前的實踐,將多例改成單例,這里也去除掉了右上角的關(guān)閉按鈕,為了增加其擴展和靈活性,這里采用了事件注入(鉤子)的方式進行回調(diào)處理。

對于這次重構(gòu)后,得到以下改進:

1、  將多例改成單例,降低了對實例的維護,并且更方便的對實例進行管理;

2、  事件機制的改成,減少事件綁定和維護;

3、  將HTML結(jié)構(gòu)解耦,JS代碼不需要關(guān)心頁面結(jié)構(gòu)的維護;但是會帶來頁面上的維護工作;

思考:

還有沒有其它更靈活和簡潔一點的方式呢?

代碼三:

上面是最近的一個演進版本,這個是一個公共的邏輯彈層(表單操作等),這里較上一次去調(diào)了事件鉤子,直接采用callback傳遞的方式,并采用鏈式的方式進行處理,頁面上調(diào)用更加簡單。

調(diào)用示例:

較之前相比:

1、不需要先去set對應(yīng)的事件鉤子;

2、方法分離,各司其職。如:show/hide 只負責其可見性,其它的由對應(yīng)的方法處理,使接口方法的職責更清晰;

3、頁面結(jié)構(gòu)回歸到了JS代碼,考慮多產(chǎn)品的應(yīng)用場景,減少頁面結(jié)構(gòu)的維護

OK,拋磚結(jié)束。

最后一句話,代碼優(yōu)化無止境,只有更多的思考、重構(gòu)。讓自己的代碼更具可用性、靈活性。也為團隊降低學習成本。

延伸閱讀:

  • 網(wǎng)站代碼優(yōu)化怎么做?得學會做“減法”
  • 該如何通過代碼優(yōu)化來提高網(wǎng)頁加載速度?
  • 網(wǎng)站代碼優(yōu)化:網(wǎng)站加速必須注意的八個方面

標簽: 代碼優(yōu)化 代碼重構(gòu) 前端優(yōu)化 

版權(quán)申明:本站文章部分自網(wǎng)絡(luò),如有侵權(quán),請聯(lián)系:west999com@outlook.com
特別注意:本站所有轉(zhuǎn)載文章言論不代表本站觀點!
本站所提供的圖片等素材,版權(quán)歸原作者所有,如需使用,請與原作者聯(lián)系。

上一篇:流量、權(quán)重優(yōu)化!你得知道的無線淘寶運營月計劃

下一篇:css sprite生成工具使用教程