今天不聊技術的問題,咱們來聊聊在前端開發中如何管理好自己的 Javascript 代碼。首先,咱們先來說說一般都有哪些管理方式?我相信 seajs 、 requirejs 對於前端開發者而言都不陌生,不錯它們都是前端代碼模塊化開發的利器,顯然以模塊化的方式去管理我們的 Javascript 代碼,是很不錯的選擇。
不過今天咱不談模塊化開發,因為上面的兩個工具已經做得很好了,只要到他們的官方網站找到相應的文檔資料,認真學習,不需太多時日你也能掌握模塊化開發了。今天咱們要談的是在不依賴模塊管理工具的前提下,如何做好自己項目的代碼管理。
首先,筆者認為一個獨立的 Web 項目,應該有一個頂級的命名空間,而針對這個項目開發的所有附屬代碼應該盡量都放到該命名空間下。如果項目特別大,咱可以根據業務模塊再分二級命名空間,三級命名空間,等等。但是何謂大項目,這個就只能開發者自己去定義了。
然后,僅僅有命名空間還不夠,如果你所有的代碼都碼在一個 js 文件中,那將會是一個悲劇。為什么這么說呢?第一,如果我們有一個 Tip 組件,功能是給指定元素添加標簽提示功能,當我們需要在多個頁面中使用這個組件時,你就會發現,每個頁面都會引用 N 多沒用的代碼。第二,所有的代碼都寫在一個文件中,那么你的這個 js 文件,必將是一個龐然大物,幾千上萬行,調試起來也是相當有難度的。所以,要管好你的 js 代碼,請把獨立的插件、組件、公共方法,保存到獨立的 js 文件中,再用我們上面准備的頂級命名空間把它們聚集到一起來。
再然后,一套合理的編碼規范會讓你的代碼管理事半功倍。普通變量小駝峰,類名大駝峰,常量大寫,私有變量加前置下划線,能很好的提高你代碼的可讀性和可維護性。運算符之間添加空格,代碼使用 4(或 2)個空格合理縮進,可以讓你的代碼整齊有序,清晰易讀。代碼塊嚴格使用大括號包裹(即便只有一行語句),三元運算符合理使用小括號,會讓你的代碼整齊,邏輯清晰。統一的組件開發模式,可以讓你的代碼專業而不失優雅。還有很多很多,就不再往下羅列了,這些規范在很多規范文檔中已經寫得非常清楚,這里給大家推薦一個個人感覺很不錯的 js 規范,感興趣的朋友還可以找谷姐、度娘勾兌勾兌,學習更多的 js 規范,讓自己更專業。當然,所謂“盡信書,則不如無書”,所以,規范僅作參考,並不是嚴格限定,開發者可以在規范的基礎上保留一點點自己的個性,但必須保證風格統一。
最后,咱一起來看一個簡單的代碼示例,命名空間就以 SEEJS 為例了。
第一步,咱們先把我們的命名空間給弄出來,順便加一些基礎信息:
1 window.SEEJS = { 2 copyright: "CopyRight © MrZheng", 3 version: "1.0.0" 4 };
第二步,我們來定義一個組件結構:
1 (function(window, undefined){ 2 SEEJS.plugins = SEEJS.plugins || {}; 3 4 function Tips(cfg) {...} 5 6 Tips.prototype = { 7 constructor: Tips, 8 init: function() {...} 9 }; 10 11 SEEJS.plugins.Tips = SEEJS.plugins.Tips || Tips; 12 13 })(window);
只為舉例,咱就不再多寫了。最后,咱給我們的項目提供一些工具方法:
1 (function(window, undefined){ 2 var TOOLS = SEEJS.tools || {}; 3 4 TOOLS.trim = function(str) {...}; 5 TOOLS.hexToRgba = function(hex, alpha) {...}; 6 7 SEEJS.tools = TOOLS; 8 9 })(window);
現在我們在控制台輸入 SEEJS,然后敲一下回車,就可以清晰的看到我們的代碼結構了:
1 SEEJS = { 2 copyright: "CopyRight © MrZheng", 3 plugins: { 4 Tips: function(cfg) {} 5 }, 6 tools: { 7 trim: function(str) {}, 8 hexToRgba: function(hex, alpha) {} 9 }, 10 version: "1.0.0" 11 }
好了,就到這里了,純屬個人拙見,歡迎交流!!!
作者博客:百碼山庄