他們三個人沒想到陳景已經把這個事情想的這麼透徹了。
趙圓圓頓了一下,把馬克筆換到另一只手上,在白板上把陳景說的全部畫了出來。
陳景則是在“群紅包”下面畫了第三條支線。
“還有一個維度需要考慮,紅包類型。”
“一種是等額紅包,每個人搶到的金額完全一樣,適合正式場合。”
“一種是拼手氣紅包,總金額隨機分配到每個紅包,金額有多有少,搶紅包的過程有游戲性,更適合日常娛樂。”
“這個游戲性,就是你不知道下一個紅包里有多少錢,才是紅包功能的真正鉤子。”
“需要點擊一個開字按鈕,才能知道多少錢,這就是多了一層含義。”
“就是不知道這個底層架構怎麼做。”
這個時候,大家開始深入討論。
陳景畢竟不知道專業術語,只能把自己的話說給他們听,讓他們去翻譯成專業術語。
王一凡把所有東西都記下了,旋即把筆記本電腦推到一邊,站起來走到白板前面,從趙圓圓手里接過另一支馬克筆。
在“群紅包”旁邊畫了個技術架構的簡要拓撲圖。
他的字跡還是一如既往地工整,每一條線都畫得筆直,不同模塊之間用不同顏色的箭頭連接,看上去像是直接從系統設計文檔里拓下來的。
“底層架構分四層。”
“前端交互層,負責紅包卡片的動畫渲染、點擊領取的交互邏輯、金額展示的實時刷新。”
“移動端需要做兩套,ioS用object-c寫原生界面,安卓用Java寫,兩套代碼同步開發,工作量翻倍。”
“p業務邏輯層是核心,需要處理的事包括紅包的創建規則,個人紅包一對一、群紅包一對多。”
“金額分配算法,等額紅包就是總金額除以個數,拼手氣紅包需要用二倍均值隨機算法,先設定每個人能搶到的最大金額為剩余金額均值的兩倍,在這個範圍內隨機分配,既能保證每個人都有機會搶到較大的金額,又能確保總金額不會超額。”
“領取狀態同步,同一個紅包不能同時被兩個人領取,需要在高並發環境下保證數據一致性。”
“還有超時退款機制,紅包發出後規定時間內未被領完,剩余金額自動退回原賬戶。”
“數據存儲層。”
“紅包訂單表,記錄每筆紅包的唯一Id、發送者賬戶、金額、個數、類型、群Id、創建時間、過期時間。”
“領取記錄表,每條領取記錄綁定對應的紅包Id,包含領取者賬戶、領取金額、領取時間戳。”
“賬戶余額變動表,每一次發紅包的扣款和領紅包的入賬都需要記錄流水並實時更新賬戶余額。”
“數據量方面,紅包是典型的高頻小額交易,假設同時在線用戶數達到某個量級。”
“其中一部分用戶同時發紅包,每個群紅包又對應多個領取動作,數據庫每秒需要處理的事務量會很大。”
“需要做讀寫分離,主庫負責寫入紅包訂單和領取記錄,從庫負責查詢紅包狀態和領取詳情,減輕主庫壓力。”
這些都是陳景的話翻譯的。
王一凡也不愧是目前最強技術人員。
很快就把這些東西消化了。
“安全層。”
“資金安全方面,對接第三方支付接口,用戶支付時調用支付扣款,用戶領取後資金轉入賬戶錢包,涉及資金流轉的全部鏈路都需要做防篡改校驗。”
“傳輸安全方面,所有跟紅包相關的請求全部走加密協議,防中間人攻擊。”
“反作弊方面,關鍵來了。”
王一凡推了推眼鏡,拿筆在“反作弊”三個字上用力畫了個圈。
“紅包系統天然是羊毛黨的重災區。”
“如果有機器人號批量注冊、自動搶紅包,普通用戶根本搶不過。”
“需要把我們的反作弊行為分析引擎接入紅包系統,同一設備短時間內領取多個紅包、同一Ip地址大量賬號同時在線、注冊時間集中在某個時間段的批量賬號,這些異常行為模式都會被行為分析引擎捕捉到,自動觸發驗證或封禁。”
“這部分反作弊引擎已經跑通了,直接復用,不需要額外研發。”
王一凡退回座位,把馬克筆擱在桌上,拿起水杯灌了一口,然後靠在椅背上把眼鏡摘下來用衣角擦了擦。
這就是幾個小時討論得下來的結果。
關雷從角落的椅子上站起來。
他負責前端開發,在游戲和網站端寫過太多交互界面,對用戶端的工作量心里有本賬。
他走到白板前拿起馬克筆在王一凡畫的架構圖下面打了個大括號,開始逐一列出需要投入的時間和資源。
最後得出一個結論。
“這個不需要花多少錢,大概一兩百萬左右。”
陳景沒想到才這麼點錢,那就直接做了。
趙圓圓這個時候說道,“那我們尋知剛好是有好友系統的,如果能互加的話,可以增加銀行卡的綁定以及流水。”
“到時候我們說不定能做一個跟支付寶一樣的東西。”
听見這話,大家心里還燃起了一股斗志。
但是陳景說的話,像是潑了一盆冷水。
“尋知可以先不上。”
“我們自己平台的用戶量雖然不小,但紅包這種東西不是功能好就有人用,它需要社交關系鏈。”
“一家人搶紅包的前提是這一家人都在同一個平台上。”
“尋知目前的用戶關系鏈偏內容社區,熟人社交這塊還沒建起來。”
“紅包系統做出來之後如果在尋知上首發,效果不會差但也不會特別好,用戶之間本來就沒什麼需要發紅包的場景。”
趙圓圓有些懵了,既然做了這個系統,但是不用,那用在哪。
其他的軟件跟游戲完全沒有使用場景啊。
“老陳,什麼意思,沒太听懂。”
王一凡也有點不理解,陳景說了這麼多,結果不上,是怎麼想的。
陳景看著三個人都是一臉懵的狀態,笑了笑,說道。
“我們不自己用,但是可以賣。”
“我打算賣給騰科(tenxun)。”