小程式·雲開發優劣簡述
最近一直在進行書籍《微信小程式開發入門與實踐》的第二版的編輯工作。工作量還是挺大的,整個書籍更新量超過了70%。除了替換一些舊有的介面,第二版還增加了以下內容:
1. 自定義元件。電影部分完全採用自定義元件的方式來構建
2. LinUI的使用。部分程式碼使用LinUI進行替換,整個重構過程下來發現大幅度的減少了程式碼量。比如文章評論,以前是手寫的ImagePicker,大概需要200行程式碼,第二版換用LinUI後,只需要不到10行程式碼;設定頁面的列表欄,以前手寫,大致是100行程式碼,使用Lin UI重構後,大致程式碼減少到20行。
目前考慮的是第二版中增加一部分雲開發的內容。雖然目前我不推薦使用雲開發,但相對於原書中的加解密使用者資訊以及微信支付而言(這些需要有一定的PHP基礎),雲開發對前端開發者可能更為實用。所以考慮將原書中有很強服務端特性的內容更換為雲開發。但由於新增了自定義元件,字數嚴重超綱,所以對於原書的PHP部分內容和雲開發要有取捨。所以想借文了解下讀者們的看法,是保留原來的PHP部分,還是刪掉增加雲開發?可以留言說說,主要想了解第一版書中哪些對你來說很有價值。你也可以留言講講你想學習的內容,我也考慮加入到書中。
下面我也將現在雲開發的問題簡單描述下,這不是一篇全面分析雲開發的文章,我想對於絕大多數開發者,需要的是我的結論,而不是研究的過程。如果確定了雲開發加入到書籍中,我會專門寫文字來講解雲開發。
去年雲開發出來後,我就花了一部分時間來研究雲開發,本意是製作一門新的視訊課程,但研究後發現有些最重要的點雲開發是無法支援的。對於做課程的技術選型,我還是有很鮮明的個性的,即使很多同學後臺留言要求我出雲開發的課程,但對於目前不實用的技術,我還是持保留態度。不能把大家帶到一個不實用的技術路線上,花錢買一門課程是小事兒,關鍵是學習一門課程所投入的時間實在是讓人心疼。
在線上課程這塊,我多少還是有一定影響力的,所以我不能隨意去做可能賺錢但並不實用的課程。這很容易給大家一種錯誤的技術導向。我的每一門課不僅僅是技術輸出,也代表了我對於技術選型的看法。所以目前是不會專門做雲開發的視訊課程,但可以寫成文字。雲開發目前還不成熟,未來還有大幅度的改動,所以寫成文字教程比較合適。
雲開發目前最大的問題是不支援從Web端呼叫。如果不能從Web端呼叫,那麼每個系統都需要的CMS也就是中後臺就根本無法完成。其次,雲開發即使支援從Web端呼叫,它依然有很多限制,只適合擴充套件性不強的小型系統。比如他預設是文件型的資料庫(MongoDB),沒有關係型資料庫(MySQL)的支援。對於這兩種資料庫我的觀點很明顯,長期考慮一個系統的可擴充套件性,優先選擇MySQL,MySQL的新版中其實也對文件型JSON資料有擴充套件欄位的。
雲開發目前並不適合投入到生產環境中,只適合做產品原型或者前期測試。對於一個業務邏輯較為複雜或者體系結構上比較複雜的產品,比如我的產品既需要支援小程式、還需要支援H5和APP,那麼小程式雲開發是無能為力的。至少目前,我不推薦雲開發。
雲開發的好處在於,不需要你配置環境(MySQL、Nginx、域名和HTTPS),甚至最頭疼的靜態資源儲存雲開發也有很方便的解決方案,這是吸引我一開始去研究雲開發的幾個點。
即使是雲開發,也還是需要具備一定的NodeJS基礎,所以,三思。對於我們來說,最寶貴的不是投資錢在學習上的成本,而是投資時間的成本。
如果你真想學習服務端,我的建議依然是去學習一門服務端技術,Java、Python、PHP、NodeJS都是可以的。雲開發是小程式特有,它不具備通用性。學習一門常規的服務端程式設計技術(Python、Java、Node),受用是終生的,可以用來給Web、移動端H5、APP編寫API,甚至保留一分以後可以轉型服務端開發的可能性。但你學習小程式的雲開發,那它只能來做小程式。
如果哪天小程式·雲開發支援從Web端呼叫,那麼它的價值才能體現出來。
此外,雲開發並不是小程式所獨有,有很多雲開發的服務平臺:LeanCloud、知曉雲等。有興趣的同學可以瞭解下,如果你真不想學習服務端程式設計技術,那麼其實LeanCloud還不錯,它們都是支援從Web端呼叫的。
LinUI小程式元件庫:
https://github.com/TaleLin/lin-ui github.comLinCMS開源解決方案:
TaleLin/lin-cms-vue github.com愛我,請關注我的公眾號: