技術問答
技術文章
iT 徵才
Tag
聊天室
2025 鐵人賽
登入/註冊
問答
文章
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
358 瀏覽
分享至
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 : 來做個收尾
完整目錄
熱門推薦
{{ item.subject }}
{{ item.channelVendor }}
|
{{ item.webinarstarted }}
|
{{ formatDate(item.duration) }}
直播中
立即報名
尚未有邦友留言
立即登入留言
iThome鐵人賽
參賽組數
902
組
團體組數
37
組
累計文章數
10078
篇
完賽人數
98
人
看影片追技術
看更多
{{ item.subject }}
{{ item.channelVendor }}
|
{{ formatDate(item.duration) }}
直播中
熱門tag
看更多
15th鐵人賽
16th鐵人賽
13th鐵人賽
14th鐵人賽
12th鐵人賽
11th鐵人賽
鐵人賽
17th鐵人賽
2019鐵人賽
javascript
2018鐵人賽
python
2017鐵人賽
windows
php
c#
windows server
linux
css
react
熱門問題
Esxi 8.0版本上的虛擬機器, 安裝的作業系統是Windows Server 2025, 確定輸入的密碼是正確的, 無法登入(顯示密碼錯誤)
【求助】顯卡/主板 支援 PCIe4.0 為何 Host to Device (H2D) 只剩 Gen1 速度 (0.5 GB/s) ?
請問今天鐵人賽的發文系統是否故障?
Windows GPO Bitlocker
HP iLo Advanced trial license
在線求大神,千奧軟體主機怎麼安裝
Docker Compose 建立 GitLab 容器,執行器 Runner 運行流水線問題
windows server無法使用gpedit.msc
Java證照題目(main() method)
因為網路磁碟的關係造成系統自動重新開機
熱門回答
Esxi 8.0版本上的虛擬機器, 安裝的作業系統是Windows Server 2025, 確定輸入的密碼是正確的, 無法登入(顯示密碼錯誤)
Windows GPO Bitlocker
【求助】顯卡/主板 支援 PCIe4.0 為何 Host to Device (H2D) 只剩 Gen1 速度 (0.5 GB/s) ?
windows server無法使用gpedit.msc
熱門文章
[為你自己學 Gemini CLI ... 的原始碼] 第 2 天,主程式裡的 Hello Kitty!
第30天,完賽心得 / 葉家藥燉排骨 在地排隊美食(新北板橋)| 30天滷肉飯
[為你自己學 n8n] 第 3 天,打開控制台,認識你的自動化駕駛艙!
第4天,數位憑證的產生 / 中崙張記藥膳排骨 排骨讚(台北松山)| 30天滷肉飯
第4天,Cloudflare Public DNS 與 WARP / 滷小小 美味的滷味 | 30天板橋湳雅夜市
IT邦幫忙
×
標記使用者
輸入對方的帳號或暱稱
Loading
找不到結果。
標記
{{ result.label }}
{{ result.account }}