大學畢業4年-回顧和總結(10)-資金賬務系統的架構設計(產品視角+技術視角)(圖文並茂)
背景
2014年和2015年開發P2P網貸系統的時候,某大牛有設計了一套簡潔實用的資金賬戶系統。
系統設計主要是為了服務於P2P網貸等系統,資金賬務系統可以作為一個獨立的子系統對外提供服務。
本系統,我基本沒有寫過幾行程式碼,更多是學習,理解別人的架構設計。
之前,有寫過相關總結。
大學畢業4年之際,想把之前各方面的積累都好好總結一番。
從本篇開始,寫點以前做過的產品和技術架構等。不玩高大上,要簡單直白。
友情提示:註釋,是不會太多的。英文過關的朋友,基本都看得懂。“約定優於配置”,“約定優於註釋”。
產品核心功能
業界“最佳實踐”
殊途同歸:支付寶、微信支付、京東商城,和錢相關的功能,最核心的都是:資金賬戶、交易(充值、提現、轉賬、支付)、查詢(資金流水、分類查詢、交易明細)。
支付寶圖:
雷觀:技術研發,懂產品對提升自己的架構能力,可以說是有巨大幫助的。
1.開戶
功能描述:建立一個賬戶。
賬號和賬戶是不同的概念,前者側重普通系統登入,後者側重“資金類系統”。
2.交易
充值:為一個賬戶增加一筆錢。
提現:從一個賬戶減少一筆錢。
轉賬:把一個賬戶中的錢,轉移到另外一個賬戶。
批量轉賬:轉賬的增強版。
凍結資金:把一個賬戶的資金,凍結一部分,可用餘額會減少相同的數額。
解凍資金:把一個賬戶的資金,解凍一部分,可用餘額會增加相同的數額。
3.查詢
基本資訊查詢:查詢一個賬戶的總金額、可用餘額、凍結餘額等資訊。
批量查詢:查詢多個賬戶的金額等資訊。
開戶-凍結賬戶-解凍賬戶
凍結資金、解凍資金等日誌
交易明細:包含了充值、提現、交易等所有的賬戶資金變動日誌。
4.凍結賬戶/解凍賬戶
凍結;把一個賬戶給凍結了,凍結的賬戶可能無法進行提現等操作。
解凍:把賬戶從凍結狀態,變為正常狀態。
技術架構
技術架構圖/產品架構圖
3種模式:本地jar包或者原始碼、WebService、Dubbo。
當使用WebService/Dubbo的時候,需要注意“分散式事務”。我們在做的時候,沒有過多考慮。
資料庫設計
賬戶表
內部賬戶表
賬戶資金凍結記錄
賬戶資金流水
充值返回通知
充值記錄
交易記錄
提現
詳細設計
介面包
外界呼叫賬務服務,先引入介面包就,再引入實現類jar。如果是WebService和Dubbo,只需要引入介面jar包就行了。
facade: 對外提供的服務,是通過facade包下的3個介面來暴露的。
enums:列舉類
model:各種模型
result:結果集,code+實體。錯誤碼code,也可以通過Exception+code來實現。
util:工具類。
AccountOpenFacade:主要提供開戶類的功能,外部賬戶、內部賬戶等是有點區分的。
AccountQueryFacade:查詢類功能,查詢賬戶、資金流水、資金凍結記錄等。
AccountTransFacade:交易類功能,充值、提現、凍結、取消凍結、轉賬。
實現包
facade.impl: 對外提供服務的實現類
account:賬戶模型,賬戶本身也可以有多重實現,這個還真是沒有想到。比如,DummyAccount可以空實現,有的時候會用到。
constants:常量
dal: 資料庫CRUD
exception:異常
service:內部業務邏輯,主要是查詢類的。
trans: 內部業務邏輯,主要是交易類的。
util:工具類。
vo:只有一個LockAccountVO,可能要鎖賬戶時的臨時VO。這個地方略顯高階!!!
查詢類功能service:
交易類功能trans:
不足之處
當時做P2P網貸系統的時候,資金賬務系統只實現了這些“應用類”的核心功能。
剛剛把產品架構圖畫好了,和某電商大牛交流了下,他覺得漏掉了2個核心功能:對賬和結算。
先記下來,下週認真學習下。
總結
1.資金賬務系統,是比較通用的。
2.先有產品設計,再有技術架構,再細節設計和編碼。
3.面向介面程式設計。
4.外界系統,只需要知道介面就可以了。
5.資金賬務類系統,需要一點業務能力。部分功能,需要懂財務會計等概念。
一轉眼,2016年5月,馬上就要過去了。
這個月,寫得大多是“創業投資和商業模式” 類的文章,效果還是非常好的。
但是,目前還是“技術立身” ,寫點技術類的總結,壓壓驚,嘿嘿!!!
小雷FansUnion-一個有創業和投資經驗的資深程式設計師-全球最大中文IT社群CSDN知名博主-排名第120
投資案例:好狗狗、皇包車、職業夢、比呀比、易途8
2016年5月29日
湖北-武漢-晴
雷觀:技術研發,懂產品對提升自己的架構能力,可以說是有巨大幫助的。
2014年和2015年開發P2P網貸系統的時候,某大牛有設計了一套簡潔實用的資金賬戶系統。
系統設計主要是為了服務於P2P網貸等系統,資金賬務系統可以作為一個獨立的子系統對外提供服務。
本系統,我基本沒有寫過幾行程式碼,更多是學習,理解別人的架構設計。
之前,有寫過相關總結。
大學畢業4年之際,想把之前各方面的積累都好好總結一番。
從本篇開始,寫點以前做過的產品和技術架構等。不玩高大上,要簡單直白。
友情提示:註釋,是不會太多的。英文過關的朋友,基本都看得懂。“約定優於配置”,“約定優於註釋”。
產品核心功能
業界“最佳實踐”
殊途同歸:支付寶、微信支付、京東商城,和錢相關的功能,最核心的都是:資金賬戶、交易(充值、提現、轉賬、支付)、查詢(資金流水、分類查詢、交易明細)。
支付寶圖:
雷觀:技術研發,懂產品對提升自己的架構能力,可以說是有巨大幫助的。
1.開戶
功能描述:建立一個賬戶。
賬號和賬戶是不同的概念,前者側重普通系統登入,後者側重“資金類系統”。
2.交易
充值:為一個賬戶增加一筆錢。
提現:從一個賬戶減少一筆錢。
轉賬:把一個賬戶中的錢,轉移到另外一個賬戶。
批量轉賬:轉賬的增強版。
凍結資金:把一個賬戶的資金,凍結一部分,可用餘額會減少相同的數額。
解凍資金:把一個賬戶的資金,解凍一部分,可用餘額會增加相同的數額。
3.查詢
基本資訊查詢:查詢一個賬戶的總金額、可用餘額、凍結餘額等資訊。
批量查詢:查詢多個賬戶的金額等資訊。
開戶-凍結賬戶-解凍賬戶
凍結資金、解凍資金等日誌
交易明細:包含了充值、提現、交易等所有的賬戶資金變動日誌。
4.凍結賬戶/解凍賬戶
凍結;把一個賬戶給凍結了,凍結的賬戶可能無法進行提現等操作。
解凍:把賬戶從凍結狀態,變為正常狀態。
技術架構
技術架構圖/產品架構圖
3種模式:本地jar包或者原始碼、WebService、Dubbo。
當使用WebService/Dubbo的時候,需要注意“分散式事務”。我們在做的時候,沒有過多考慮。
資料庫設計
賬戶表
內部賬戶表
賬戶資金凍結記錄
賬戶資金流水
充值返回通知
充值記錄
交易記錄
提現
詳細設計
介面包
外界呼叫賬務服務,先引入介面包就,再引入實現類jar。如果是WebService和Dubbo,只需要引入介面jar包就行了。
facade: 對外提供的服務,是通過facade包下的3個介面來暴露的。
enums:列舉類
model:各種模型
result:結果集,code+實體。錯誤碼code,也可以通過Exception+code來實現。
util:工具類。
AccountOpenFacade:主要提供開戶類的功能,外部賬戶、內部賬戶等是有點區分的。
AccountQueryFacade:查詢類功能,查詢賬戶、資金流水、資金凍結記錄等。
AccountTransFacade:交易類功能,充值、提現、凍結、取消凍結、轉賬。
實現包
facade.impl: 對外提供服務的實現類
account:賬戶模型,賬戶本身也可以有多重實現,這個還真是沒有想到。比如,DummyAccount可以空實現,有的時候會用到。
constants:常量
dal: 資料庫CRUD
exception:異常
service:內部業務邏輯,主要是查詢類的。
trans: 內部業務邏輯,主要是交易類的。
util:工具類。
vo:只有一個LockAccountVO,可能要鎖賬戶時的臨時VO。這個地方略顯高階!!!
查詢類功能service:
交易類功能trans:
不足之處
當時做P2P網貸系統的時候,資金賬務系統只實現了這些“應用類”的核心功能。
剛剛把產品架構圖畫好了,和某電商大牛交流了下,他覺得漏掉了2個核心功能:對賬和結算。
先記下來,下週認真學習下。
總結
1.資金賬務系統,是比較通用的。
2.先有產品設計,再有技術架構,再細節設計和編碼。
3.面向介面程式設計。
4.外界系統,只需要知道介面就可以了。
5.資金賬務類系統,需要一點業務能力。部分功能,需要懂財務會計等概念。
一轉眼,2016年5月,馬上就要過去了。
這個月,寫得大多是“創業投資和商業模式” 類的文章,效果還是非常好的。
但是,目前還是“技術立身” ,寫點技術類的總結,壓壓驚,嘿嘿!!!
小雷FansUnion-一個有創業和投資經驗的資深程式設計師-全球最大中文IT社群CSDN知名博主-排名第120
投資案例:好狗狗、皇包車、職業夢、比呀比、易途8
2016年5月29日
湖北-武漢-晴
雷觀:技術研發,懂產品對提升自己的架構能力,可以說是有巨大幫助的。
相關文章
- 大學畢業4年-回顧和總結(6)-技術研發-重構之法
- 大學畢業4年-回顧和總結(1)-錢,金錢觀
- 大學畢業4年-回顧和總結-序
- 產品視角下的資料倉儲
- AI產品視角下的ChatGPTAIChatGPT
- 大學畢業4年-回顧和總結(7)-全域性觀
- 大學畢業4年-回顧和總結(2)-錢,收入和支出
- Win10系統產品金鑰如何檢視 win10檢視產品金鑰的方法Win10
- 10分鐘,學會從上帝視角看產品資料
- 大學畢業4年-回顧和總結(5)-投資理財方法論
- 架構視角的效能最佳化架構
- 產品經理、設計師和技術三角色合一
- 大學畢業4年-回顧和總結(3)-投資理財觀-圖窮而真相現
- 從全域性視角看資料結構資料結構
- 大學畢業4年-回顧和總結(4)-投資理財無敗績,有圖有真相
- SAP產品增強技術回顧
- 軟體架構師之特殊視角架構
- 掌握Go型別內嵌:設計模式與架構的新視角Go型別設計模式架構
- 微服務實戰(九):落地微服務架構到直銷系統(回顧總結)微服務架構
- 緒論2:應用視角的作業系統作業系統
- 地圖系統:都市的夾、格、網、帶的視角地圖
- 工人援助系統:瞭解人的視角
- 如何檢視win10的產品金鑰 win10產品金鑰檢視方法Win10
- 圖文並茂|為你揭開微服務架構的“神祕面紗”!微服務架構
- 圖文並茂排序與演算法總結排序演算法
- [活動回顧] 實時音視訊技術專場總結來啦!
- 資產、入侵和風險三個視角構建金融行業資料安全體系行業
- 【架構師視角系列】風控場景下配置中心的設計實戰架構
- 12張圖開啟JMeter體系結構全域性視角JMeter
- 計算機“系統”視角中的未來願景計算機
- 一文弄懂宇宙的歷史與結構(圖文並茂)!
- 圖文並茂!推薦演算法架構——粗排演算法架構
- 技術團隊管理者的問題視角
- Win10系統設定工作列視窗不合並的方法【圖文】Win10
- 分析視角下銀行業資料平臺架構演進及實現行業架構
- cmd如何檢視win10產品金鑰_cmd怎麼檢視win10產品金鑰Win10
- 架構重構:通過以任務為中心的視角看軟體的進化架構
- 大佬視角:談談程式設計師的離職和跳槽程式設計師