20240122-stock-data
Question
設計一個可以有1000 client 可以取得最後的開高收低,已經有資料、可以自行決定儲存,要怎麼設計client說明幾種不同的方法及為甚麼使用,可以用任意技術及可以選擇任意分散機制
Solutions
先考慮以下幾點
- Client Ease of use: 對顧客使用簡單且有用
- Ease for Our selves: 對我們來說好實作且好維護
- Flexibility for future demand: 如何根據真實世界需求彈性調整
- Scalability and Efficiency: 注意解決有效性
Propsal 1 file
使用簡單text file,且讓顧客透過FTP下載
- Pros
- 簡單好維護、方便閱讀、備份
- Cons
- 搜尋、排序困難
- 新增資料會break paring mechanism
Propsal 2 SQL
- Pros
- 方便查詢且有效率
- rolling back, backing up, security 已經有,不用重新造輪子
- 方便整合現有應用,因為SQL幾乎是軟體開發標準
- Cons
- 笨重,會複雜化系統
- 人類難閱讀
- 對於client要注意、不該給的權限、使否執行昂貴、沒效率的queries
Propsal 3 XML
- Pros
- easy to distirbute, 對機器、人類好閱讀
- 大部分程式都支援XML
- 很好新增 插入
- 有很多工具可以back up
- Cons
- 執行query 需要取得全部data
- client 會有全部資料,會沒有效率 沒有正確的答案,雖然看起來file的做法最不好,每種方法都有trade off