Java Web項目前端規範(採用命名空間使js深度解耦合)_JSP編程

來源:互聯網
上載者:User

沒有規矩不成方圓,一個優秀的代碼架構不僅易於開發和維護,而且是一門管理與執行的藝術。

這幾年來經曆了很多項目,對代碼之間的強耦合及書寫不規範,維護性差等問題深惡痛絕。在這裡,通過仔細分析後,結合自己的編碼習慣總結了一套適用於javaweb項目的前端書寫規範,與大家分享一下。

ps:感謝阿海的創意,後期整理如下(附檔案下載):

一、項目結構

這裡和其他項目區別不大,我將模板抽離出來,更容易分析和理解:


解釋一下:js主要包括extends(引入第三方的js)、module(項目模組自己的js)、lib(引用包,這裡也可以繼續拆分),module中包含具體的模組中的js。common.js是核心命名空間的js.

二、common.js

解釋一下,Globals作為全域命名空間,各個模組均可以在此命名空間裡定義域(如果有不明白的可以自學下命名空間,這個檔案寫死就行,也不用具體理解)。

三、task.js

這個檔案是模組中我的項目中任務模組的js(例子),模組層級別的js一般是將頁面中相對獨立重要的方法抽離出來的方法,不建議所有頁面js都拿進來。

解釋一下:模組層級別的js 主要包括自己的私人屬性和方法,及對外暴露的js屬性和方法。這裡我們預設凡是內部私人的前面都加“_”,最後決定哪些方法和屬性暴露出來,是通過構造方法constructor來對外暴露。

四、頁面index.jsp

現在看一下jsp中如何對頁面js和模組js是怎麼引用的吧,見證解耦和的時候到了。



解釋一下:頁面需要將common.js與task.js引入,然後初始化,這樣就可以訪問task模組中對外暴露的方法和屬性了。

頁面js建議所有的變數發在一個變數組中,這樣便於維護。

頁面中控制項的onclick等方法建議在js中統一綁定。

總結:通過上面的配置,最大的好處是對於項目中頻繁引入js檔案,消除了之間的耦合性,而且對於不同模組間的同名方法和屬性也不會互相影響,當然最主要的便於持續的開發和維護,同時也是藝術上的享受。

本文採用了我習慣的注釋風格,當然可以因人而異,我的原則是:

1.模組介紹代碼主要關註:模組描述,負責人,相關備忘,採用雙星注釋

/**

 *

 */

2.對於模組下,大地區的劃分,習慣採用雙橫線注釋:

//==================================================

//描述:

3.對於地區中,方法注釋,通過以往的經驗,不是每個人都願意詳細去寫的,所以我認為簡單明了最好,採用普通注釋:

//代碼描述

//作者備忘等資訊(不限)

4.對於地區中一些重要的方法,或者想區分一下,劃定小區間的,採用星橫線

/****************************描述*****************************/

如果有好的意見大家可以一起討論,如果感覺文章寫得對自己沒什麼協助,權當一笑了之。

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.