終於等到你,小程序開源啦~

回覆 PDF 領取資料 html

這是悟空的第 93 篇原創文章
前端

做者 | 悟空聊架構java

來源 | 悟空聊架構(ID:PassJava666)mysql

轉載請聯繫受權(微信ID:PassJava)

本文主要內容以下:git

1、緣起

PassJava 開源項目是一個面試刷題的開源系統,後端採用 Spring Cloud 微服務能夠用零碎時間利用小程序查看常見面試題,夯實Java 技術棧,固然題庫不限於 Java,還有微服務。github

以前有讀者問我小程序開源麼,因以前在寫分佈式算法系列的文章,因此開源項目中斷了一段時間,如今繼續更新開源項目。web

爲了讓讀者朋友們更好地學習該項目,我已經將小程序代碼開源面試

小程序的代碼地址在 github 上面,別忘記點個 star,素質三連哈~算法

https://github.com/Jackson0714/PassJava-Platform/tree/master/passjava-miniAppspring

小程序體驗碼以下:

小程序界面:

小程序有兩個版本:雲開發版和進階版。下面分別進行介紹。

2、雲開發版

2.1 小程序·雲開發簡介

小程序·雲開發是微信團隊聯合騰訊雲推出的專業的小程序開發服務。

開發者可使用雲開發快速開發小程序、小遊戲、公衆號網頁等,而且原生打通微信開放能力。

開發者無需搭建服務器,可免鑑權直接使用平臺提供的 API 進行業務開發。

2.1.1 優點:

  • 無需搭建服務器,只需使用平臺提供的各項能力,便可快速開發業務。
  • 無需管理證書、簽名、祕鑰,直接調用微信 API 。複用微信私有協議及鏈路,保證業務安全性。
  • 支持環境共享,一個後端環境可開發多個小程序、公衆號、網頁等,便捷複用業務代碼與數據。
  • 開發者可使用任意語言和框架進行代碼開發,構建爲容器後,快速將其託管至雲開發。
  • 支持按量計費模式,後端資源根據業務流量自動擴容,先使用後付費,無需支付閒置成本。

2.1.2 特色

雲數據庫:文檔型數據庫,穩定可靠;支持在小程序端和雲函數中調用。

存儲:雲端文件存儲,自帶 CDN 加速,支持在前端直接上傳/下載,可在雲開發控制檯可視化管理。

雲函數:在雲端運行的代碼,微信私有協議自然鑑權,開發者只需編寫自身業務邏輯代碼。

雲託管:支持託管服務容器,不限框架和語言,常駐運行、自然鑑權,可快速進行業務遷移

2.1.3 缺點

  • 適合我的開發。
  • 按照流量付費,訪問人多了的話,須要購買流量。
  • 因服務端是騰訊自帶的,因此不能使用其餘後端中間件來實現功能加強,好比 Redis,RabbitMQ。
  • 數據庫和存儲也是騰訊自帶的,因此不能使用其餘數據庫和存儲,好比 mysql、阿里雲。

2.2 小程序下載使用

2.2.1 題庫簡介

題庫功能以下圖所示:

  • 第一步:進入到選擇題目類型。這裏有 12 種類別,點擊其中一個可跳轉到題目列表頁。
題目類型
  • 第二步:進入到題庫列表頁。下圖是 Spring 題庫列表頁,能夠點擊查看進入到題目的詳情頁。
Spring 題庫
  • 第三步:進入到題目詳情頁。以下圖所示就是 spring 面試題的詳情頁,加載的內容就是上傳到雲存儲的 markdown 文件。後面會講解如何上傳題目。
題目詳情頁

2.2.2 上傳題目

要用這套雲開發版的小程序的話,須要先上傳題目文件到雲存儲。

以下圖所示,我上傳了不少 markdown 文件,你們能夠自行編寫 markdown 文件,每個文件對應一個題目,裏面的內容是題目的問題+答案。

2.2.3 添加題目記錄

而後須要在數據庫中插入數據,來提供給小程序查詢。

我導出了一條記錄,你們能夠直接插入到數據庫中。

{
 "_id""27a98c6c-0477-4edb-8ef3-e35f0501b31c",
 "question""1.JAVA 異常分類及處理?",
 "answer""cloud://test-0jlva.7465-test-0jlva-1254012214/markdown/02_JavaBasic/1、JAVA 異常分類及處理.md",
 "number""1",
 "subTitle""天天進步一點點",
 "type""javaBasic",
 "level""1"
}
  • question:題目的問題。
  • answer:題目的答案。
  • number:題目的序號。
  • subTitle:題目的副標題。
  • type:題目的類型,目前有 javaBasicjvmspring 等 12 種。也能夠自行添加。
共 12 種

markdown 格式的題目已經上傳到了 github,目前只有部分,歡迎你們 commit。

https://github.com/Jackson0714/passJavaKnowledge/tree/master

另外我還有 1000 道面試題的 pdf 也能夠用做題庫,須要的同窗在公衆號後臺回覆悟空領取下。

2.3 小程序原理

小程序原理圖以下:

原理圖說明:

1)調用 本身編寫的雲函數 getJavaQuestionList 獲取列表;

2)調用 本身編寫的雲函數 getJavaQuestionDetail 獲取詳情的 Markdown文件路徑;

3)調用 系統自帶的雲函數 downloadFile 下載 Markdown文件保存爲臨時文件;

4)調用 小程序自帶的 saveFileSync 將臨時文件保存到本地;

5)調用 小程序自帶的 readFileSync 將本地文件讀入緩存(注意:開發者工具上不須要保存到本地也能夠正常讀取);

6)使用 towxml 開源組件將緩存中markdown內容轉成小程序能夠識別的元素

7)給 圖片元素添加預覽事件

因小程序主要是用來刷題,附加的功能好比 banner 廣告位、熱點推薦我就不在這裏介紹了。

對於有些同窗來講,雲開發還比較陌生,須要多看看官方文檔熟悉下才能熟練進行二次開發。

3、進階版

該項目的小程序進階版指的是不用雲開發,後端採用 Spring Cloud 微服務做爲服務支撐,數據庫也不是雲數據庫了,而是 mysql。Rest 版本雖然目前還不完善,但已經和後端打通。

3.1 使用條件

目前須要如下條件才能將前端和後端連起來一塊兒用:

  • 本地後臺微服務啓動成功。

    目前要求 passjava-gateway、passjava-question、renren 啓動成功。

  • MySQL 數據庫和表結構建立成功。

    數據庫文件在 \data\sql 目錄,須要都執行。執行成功後,業務表總共有 5 個業務模塊, 7 張表,以下圖所示:

  • Nacos 服務啓動成功且已配置好微服務的相關配置。

    如何配置可參考前面的文章。訪問地址:http://192.168.56.1:8848/nacos。訪問 Nacos,並登錄 Nacos 後,以下圖所示:

  • passjava-portal 管理控制檯啓動成功。

    經過 http://localhost:8001/ 訪問。

  • 題目管理功能正常使用。

    能夠建立題目類型和建立題目。

  • 打開小程序代碼正常。

    另外須要注意下,Rest 版目前的首頁題目類型和題目列表正在開發中,因此仍是用的雲函數,獲取題目用到的 id 是 1。目前階段僅供學習,本人時間有限,歡迎你們來幫助 commit。

4、開源地址

我把後端、前端、小程序都上傳到同一個倉庫裏面了,你們能夠經過 GitHub碼雲訪問。地址以下:

Github: https://github.com/Jackson0714/PassJava-Platform

碼雲:https://gitee.com/jayh2018/PassJava-Platform

配套教程:www.passjava.cn

調試代碼是個辛苦活,精力有限,在寫技術文章時,還須要抽出時間倒騰這個開源項目,因此是否值得一讚?

參考資料:

https://developers.weixin.qq.com/miniprogram/dev/wxcloud/basis/getting-started.html

www.passjava.cn

- END -

寫了兩本 PDF, 回覆  分佈式  或  PDF  載。
個人 JVM 專欄已上架,回覆  JVM  領取

我是悟空,努力變強,變身超級賽亞人!

本文分享自微信公衆號 - 悟空聊架構(PassJava666)。
若有侵權,請聯繫 support@oschina.cn 刪除。
本文參與「OSC源創計劃」,歡迎正在閱讀的你也加入,一塊兒分享。

相關文章
相關標籤/搜索