本文主要是從代碼方面跟你們分享我本身在開發小程序的一些作法,但願能幫到一些同窗。css
不知道你們有沒有這種體會,剛到公司時,領導要你維護以前別人寫的代碼,你看着別人寫的代碼陷入了深深的思考:「這誰寫的代碼,這麼殘忍」 小程序
在開發以前,首先要明確你要作什麼,不要一上來就是幹,我們先把項目結構搭好。通常來講,開發工具初始化的項目基本能夠知足需求,若是你的項目比較複雜又有必定的結構的話就要考慮分好目錄結構了,個人作法以下圖: api
這麼分已經足以知足個人需求,你能夠根據本身的項目靈活拆分。promise
個人項目中有個config.js,這個文件是用來配置項目中要用到的一些接口和其它私有字段,咱們知道在開發時一般會有測試環境和正式環境,而測試環境跟正式環境的域名可能會不同,若是不作好配置的話直接寫死接口那等到上線的時候一個個改會很是麻煩,因此作好配置是必需的,文件大體以下: 微信
代碼的健壯性、容錯性也是咱們應該要考慮的一點,移動端的項目不像pc端的網絡那麼穩定,不少時候網絡一不穩定就決定咱們的項目是否能正常運行,而一個好的項目就必定要有良好的容錯性,就是說在網絡異常或其它因素致使咱們的項目不能運行時程序要有一個友好的反饋,下面是一個網絡請求的例子: 網絡
而後就能夠在頁面根據狀況進行相應的操做了。數據結構
能夠看到上面的截圖的錯誤打印後面會帶一個gde0或gde1的英文代碼,這個代碼是幹嗎用的呢,實際上是用來報障的,當咱們的小程序上線後可能會遇到一些用戶發來的報障,通常是經過截圖發給咱們,以前沒有作錯誤提示碼的時候可能只是根據一句錯誤提示來定位錯誤,可是不少時候誤提示語都是同樣的,咱們根本不知道是哪裏錯了,這樣一來就不能很快的定位的錯誤,因此加上這樣一個提示碼,到時用戶一發截圖來,咱們只要根據這個錯誤碼就能很快的定位錯誤並解決了,錯誤提示碼建議命名以下:app
像上面gde表示獲取草稿失敗,後面加上數字表示是哪一步出錯。dom
咱們組內的大神說過, 模塊化的意義在義分治,不在於複用。 以前我覺得模塊化只是爲了能夠複用,其實否則,不管模塊多麼小也是能夠模塊化,哪怕只是一個簡單的樣式也同樣,並是不爲了複用,而是管理起來方便。 不少同窗常常將一些公共的樣式事js放在app.wxss和app.js裏以便調用,這樣作其實有一個壞處,就是維護性比較差,若是是比較小的項目還好,項目一大問題就來了。並且項目是會迭代的,不可能老是一我的開發,可能後面會交接給其餘人開發,因此會形成的問題就是:異步
因此模塊化的意義就出來了,將公共的部分進行模塊化統一管理,也便於維護。
公共樣式根據上面的目錄結構我是放在public裏的css裏,每一個文件命名好說明是哪一個部分的模塊化,好比下面這個就表示一個按鈕的模塊化
js模塊化這裏分爲兩個部分的模塊化,一部分是公共js的模塊化,另外一部分是頁面js的模塊化即業務與數據的拆分。
比較經常使用的公共js有微信登陸,彈窗,請求等,通常我是放在units文件夾裏,這裏經微信彈窗api爲例:
業務與數據模塊化就是指業務和數據分開,互不影響,業務只負責業務,數據只負責數據,能夠看到頁面會比普通的頁面多了一個api.js
組件化相信你們都不陌生了,自從小程序支持自定義組件,能夠說是大大地提升了開發效率,咱們能夠將一些公共的部分進行組件化,這部分就不詳細介紹,你們能夠去看文檔。組件化對於咱們的項目來講有很大的好處,並且組件化的可移植性強,從一個項目複用到另外一個項目基本不須要作什麼改動。
這篇文章經過我本身的一些經驗來給你們介紹如何優化本身的代碼,主要有如下幾點
最後放上項目目錄結構的代碼片斷,你們能夠研究一下,有問題一塊兒探討:developers.weixin.qq.com/s/1uVHRDmT7…