iT邦幫忙

第 12 屆 iThome 鐵人賽

DAY 6
1
Modern Web

從零開始的點餐系統,Google好棒棒系列 第 6

[Day6] 整合系統架構面

  • 分享至 

  • xImage
  •  

How - 架構示意圖

Prepare

Client: Browser & Telegram App
Presentation Layer: Angular
Business Layer: Golang Restful API
Data Store Layer: MongoDB

SourceCode

SourceCode

Why

Client

  • Browser :
    Firefox、Google Chrome、Microsoft Edge、Safari 與 Opera 是市場中主要的競爭者。過去十年來,行動裝置發展成為大部分使用者主要的上網方式。目前大部分使用者只使用行動瀏覽器與應用程式來上網。主要的瀏覽器也都為 iOS 及 Android 裝置提供行動版瀏覽器。雖然這些應用程式在特定用途上相當好用,但僅提供了受限的上網功能。

  • Telegram App :

  1. Telegram 擁有絕佳的保密性。軟體設計之初,Telegram 就已實踐端到端加密,並擁有自己的網路傳輸協定 MTProto,任何通訊紀錄幾乎不可能遭外力破解。
  2. Telegram 擁有廣泛的跨平台版本,除了 Android 與 iOS 兩個主要手機平台都能無礙使用,舉凡 Windows Phone、Windows PC、macOS、Linux 甚至於網頁瀏覽器,統統可登入 Telegram,並取得所有聊天資料和檔案。
  3. Telegram 擁有極大的開發彈性,用戶端本體除了是 GPL v3 協議的自由軟體,也有大量豐富且不斷新增的 API,提供開發者介接,同時也誕生許多不同功能的「機器人」。

Presentation Layer

  • Angular
    前端的語言與框架選擇非常的多,各自有其強項,為什麼會選Angular呢?
  1. Angular選擇了TypeScript作為主語言。如果你是個C#程式設計師,甚至對物件導向程式有經驗的開發者一定會對它的語法結構感到似曾相識。
  2. Angular在前端實現了服務與依賴注入的概念。
  3. 重點在於團隊開發中,Angular對團隊作戰提供了良好的支持,例如Html與程式碼的分離、CSS樣式表的局部化、模組化的設計、服務與依賴注入等。這些特性讓不熟悉前端的後端程式設計師可以先專注於跟後端程式碼最像的模型和交互邏輯部分,而把CSS樣式、Html等平行交給專業的前端設計師負責。

Business Layer

  • Golang Restful API
    為什麼選Golang開發WebAPI呢?

簡單、小巧、速度、令人愉悅的程式語言!? 是這樣嗎?
目前看來,Go在中介軟體開發或是需要處理的邏輯密集度越高,Go的優勢會越明顯。在一些極高併發系統設計中,除了容易撰寫外搭配使用Redis進行架構設計,可以處理比如搶購的秒殺需求。

Data Store Layer

  • MongoDB

MongoDB 是一種文件導向的 NoSQL 資料庫系統 (document-oriented NoSQL database system)。主要使用 C++ 程式語言撰寫,並以 BSON(類似於 JSON 的格式)為其儲存資料結構的架構。

  1. 不需要事先定義好資料的 schema 以及資料之間的關聯
  2. 可以自由新增欄位,不需要回頭修改過去的資料文件 (document)
  3. 可以自由定義資料文件 (document) 的結構

上一篇
[Day5] BOT系統架構面
下一篇
[Day7] Go Lang建置
系列文
從零開始的點餐系統,Google好棒棒30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言