僅僅是整潔的代碼真的有用嗎?

我想說整潔的代碼只是一部分。這個整潔所包含的,我認為是:

1.一個方法只做一件事情,一個方法的行數(shù)一定要對自己做嚴格要求,多余的事情,另起一個方法,并配有合適的命名。

舉個例子來說,我在ajax請求都數(shù)據(jù),回調(diào)方法可能需要對返回結果做一定的邏輯處理,拼接處理。在這個時候,我是很反對直接在回調(diào)方法中寫一長串處理邏輯的,一定要用一個新的function來處理。

2.堅決杜絕全局變量。

有的人可能認為,如果我注意點,全局變量并不會帶來什么壞的影響。這樣說沒毛病,但是全局變量帶來的難以閱讀和難以維護性是不可估量的。

3.絕不在頁面底部或者$(function(){});或者onload中直接以$(xxx).click(function(){});這種形式來注冊事件。也絕不在html拼接成功后的方法中以上述方式注冊事件。

個人推崇的方式是,一定要將事件注冊封裝成方法。然后再去調(diào)用方法。

其余的整潔規(guī)范不做贅述,代碼整潔這種東西,要在不斷的實踐中,用心去思考和體會,并且親手優(yōu)化和修改,只有一套理論擺著這里,收獲是0。

JavaScript代碼分"層"

下面要討論的這種方式,一定是基于上述代碼整潔之道的基礎之上。開篇的三個常用JS代碼情形,你想到辦法如何將他們分離解耦,如何處理好他們之間的關系了嗎?

比方說,你在做一個互聯(lián)網(wǎng)新聞網(wǎng)站。

對于這樣的一個新聞列表,你可能需要Ajax對數(shù)據(jù)做增刪改查操作,你也需要從后臺讀取數(shù)據(jù)并且渲染到頁面,你也需要為頁面上的一系列按鈕或者什么控件注冊一系列的操作事件。

這簡單啊,這有什么難的!但是當你頁面中新聞數(shù)據(jù)僅僅是一個小模塊的時候,其他模塊可能還有用戶信息模塊,評論模塊,點贊模塊,各種分類模塊,廣告招商模塊,各種熱門模塊。如果想象不到復雜性,可以去網(wǎng)易新聞官網(wǎng)看看。

當然在這樣的情況下,你可能說,分離js呀,js模塊化,js合并壓縮。是的,這些都是不錯的解決方案。但是,你如何保證一個

網(wǎng)友評論