學習軌道
/
Ruby
Ruby
/
練習
/
銀行帳戶
銀行帳戶

銀行帳戶

簡單

簡介

經過多年填表和等待,你終於拿到銀行執照了。這代表你現在正式有資格開設屬於自己的銀行,太棒了!

你的第一要務,就是讓資訊系統順利運作起來。經過一整天的努力,你已經可以開立和關閉帳戶,也能處理提款和存款了。

因為你懶得寫測試,所以你邀請了幾位朋友來幫忙測試系統。然而,才過了五分鐘,其中一位朋友就說他們的錢不見了!雖然你對自己的程式碼很有信心,確信它沒有 bug,但你還是開始翻查日誌來調查。

啊,果然如你所料,是你的朋友有問題!他們把自己的測試憑證分享給另一位朋友,兩個人一起密謀,_同時_從同一個帳戶存款和提款。誰會做這種事啊?

當你主張一個人_不可能_同時存取自己的帳戶時,你的朋友得意地提醒你,銀行規則_要求_你必須支援這種情況。所以說,沒有支援並行銀行作業,就沒有上線的許可。你嘆了口氣,在心裡記下明天要處理這件事。這會讓你的上線日期_至少_再延後一天,不過,唉……

說明

你的任務是實作銀行帳戶,支援開戶/關閉帳戶、提款與存款。

由於銀行帳戶可以透過許多不同的方式存取(網路、手機、自動扣款),你的銀行軟體必須讓帳戶能被多個執行緒/行程(術語取決於你使用的程式語言)安全地平行存取。 例如,可能同時有許多筆存款與提款正在進行;你需要確保在讀取帳戶餘額與設定新餘額之間不會發生競爭條件。

帳戶應該要可以關閉;對已關閉帳戶進行的操作必須失敗。

透過 GitHub 編輯 連結會在新視窗或分頁中開啟
Ruby Exercism

準備好開始 銀行帳戶 了嗎?

註冊 Exercism,透過 21 個概念121 個練習 和真人引導來學習並精通 Ruby,全部免費。