如何管理你的 Javascript 代碼


今天不聊技術的問題,咱們來聊聊在前端開發中如何管理好自己的 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 }

好了,就到這里了,純屬個人拙見,歡迎交流!!!

作者博客:百碼山庄


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM