用(yong)ChatGPT,快(kuai)速設計一個真實的賬號系(xi)統(tong)
hi,我是熵減,見字如面(mian)。
用ChatGPT,可以嘗試(shi)做很多的事情。
今(jin)天我們就來讓ChatGPT做為架構師,來幫我們設(she)計一個賬號系(xi)統(tong)吧(ba)。
我的實驗過程記(ji)錄(lu)如下,與你分(fen)享。
用戶故事
首先,我們從用戶故事(shi)開始吧。
提示:我們從用戶故事(shi)開始(shi),需要設計(ji)一個網站的賬(zhang)號(hao)系統模(mo)型,其中包括(kuo)賬(zhang)號(hao)基(ji)礎(chu)信息實(shi)體(ti),郵(you)箱驗證實(shi)體(ti),手(shou)機號(hao)驗證實(shi)體(ti),三方社交綁定實(shi)體(ti),密碼安全實(shi)體(ti),登(deng)錄記錄實(shi)體(ti)。
ChatGPT反饋為:

數據模型
確(que)認沒有問(wen)題,就(jiu)可以將(jiang)次轉(zhuan)化為一個數據模型啦。
提(ti)示:OK,將(jiang)以上設(she)計轉化為一個數據模(mo)型,并使用markdown表(biao)格的(de)形(xing)式(shi)來(lai)描述(shu)輸出
ChatGPT輸(shu)出為:


類關系圖
模型確(que)認后(hou),就可以輸(shu)出類關系圖(tu)啦。
我(wo)輸入的(de)提示為:幫(bang)我(wo)輸出類之間的(de)關系圖,用(yong)markdown的(de)格式,輸出符(fu)合Mermaid的(de)腳本代碼(ma)
ChatGPT反饋為:
classDiagram
class Account {
+username: string
+password: string
+create_time: datetime
+update_time: datetime
}
class EmailVerification {
+email: string
+verification_code: string
+is_success: boolean
+create_time: datetime
+update_time: datetime
}
class PhoneVerification {
+phone_number: string
+verification_code: string
+is_success: boolean
+create_time: datetime
+update_time: datetime
}
class ThirdPartyBinding {
+third_party_id: string
+third_party_username: string
+create_time: datetime
+update_time: datetime
}
class PasswordSecurity {
+password_security_id: string
+password_strength: string
+password_salt: string
+create_time: datetime
+update_time: datetime
}
class LoginRecord {
+login_time: datetime
+login_ip: string
+create_time: datetime
+update_time: datetime
}
Account "1" --> "0..1" EmailVerification
Account "1" --> "0..1" PhoneVerification
Account "1" --> "0..*" ThirdPartyBinding
Account "1" --> "1" PasswordSecurity
Account "1" --> "0..*" LoginRecord
以上代碼經過markdown渲染(ran)后的圖(tu)片為:

增加類屬性
此(ci)時,發現(xian)Account類中缺失了部分需要(yao)的屬(shu)性(xing),那就(jiu)可以(yi)讓ChatGPT類增加吧(ba)。
提(ti)示(shi):Account實體類(lei)中,需要增(zeng)加一個(ge)state狀態屬(shu)性,一個(ge)email_ver狀態屬(shu)性,一個(ge)phone_ver的(de)狀態屬(shu)性,請(qing)將變更后(hou)的(de)類(lei)關系圖(tu),用markdown再次輸出
新返回(hui)的(de)(de)markdown代碼經過渲染后的(de)(de)圖(tu)片為(wei):

序列圖
接下來,我們試一下事務變(bian)更的序列(lie)圖(tu)吧。
我輸入的提示為:
ChatGPT返回的代碼(ma):
sequenceDiagram
participant PhoneVerification
participant Account
participant PhoneVerificationService
participant SMS
PhoneVerification ->> PhoneVerificationService: 驗證通過,發送信號
PhoneVerificationService ->> Account: 更新phone_ver屬性
PhoneVerificationService ->> SMS: 發送驗證碼
經過渲染后的圖片(pian)為:

狀態圖
接下來,我們(men)生產一個狀態圖(tu)看一下吧。
我輸(shu)入的(de)(de)提示(shi)為:Account的(de)(de)state狀(zhuang)態有:新注冊(ce),已激(ji)活,已注銷(xiao),被鎖定等狀(zhuang)態,將這些狀(zhuang)態在(zai)Mermaid腳本(ben)中(zhong)描述出來,用markdown輸(shu)出狀(zhuang)態轉換的(de)(de)代(dai)碼(ma)
ChatGPT返回的代碼為:
stateDiagram
[*] --> New: 注冊
New --> Active: 郵箱/手機號驗證通過
Active --> Locked: 多次輸入錯誤密碼
Locked --> Active: 解除鎖定
Active --> Deactivated: 注銷
Deactivated --> Active: 恢復
Deactivated --> Archived: 數據保留
Locked --> Archived: 數據保留
Archived --> [*]: 數據清理
經過渲染后的圖(tu)片為:

最后
今天(tian)的實(shi)驗就到這兒啦。
可見,ChatGPT在軟件開(kai)發中是一個不錯的助手,它一家具有(you)了不錯的生產能力,幫我們做很多事情(qing)。
只要我(wo)們在(zai)每一個問(wen)答的(de)(de)回合(he)中,能給ChatGPT正確的(de)(de)提(ti)示,它就可(ke)以很(hen)好(hao)的(de)(de)配合(he)我(wo)們來完成任務,我(wo)就可(ke)以持續的(de)(de)發起并(bing)推動接下來的(de)(de)步驟(zou)。
接下來可以繼(ji)續(xu)嘗試啦。
關注 熵減黑客 ,一起學習成長
