14.2%企業願意聘用大資料人才
Cloud Future Built Today
IT EXPLAINED 數位轉型攻略 VII
技術問答
技術文章
iT 徵才
Tag
聊天室
2024 鐵人賽
登入/註冊
問答
文章
Tag
邦友
鐵人賽
搜尋
2023 iThome 鐵人賽
DAY
20
0
Software Development
從實戰中學習:Take Home Assignment review & refactor
系列 第
20
篇
[Day 20] 作業4:Bitcoin Trading Bot Design - 專案review
15th鐵人賽
take home assignment
system design
Moscle.dev
2023-10-04 22:57:18
293 瀏覽
分享至
Bitcoin Trading Bot Design - 專案review
今天來看作業4的後端作業,這份作業是要設計一個Bitcoin的交易所套利機器人系統,需要有系統設計圖和設計文件,以及使用Rust簡單實現。
作業在這
作業需求
系統設計圖 review
優點:
模組化
:系統分成不同模組,每一個模組都有特定的功能,這樣有利於系統的擴展和維護。
事件驅動
:系統採用了Redis Pub/Sub作為消息中間層,這樣可以確保即時數據流動和處理。
持久化存儲
:系統使用了DatabaseModule來持久化重要的數據,如價格數據和交易結果。
通知系統
:NotificationModule確保了重要的交易結果可以及時通知給相關人員,提高系統的透明度。
監控和日誌
:MonitoringModule和LoggingModule為系統提供了監控和日誌功能,有助於問題的及時發現和修復。
建議:
數據一致性
:當RedisPubSub發送消息給多個模組時,可能會有一致性問題。考慮使用事務或某種一致性協議來確保數據的一致性。
異常和錯誤處理
:在真實的系統中,交易所的API可能會失效或返回錯誤。DataCollectionModule和TradingModule應該要有策略來處理這些異常情況。
過度依賴Redis
:系統過於依賴Redis Pub/Sub來傳遞消息。可以使用其他Queue management或使用組合的方法來減少單點故障的風險。
價格更新策略
:DataCollectionModule從多個交易所收集價格數據,但在價格發生劇烈波動時可能會產生問題。可以使用某種策略或算法來平滑這些數據,以減少假正面或假負面的套利信號。
消息的優先順序
:在高頻交易中,某些消息可能比其他消息更加重要。可以給Redis Pub/Sub中的消息設定優先順序,以確保重要的事件能夠得到及時處理。
Readme review
優點:
完整性
:README包括了系統的所有主要模組以及它們的交互。
系統圖
:系統序列圖和組件圖提供了系統架構的清晰視覺表示。
解釋技術選擇
:解釋了為什麼選擇Redis Pub/Sub而不是其他如Kafka,以及其在此特定應用中的優勢。
提出設計問題
:指出了在設計和運行此類系統時可能需要考慮的關鍵問題,如Redis隊列長度、交易所API限制等。
建議:
背景資訊
:README的開頭可以提供一些背景資訊,解釋什麼是套利和它在加密貨幣交易中的重要性。
深入描述模組
:每個模組的描述都很基本。可以考慮對每個模組進行更深入的描述,解釋它是如何工作的,使用了哪些技術等。
實踐細節
:可以提供一些更具體的實踐細節,如使用的特定技術、工具或算法。
交互實例
:可以提供一個或多個系統交互的例子,以更好地理解系統是如何在特定情況下工作的。
錯誤處理和異常情況
:描述系統如何處理可能的錯誤或異常情況,如Redis中斷、交易所API故障等。
留言
追蹤
檢舉
上一篇
[Day 19] 作業4:Static Single Page View Implementation - 前端Code review
下一篇
[Day 21] 作業4:Bitcoin Trading Bot Design - 設計文件 review
系列文
從實戰中學習:Take Home Assignment review & refactor
共
30
篇
目錄
RSS系列文
訂閱系列文
10
人訂閱
26
[Day 26] Simple Auth App:專案始動
27
[Day 27] Simple Auth App:ORM & DB setting
28
[Day 28] Simple Auth App:註冊、登入實作
29
[Day 29] Simple Auth App : 修復TypeORM 問題與DataSource
30
[Day 30] Simple Auth App : 來做個收尾
完整目錄
尚未有邦友留言
立即登入留言
iThome鐵人賽
參賽組數
1064
組
團體組數
40
組
累計文章數
22211
篇
完賽人數
600
人
看影片追技術
看更多
{{ item.subject }}
{{ item.channelVendor }}
|
{{ formatDate(item.duration) }}
直播中
熱門tag
看更多
15th鐵人賽
16th鐵人賽
13th鐵人賽
14th鐵人賽
12th鐵人賽
11th鐵人賽
鐵人賽
2019鐵人賽
javascript
2018鐵人賽
python
2017鐵人賽
windows
php
c#
windows server
linux
css
react
vue.js
熱門問題
VMware remote console下載....
如何控管現在的手機連公司wifi-因手機現在會自動變更mac位置
求推介好用 AI 工具!
如何規劃一個安全的網路管制區
如何解決搜尋網址的摘要被導去垃圾站的問題?
公司大量報廢 3C 產品如何清理?
幼兒會亂按桌機開關關停桌機,奇怪以前的桌機需長按5秒才能關停,怎麼現在的桌機一按就關停了?請問有什麼方法或設定可以解決幼兒亂按關停桌機的問題.謝謝!!
Kali Linux如何執行exe檔?
想設計一個Powershell代碼
加入網域後導致的微軟程式封鎖
Windows 10支援倒數,聯繫微軟夥伴諮詢
立即標記行事曆,7/2 探索 AI 與雲端的無限未來!
僅需 6~12週快速建立 GenAI 策略與路線圖
GenAI 加速企業創新落地,更需要全新 IT 戰略
AI 賦能 DevOps,開啟創新應用!
熱門回答
如何控管現在的手機連公司wifi-因手機現在會自動變更mac位置
系統開發的問題請益
幼兒會亂按桌機開關關停桌機,奇怪以前的桌機需長按5秒才能關停,怎麼現在的桌機一按就關停了?請問有什麼方法或設定可以解決幼兒亂按關停桌機的問題.謝謝!!
中小公司 郵件系統、人資系統 更換請益
如何宣告讓任何 IP 都能連線的資料庫 (WorkBench)
熱門文章
【讓機器人做】自動截取網頁資料 + 排程器篇 I
kintone 外掛開發 ② 簡單實作範例 part 1 - 動手打包第一個外掛
Awesome Go Classroom Site
Angular 多專案架構
什麼是高內聚與低耦合的程式架構?
×
標記使用者
輸入對方的帳號或暱稱
Loading
找不到結果。
標記
{{ result.label }}
{{ result.account }}