技術問答
技術文章
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
241 瀏覽
分享至
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鐵人賽
參賽組數
1064
組
團體組數
40
組
累計文章數
22203
篇
完賽人數
602
人
看影片追技術
看更多
{{ 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
熱門問題
筆電無法使用usb開機重裝系統
要怎知道LINE使用者的使用地址
防火牆互通問題
桌面的使用者文件圖標壞掉
Cisco 防火牆密碼確認正確,可是無法登入
函數問題
一開機就自動鎖定帳戶
開啟Microsoft Edge 瀏覽器無法開啟網頁,出現錯誤訊息
Audiosrv Windows Audio 高占用 CPU
bat檔截斷問題
熱門回答
防火牆互通問題
開啟Microsoft Edge 瀏覽器無法開啟網頁,出現錯誤訊息
if函數中的>&<&=是否可以使用儲存格代替
筆電無法使用usb開機重裝系統
Palo alto防火牆網頁解密問題?
熱門文章
[翻譯]使用AI工具寫程式碼時如何避免「AI幻覺」?
每日一篇學習筆記 直到我做完專題 :( [Day4]
每日一篇學習筆記 直到我做完專題 :( [Day5]
每日一篇學習筆記 直到我做完專題 :( [Day6]
每日一篇學習筆記 直到我做完專題 :( [Day7]
IT邦幫忙
×
標記使用者
輸入對方的帳號或暱稱
Loading
找不到結果。
標記
{{ result.label }}
{{ result.account }}