近來學習Play 2和Akka,想着找一個實戰性的項目練練手。正好近來公司提供晚餐,天天看着程序媛拿着手機一個一個的找人點餐,耗時多、且容易點漏、又打斷了自身的工做……哥以爲小妹兒工做好累啊。做爲一個全棧工程師,爲公司小妹兒減輕工做負擔責無旁貸啊。git
就在想,就在想……用什麼方法能夠簡化這個點餐流程呢?把玩着手中的微信,看到同事們在公司羣裏胡吹海吹,Duang!有了,就作一個基於微信公衆號的點餐系統。github
系統用到的技術有:數據庫
通過深思熟慮的思考,作一個基於WEB的點餐,經過微信打開內置遊戲器訪問。這個,感受B格不夠高,就是作一個網站了,Low……。我得作一個與微信深度集成的點餐功能,就像一個聊天機器人一下。用戶輸入指令,系統返回菜單。甚至用戶輸入語音,系統也返回菜單,哈哈哈!微信
在聊天窗口輸入指令顯示菜單,如:框架
選擇今日菜單後,系統在聊天窗口返回:工具
用戶選中一個菜品後系統應返回一個確認提示:學習
用戶註冊網站
這個系統只限於公司內部使用,因此不能讓隨便一個關注了公司號的人均可以進行點餐操做。因此用戶註冊功能是必需得有的。註冊也採用應答的方式,用戶在微信聊天窗口輸入相關信息,系統驗證成功後註冊成功。code
有註冊了,那登陸呢?登陸?都已經用微信作入口了,就直接登陸了吧。遊戲
Play
Play
用來作什麼?根據微信公衆號的開發文檔,接入微信公衆號須要80端口,並使用HTTP協議。這不是要開發WEB
嘛,哥用Scala
作開發,那天然就是Play 2
了。其實也不當當這個,Scala
下可以使用的Web
框架仍是不少的,甚至Spring
也能夠的嘛。不過我就是想用用Play 2
,OK。
用Play
其實還有一些網頁的開發工做,雖然是經過聊天窗口進行點餐。但仍是得有個簡單的管理後臺的,用於餐品管理、統計等。這些仍是作個WEB
程序比較方便。
Akka
Akka
有一個很好的特性,根據actor
模型開發,天然而然就是一個樹型結構。很適合用來管理每一個微信用戶的菜單選擇狀態。
Slick
Slick
是typesafe開發的一套用於訪問數據庫的工具庫。最新的3.x系列版本實現了一個非阻塞的數據庫訪問API,底層使用了JDBC
驅動。
Slick
是一個現代的訪問數據庫的Scala
庫,使用編寫訪問數據庫代碼和日常編寫代碼同樣,使用類集合操做的方式來訪問數據庫。同時也提供了以原生SQL
語言的方式來讀取數據庫,並同時保證類型檢查。
到https://mp.weixin.qq.com官網註冊訂閱號或服務號。步驟就不詳述了。