---
# System prepended metadata

title: MESExpress 架構重建重點

---

# MESExpress 架構重建重點

## ==Source Code==

#### 以 MESExpress 的初始版當底來翻架構
> * 減少翻架構的時間，也減少某些客戶需求造成的混淆
> * 原始PPT的程式，可以用新版的API透過 system call來呼叫執行

#### 資料庫需要正規化
> * Table 有太多的 redundant column，如果需要加速存取，應該多採用 View 或是 index

#### MES 物件資源化存取
> * 將 MES 所定義的類別 (例如：Equipment, Lot, Carrier ...)，在 API 中定義基礎的 CRUD request
> * 資源的PK應該用GUID, 方便未來混淆出無機密資料，可從客戶端export

#### Serverless-like restful API server
> * Restful API server (Golang)
> * 應該要做成類似 serverless 的方式來開發商業邏輯，方便未來移植至運端運算
> * [Richarson Maturity Level](https://en.wikipedia.org/wiki/Richardson_Maturity_Model) 至少需要達到 **Level 2**
> * 需支援 request 能夠選擇傳遞的 input / output
> * 更進階可實作gRPC

#### Log 微服務
> * Log 應該能夠有 GUI 介面查詢、過濾
> * 所有子系統都應該發送至同一個 Log 服務

#### SAP interface 制定 MES 標準
> * 制定 MES API server 與 SAP 通用的功能

#### 設備 interface 制定溝通標準
> * 制定 MES API server 與設備通用的功能

#### 行動裝置 APP (with proper UX)
> * 應該針對小螢幕，或是行動裝置開發 APP

#### 使用者管理應該要獨立子系統
> * 需要一個獨立的管理系統
> * 能夠整合不同平台的登入
> * Authentication & authorzation 實作
> * 整合行動裝置的溝通 APP，如：LINE、Slack

#### 影音媒體、檔案傳遞
> 提供 local 影音串流功能，供客戶保留工作所需影片、錄音
> 整合外部雲端磁碟或是區網內的檔案管理


## ==管理==

#### 獨立 Product Team
> * Back-End Team
> * Fron-End Team

#### Source 管理
> * 使用 Golang 開發，易學好上手
> * git flow 標準制定
> * 程式註解文件化 (例如 Golan 的 godoc)
> * 去除不需要的註解，例如：Source code 不該保留移除的程式碼
> * git commit format 套件
> * CI/CD & UT 自動化
> * 制定轉換階段，逐漸將 system call 的 PPT 執行檔取代掉

#### 落實敏捷開發
> * 團隊應養成敏捷開發文化
> * 善用 Jira 等專案管理的工具

#### 混合雲規劃
> * 多個雲端運算平台
> * 雲端運算平台 + 自建服務

#### 落實Code Review
> * 制定標準的 Coding rule
