政府的項目吧,沒啥說的,呵呵。
簡單的說說模塊化,網頁越來越像桌面程序,需要一個團隊分工協作、進度管理、單元測試等等......開發者不得不使用軟件工程的方法,管理網頁的業務邏輯。
Javascript不是一種模塊化編程語言,它不支持"類"(class),更遑論"模塊"(module)了。抄點阮一峰老師的段落?JavaScript模塊化編程。
一個頁面的js所需要的代碼在main.js里,然后需要一個插件來輔助你的開發,當然簡單的tab、slide、dropdown等小效果手寫就不需要插件了,一是減小體積,二是簡單的都不會寫還做什么程序?重點回來了,所有引用的js都寫在一個main.js里,另一個頁面沒有用到這些,而后端把js都配置到公共部分引入,然后問題就出來了,瀏覽器報錯。jQuery($) is not dedined。查看源代碼,發現jq庫引入順序出錯,調好了,問題又來了,xx is not a function,原因是之前引用的插件,但init或者調用方法寫在main.js里,所以報了一個錯。最笨的方法就是放到插件最后。或者用seajs或者require.js等來做到依賴自動加載,異步模塊定義。
有人若想問,為何不把調用方法直接寫在HTML頁面中,我想說,干干凈凈的HTML不好嗎?
還有一點,團隊的協調性在于前期通氣溝通研討,理論化的流程便是讓各自都知道這個項目,互動的不僅僅是一個文檔嘛。
以后的項目可能會越來越大,跨平臺開發也會越來越多。如果還像以前一樣刀耕火種的頁面中加載各種插件一大堆,前后臺各自加各自,頁面也會打開的慢,各種插件的全局變量暴露出來,全局作用域下容易造成變量沖突,文件只能按照,開發人員必須主觀解決模塊和代碼庫的依賴關系。在大型項目中各種資源難以管理,長期積累的問題導致代碼庫混亂不堪。我相信最后妥協的一方永遠是開發者。(本集完)
最后說一句,提前祝大家雞年大吉吧。