From 342eabde57c210c11e50e5ef72111e4d9f08c19f Mon Sep 17 00:00:00 2001 From: "daniel.w" Date: Fri, 6 Dec 2024 21:41:20 +0800 Subject: [PATCH] readme --- README.md | 62 +++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 62 insertions(+) create mode 100644 README.md diff --git a/README.md b/README.md new file mode 100644 index 0000000..c95c4ea --- /dev/null +++ b/README.md @@ -0,0 +1,62 @@ +# 人資系統 + +--- + +> fliQt 技術挑戰 + +面試者: Daniel Wang
+信箱: igs170911@gmail.com
+linkedin: [點我](https://www.linkedin.com/in/hsing-hua-wang-3035081a0/) + +--- + +### 目的 +為了面試而建立的專案,了解人選(Daniel Wang) +1. 對於 api 的設計能力 +2. 對於功能的理解以及討論能力 +3. 資料庫設計的能力(包含結構設計,遷移,以及) +4. 對於快取使用的時機(例如如何防止雪崩,穿透,以及同時訪問等) +5. 對於 golang 專案目錄及架構的了解程度(UT, makefile, docker) + +--- + +### 說明 +本次範圍主要會把所有下列項目做完 +1. API 設計完成 +2. 資料表結構,以及相關索引 +3. 完整架構的部分 + +部分功能因為時間關係,不實作,但是會開出 Interface 出來示意,架構會趨於完整可以後續討論。 + +--- + +## 限制與假設 +需求需要詳細被討論,因為沒給定,我先假想,有需要可在面試時進一步討論 + +### 非功能性需求 + +#### 使用者數量範圍 +1. 初期階段: + * 支援 500 ~ 1,000 名員工,涵蓋中小型企業或部門需求。 + * 用戶主要為 HR 員工、部門經理,以及少量系統管理員(約占總使用者的 10%)。 + +2. 成長階段: + * 設計需具備可擴展性,支持 5,000 ~ 10,000 名員工,適合中型企業。 + * 具備支援更多 HR 人員和部門經理同時操作的能力。 +3. 長期目標: + * 最終設計需能支持 50,000 ~ 100,000 名員工,覆蓋大型企業的需求。 + * API 架構需能水平擴展,支持分布式部署及跨區域的數據一致性。 + +--- + +#### API 負載假設 + +1. TPS(每秒事務數,Transaction Per Second) + * 初期設計目標:支援 100 ~ 200 TPS,即每秒最多處理 200 次完整請求事務。 + * 成長階段:需擴展至 500 ~ 1000 TPS。 + * 長期目標:支援 5000 ~ 1,0000 TPS,需搭配水平擴展與快取優化。 + + +### 目前先設計支援初期階段因應人力,資源,以及時間考量下較為可行的 standalone 模式,但也要考慮之後可以拆成為服務的方案,以利後續擴充 + +### 功能性需求 \ No newline at end of file