記一次小程序之旅

感受已經很久沒寫程序了,最近這段時間,一方面是學習了python,而後折騰了scrapy框架,用python寫了下守護進程程序監放任務以及用redis作隊列任務通訊,並開進程來處理爬蟲任務。以上這些其實沒啥好說的,就是順帶提一下。另外就是最近編寫segmentfault的講堂小程序,算起來,自小程序開始編寫到如今算是正式的上線,大大小小的也除了些問題,所幸都能及時發現並解決。前端

整套小程序開發過程當中大概涉及到了幾方面的內容:python

  • 後端基礎業務邏輯服務部分;
  • 小程序用戶與segmentfault本來用戶同步部分,也就是用戶綁定模塊;
  • 定時任務處理小程序太陽碼;
  • 小程序界面佈局踩坑;
  • 小程序接口使用踩坑;
  • 小程序自己的各類配置踩坑;

後端基礎業務邏輯部分基本上不用作多說,同步自己講堂的程序基本就能夠了,主要就是在用戶模塊,這一塊一方面主要涉及到微信登陸判斷是否曾經綁定過微信,另外就是判斷是不是新用戶。用戶綁定的邏輯主要複雜在既須要考慮微信自己的接口在不一樣狀況下提供的數據不一樣,另一方面就是考慮自己用戶模塊的業務邏輯問題。固然還有新用戶註冊解決用戶名重複等細節問題,大大小小的問題加起來在這個看似的簡單功能上面解決了好幾回bug。android

針對每一節課以及每一節系列課程生成小程序太陽碼主要涉及到幾個細節問題。首先小程序自己沒有提供一個用來生成太陽碼的測試接口,必需要小程序上線才行,因此這一步的開發很不方便,雖然是按照文檔一步一步的進行編寫,並且也看似沒問題,可是其實內心是一點底都沒有的,若是生成的太陽碼訪問不了,特別是若是攜帶的參數不對,壓根就不知道到底錯在哪裏,而若是要用小程序調試模式看參數有何問題,那麼須要從新提交小程序審覈上線,一耽擱可能又是一天兩天時間,至關不方便。redis

另外就是太陽碼生成的話這裏其實有一個併發的問題,我本來的考慮是若是當前講座沒有太陽碼那就即刻生成,若是有則直接返回太陽碼。看似毫無任何問題,仍是老大 @joyqi 問了我一句:「若是一次性訪問這個頁面有多我的咋辦?」,當時的那種感受就是,彷佛忽然腦殼裏一道光一閃,臥槽,這種操做怎麼沒想過?特別是圖片生成自己就會消耗必定的時間,若是在這個地方有多個用戶同時操做一定會浪費大量的資源,內存,CPU,以及磁盤存儲,雲服務存儲等。最後固然就是乖乖的改爲了定時任務處理了(固然也考慮過隊列任務處理,此處不作多說了)。小程序

說到小程序自己,那就是切記要看清楚小程序開發文檔後面的Bug & Tips,並且特麼的這一部分千萬要反覆看,看了第一遍一般以爲懂了,可是仍是會出bug,而後就是小程序開發工具所表現出來的東西與真機表現出來的效果可能徹底不同,另外真機表現效果在android和iOS所表現出來的結果依舊可能會徹底不同。而後對於自己小程序所用的JavaScript語言自己,在使用一些咱們一般在瀏覽器中使用的原生函數或原生對象或原生方法的時候,也必需要注意可能小程序不支持形成小程序報錯並中止運行,且小程序也在不斷的升級版本,會加入或淘汰一部分其餘內容。segmentfault

經歷了此次小程序開發後,要說感悟的話,估計就是對segmentfault自己的業務邏輯是更熟悉了,另外最大的感觸就是感受作小程序既不像是作前端,也不像是在寫APP,這種感受...無話可說。後端

最後很是感謝公司各位夥伴給予的支持和幫助。瀏覽器

clipboard.png

相關文章
相關標籤/搜索