用ChatGPT,快速設計一個真實的賬號系統

hi,我是熵減,見字如面。

用ChatGPT,可以嘗試做很多的事情。

今天我們就來讓ChatGPT做爲架構師,來幫我們設計一個賬號系統吧。

我的實驗過程記錄如下,與你分享。

用戶故事

首先,我們從用戶故事開始吧。

提示:我們從用戶故事開始,需要設計一個網站的賬號系統模型,其中包括賬號基礎信息實體,郵箱驗證實體,手機號驗證實體,三方社交綁定實體,密碼安全實體,登錄記錄實體。

ChatGPT反饋爲:

image

數據模型

確認沒有問題,就可以將次轉化爲一個數據模型啦。

提示:OK,將以上設計轉化爲一個數據模型,並使用markdown表格的形式來描述輸出

ChatGPT輸出爲:

image

image

類關係圖

模型確認後,就可以輸出類關係圖啦。

我輸入的提示爲:幫我輸出類之間的關係圖,用markdown的格式,輸出符合Mermaid的腳本代碼

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渲染後的圖片爲:

image

增加類屬性

此時,發現Account類中缺失了部分需要的屬性,那就可以讓ChatGPT類增加吧。

提示:Account實體類中,需要增加一個state狀態屬性,一個email_ver狀態屬性,一個phone_ver的狀態屬性,請將變更後的類關係圖,用markdown再次輸出

新返回的markdown代碼經過渲染後的圖片爲:

image

序列圖

接下來,我們試一下事務變更的序列圖吧。

我輸入的提示爲:

ChatGPT返回的代碼:

sequenceDiagram
    participant PhoneVerification
    participant Account
    participant PhoneVerificationService
    participant SMS
    PhoneVerification ->> PhoneVerificationService: 驗證通過,發送信號
    PhoneVerificationService ->> Account: 更新phone_ver屬性
    PhoneVerificationService ->> SMS: 發送驗證碼

經過渲染後的圖片爲:

image

狀態圖

接下來,我們生產一個狀態圖看一下吧。

我輸入的提示爲:Account的state狀態有:新註冊,已激活,已註銷,被鎖定等狀態,將這些狀態在Mermaid腳本中描述出來,用markdown輸出狀態轉換的代碼

ChatGPT返回的代碼爲:

stateDiagram
    [*] --> New: 註冊
    New --> Active: 郵箱/手機號驗證通過
    Active --> Locked: 多次輸入錯誤密碼
    Locked --> Active: 解除鎖定
    Active --> Deactivated: 註銷
    Deactivated --> Active: 恢復
    Deactivated --> Archived: 數據保留
    Locked --> Archived: 數據保留
    Archived --> [*]: 數據清理

經過渲染後的圖片爲:

image

最後

今天的實驗就到這兒啦。

可見,ChatGPT在軟件開發中是一個不錯的助手,它一傢俱有了不錯的生產能力,幫我們做很多事情。

只要我們在每一個問答的回合中,能給ChatGPT正確的提示,它就可以很好的配合我們來完成任務,我就可以持續的發起並推動接下來的步驟。

接下來可以繼續嘗試啦。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章