僅僅是整潔的代碼真的有用嗎?
我想說整潔的代碼只是一部分。這個(gè)整潔所包含的,我認(rèn)為是:
1.一個(gè)方法只做一件事情,一個(gè)方法的行數(shù)一定要對(duì)自己做嚴(yán)格要求,多余的事情,另起一個(gè)方法,并配有合適的命名。
舉個(gè)例子來說,我在ajax請(qǐng)求都數(shù)據(jù),回調(diào)方法可能需要對(duì)返回結(jié)果做一定的邏輯處理,拼接處理。在這個(gè)時(shí)候,我是很反對(duì)直接在回調(diào)方法中寫一長串處理邏輯的,一定要用一個(gè)新的function來處理。
2.堅(jiān)決杜絕全局變量。
有的人可能認(rèn)為,如果我注意點(diǎn),全局變量并不會(huì)帶來什么壞的影響。這樣說沒毛病,但是全局變量帶來的難以閱讀和難以維護(hù)性是不可估量的。
3.絕不在頁面底部或者$(function(){});或者onload中直接以$(xxx).click(function(){});這種形式來注冊(cè)事件。也絕不在html拼接成功后的方法中以上述方式注冊(cè)事件。
個(gè)人推崇的方式是,一定要將事件注冊(cè)封裝成方法。然后再去調(diào)用方法。
其余的整潔規(guī)范不做贅述,代碼整潔這種東西,要在不斷的實(shí)踐中,用心去思考和體會(huì),并且親手優(yōu)化和修改,只有一套理論擺著這里,收獲是0。
下面要討論的這種方式,一定是基于上述代碼整潔之道的基礎(chǔ)之上。開篇的三個(gè)常用JS代碼情形,你想到辦法如何將他們分離解耦,如何處理好他們之間的關(guān)系了嗎?
比方說,你在做一個(gè)互聯(lián)網(wǎng)新聞網(wǎng)站。
對(duì)于這樣的一個(gè)新聞列表,你可能需要Ajax對(duì)數(shù)據(jù)做增刪改查操作,你也需要從后臺(tái)讀取數(shù)據(jù)并且渲染到頁面,你也需要為頁面上的一系列按鈕或者什么控件注冊(cè)一系列的操作事件。
這簡單啊,這有什么難的!但是當(dāng)你頁面中新聞數(shù)據(jù)僅僅是一個(gè)小模塊的時(shí)候,其他模塊可能還有用戶信息模塊,評(píng)論模塊,點(diǎn)贊模塊,各種分類模塊,廣告招商模塊,各種熱門模塊。如果想象不到復(fù)雜性,可以去網(wǎng)易新聞官網(wǎng)看看。
當(dāng)然在這樣的情況下,你可能說,分離js呀,js模塊化,js合并壓縮。是的,這些都是不錯(cuò)的解決方案。但是,你如何保證一個(gè)