一、背景
1.我是一名軟件工程師,技術出身,擔任開發組長,對項目管理不是很熟,所以決定系統學習下項目管理。
2.全球最適合的項目管理學習課程就是PMP,每年有4次PMP考試,證書還是很有含金量的。
3.目前工作上不是很忙,有多余時間用來做自己的事,所以准備寫點代碼來玩下。
4.組里都是做小程序開發的,雖然是開發組長,但是大部分的時間都是和甲方打交道,寫代碼的時間確實很少。
5.於是決定寫個小程序來幫助我考PMP。
6.題庫都是培訓機構出的模擬題,我們學習小組將紙質的題目轉成了txt格式,方式有OCR,語音轉換,純手敲。整理題庫真的非常耗時!!
7.目前有14個小伙伴(培訓認識的)在使用這個小程序刷題,6月22號我們考完了,希望都能5A。
8.每天坐地鐵1個多小時都在刷題。零碎時間刷題真的非常爽,一直刷題一直爽。
9.想着做好了,可以跟培訓機構合作下,賺點外快。只可惜培訓機構的老板已經找到其他供應商了~~~~
10.最開始是小組內有個同學做了一個安卓的pmp知識工具,但ios的用不了,所以想着做一個小程序,這樣安卓和ios都可以用了,受眾也變多了。
組織過程資產:

小組聚在一起學習

二、show一波我的小程序
現在show一波我的小程序吧。后台采用小程序雲開發,這樣就不用自己搭后台,快速上手和開發。
主要有以下功能:
1. 每日練習題
2. 4套模擬試題在線作答
3. 備考心得
4. 專題秘籍
5. 答題排行榜
6. 開發版本記錄
7. PMP知識總結

三、詳細說明下我的小程序是怎么用雲開發的
1.首先需要創建雲函數,以創建會員為例
我創建一個member雲函數,定義創建member的方法,都是js寫的。
寫完之后需要上傳雲函數,這樣小程序前端就可以直接調用

//1.查詢會員是否存在
//2.不存在則創建會員
result = db.collection('member').where({
openid: wxContext.OPENID // 填入當前用戶 openid
}).get().then(res => {
if (res.data.length == 0) {
member = db.collection('member').add({
// data 字段表示需新增的 JSON 數據
data: {
nickName: user.nickName,
avatarUrl: user.avatarUrl,
gender: user.gender,
country: user.country,
province: user.province,
city: user.city,
openid: wxContext.OPENID,
appid: wxContext.APPID,
unionid: wxContext.UNIONID,
}
}).then(res => {
console.log(res)
return {
event,
user,
openid: wxContext.OPENID,
appid: wxContext.APPID,
unionid: wxContext.UNIONID,
memberId: res._id
}
}).catch(console.error)
return member
} else {
member = res.data[0]
return member
}
return member
})
return result
}
2.前端如何調用雲函數
createMember: function (user) {
// 創建會員
wx.cloud.callFunction({
name: 'member',
data: {
action: 'create',
user: user
},
success: res => {
console.log('[雲函數] [login] user openid: ', res.result.openid)
app.globalData.openid = res.result.openid
app.globalData.openid = res.result.nickName
this.setData({
isShowResigterModal: false
})
},
fail: err => {
console.error('[雲函數] [login] 調用失敗', err)
}
})
},
getMember: function () {
// 查詢會員
wx.cloud.callFunction({
name: 'member',
data: {
action: 'get'
},
success: res => {
console.log('[雲函數] [login] res: ', res.result)
if (res.result != null) {
app.globalData.openid = res.result.openid
app.globalData.memberId = res.result._id
app.globalData.nickName = res.result.nickName
this.setData({
isShowResigterModal: false
})
} else {
this.setData({
isShowResigterModal: true
})
}
},
fail: err => {
console.error('[雲函數] [login] 調用失敗', err)
}
})
},
3.后端如何debug
選擇本地調試

打斷點進行調試

四、小程序雲開發控制台
我們可以打開雲開發控制台,看到有很多監控參數,這個月大家刷題刷得很多,所以流量有很高,總共調用了1.63萬次,使用量還是挺高的哦~
1.首先看下運營分析,資源使用率

2.看下用戶訪問量,總共注冊用戶16人

3.監控圖標,可以看到過去多少小時內的流量

4.我創建的數據庫和表

5.存放文件和設置權限,主要是存放小程序用到的圖片

6.雲函數調用情況,可以看到成果和失敗的

五、github提交記錄
4月,5月,6月都有開發,中間有2個星期沒有開發,當時覺得做刷題功能比較耗時間。后來小組內有人說小程序做的不錯,偶爾還看下,所以又鼓起了我的興趣,就接着做答題功能。
下面是github提交記錄

我的gitbub鏈接:
https://github.com/Jackson0714
模擬題有版權問題,就不上傳代碼了。
關注公眾號:悟空聊架構,回復pmp,領取pmp資料!
作 者:悟空聊架構
出 處:http://www.cnblogs.com/jackson0714/
關於作者:專注於移動開發。如有問題或建議,請多多賜教!
版權聲明:本文版權歸作者和博客園共有,歡迎轉載,但未經作者同意必須保留此段聲明,且在文章頁面明顯位置給出原文鏈接。
特此聲明:所有評論和私信都會在第一時間回復。也歡迎園子的大大們指正錯誤,共同進步。或者直接私信我
聲援博主:如果您覺得文章對您有幫助,可以點擊文章右下角【推薦】一下。您的鼓勵是作者堅持原創和持續寫作的最大動力!

悟空聊架構
關注我,帶你每天進步一點點!
還有111本書籍贈送~~
