技術問答
技術文章
iT 徵才
Tag
聊天室
2023 鐵人賽
登入/註冊
問答
文章
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
173 瀏覽
分享至
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鐵人賽
參賽組數
1123
組
團體組數
52
組
累計文章數
23068
篇
完賽人數
656
人
看影片追技術
看更多
{{ item.subject }}
{{ item.channelVendor }}
|
{{ formatDate(item.duration) }}
直播中
熱門tag
看更多
15th鐵人賽
13th鐵人賽
14th鐵人賽
12th鐵人賽
11th鐵人賽
鐵人賽
2019鐵人賽
2018鐵人賽
javascript
2017鐵人賽
python
windows
php
c#
windows server
linux
css
react
程式設計
vue.js
熱門問題
email 可以收到對方回覆信,但收不到對方新寄的信
簡單網路問題
win10/11 可以單一改變工具列的顏色嗎?
MYSQL 的TRIGGER的效能真的很差嗎
防止line及skye傳輸檔案
SQL 關聯變慢問題請教
vb.net要求已經中止: 無法建立 SSL/TLS 的安全通道 & IE無法瀏覽特定網頁
請問如何讓動態class類別的資料,可以寫到第二列以上?(Excel)
windows副檔名錯亂消失,重命名問題 (Advanced Renamer)
WORD 合併列印 條碼問題請教
熱門回答
sharetech 防火牆設定問題
SQL 關聯變慢問題請教
有應用程式阻止CHROME建立這個網站的安全連線(未安裝必要的fortinet根憑證)
請問如何讓動態class類別的資料,可以寫到第二列以上?(Excel)
簡單網路問題
熱門文章
呼叫專家 建立智慧助理平台 Youtube總結專家
LINE不順,傳圖傳不上去,PPPoE撥接線路,YouTube不順
Vigor LAN DNS 阻擋 抖音 小紅書 YouTube UBer QUIC DoH DoT
JVM 優化系列(一) 內存區域介紹
【Karman.js】建立卡門樹來批次封裝 API - 02
IT邦幫忙
×
標記使用者
輸入對方的帳號或暱稱
Loading
找不到結果。
標記
{{ result.label }}
{{ result.account }}