輕鬆應對增加玩法的72變

簡介: 閒魚增加有千面,看他72般變架構

做者:閒魚技術——劍辛
最近兩年用戶增加在互聯網行業受到愈來愈多的關注,各大互聯網公司都會成立專業團隊作用戶增加,閒魚也不例外。咱們常提到的用戶增加概念,其實包含兩層含義。第一層是用戶數量,用戶數量的增加有效的手段包括定位潛在客戶、擴展優質渠道、提高漏斗轉化效率等;第二層是用戶質量,這個層面咱們更關心用戶的價值和留存。而爲了用戶數量和質量,產品上須要足夠多的玩法覆蓋全部用戶,對於同一類用戶,產品也會但願多個玩法賽馬,因此增加玩法的特色就是豐富多樣又靈活多變。ide

watermark,size_16,text_QDUxQ1RP5Y2a5a6i,color_FFFFFF,t_100,g_se,x_10,y_10,shadow_90,type_ZmFuZ3poZW5naGVpdGk=

通常狀況下技術同窗最不肯意遇到這種業務需求,由於若是case by case的開發,會致使項目週期長,沒法快速應對玩法變化而加班。所以須要將各種玩法總結抽象業務模型,沉澱通用基礎能力,下降玩法開發成本,閒魚用戶增加在最近半年進行了一些摸索實踐,接下來將從總體和具體玩法來闡述如何針對增加玩法作抽象和沉澱。阿里雲

閒魚用戶任務體系

首先從總體來看,增加玩法繁多且多變,但也有必定規律,包括如下特徵:3d

  • who:投放給指定人羣
  • how:玩法有限定條件和完成的時效性
  • where:依賴業務事件做爲觸發計算進度
  • what:用戶完成有必定權益獎勵
  • extend:擴展能力,玩法可能會有周期,在子節點須要通知用戶

經過對玩法的概括,我將增加玩法定義爲用戶任務,經過定義任務的生命週期,將增加玩法中共通的邏輯沉澱爲系統能力,具體玩法在任務生命週期節點開發定製邏輯,這套體系就是閒魚用戶任務體系。中間件

watermark,size_16,text_QDUxQ1RP5Y2a5a6i,color_FFFFFF,t_100,g_se,x_10,y_10,shadow_90,type_ZmFuZ3poZW5naGVpdGk=

從圖中能夠看到系統中有兩類角色:blog

  • 發佈者:即任務系統管理員,負責定義和管理任務
  • 參與者:即閒魚用戶,用戶經過渠道收到任務,完成任務並獲取獎勵

而任務的生命週期分爲如下幾個節點:生命週期

  • 任務管理
  • 任務管理即管理任務元數據配置,包含任務完成條件和完成權益獎勵。任務管理還會維護用戶級別任務實例,記錄任務實例進度、狀態等信息。
  • 任務投放
  • 任務投放解決的是投放給指定人羣的問題,目前系統支持按照必定規則圈人投放,而且在圈人後將任務詳情通知目標用戶,引導用戶查看和完成任務。
  • 任務追蹤
  • 任務追蹤負責監聽用戶行爲事件,觸發任務進度計算,更新維護任務進度和狀態。任務追蹤模塊自己會監聽業務系統的通用事件,好比發佈商品、瀏覽詳情和購買支付等全域通用事件,也支持業務個性化定製事件。任務追蹤負責隱藏不一樣事件的差別。
  • 任務結算
  • 任務結算統一監控任務實例的進度和狀態變動通知,基於任務實例實時信息判斷任務是否達到完成條件,並將任務完成信息同步給任務獎勵節點,以此將任務追蹤與任務獎勵節點解耦。
  • 任務獎勵
  • 任務獎勵負責不一樣類型權益,支持權益剩餘庫存檢查和業務自定義檢查規則。在知足發放條件後將權益發放給用戶,完成一次任務流程。

閒魚用戶任務體系與業務無關,是從增加玩法總體概括抽象,定義任務生命週期,沉澱玩法通用能力的任務系統。事件

閒魚逛賺玩法

上一節介紹的是基於增加玩法總體抽象的任務體系,這一節主要介紹具體增加玩法如何經過任務體系擴展支持。以閒魚逛賺玩法來講,逛賺玩法爲週期類任務,週期爲7天,用戶在週期內天天可經過瀏覽10個商品完成當天任務,任務完成後領取現金紅包獎勵。在指定的第2天、第5天、第7天有特殊獎勵,吸引用戶連續參與活動,提高活躍和留存。開發

watermark,size_16,text_QDUxQ1RP5Y2a5a6i,color_FFFFFF,t_100,g_se,x_10,y_10,shadow_90,type_ZmFuZ3poZW5naGVpdGk=

watermark,size_16,text_QDUxQ1RP5Y2a5a6i,color_FFFFFF,t_100,g_se,x_10,y_10,shadow_90,type_ZmFuZ3poZW5naGVpdGk=

分層架構

在閒魚用戶任務體系上擴展支持逛賺玩法,任務體系將逛賺玩法拆分的比較清晰,逛賺玩法強調週期和特殊節點獎勵。分層架構以下:同步

watermark,size_16,text_QDUxQ1RP5Y2a5a6i,color_FFFFFF,t_100,g_se,x_10,y_10,shadow_90,type_ZmFuZ3poZW5naGVpdGk=

PS:基礎產品層爲閒魚業務系統,底層依賴層爲阿里內部封裝中間件服務,在阿里雲或開源基本都有對應產品。

經過具體逛賺玩法需求,我在任務體系之下抽象了三塊領域服務:週期域、權益域和排期域。

  • 週期域:週期域負責管理任務週期,須要支持靈活配置週期和特殊節點,支持必定動態化能力。這塊在技術選型上最終選擇用MVEL表達式引擎,經過表達式配置和計算特殊節點的權益獎勵
  • 權益域:權益域負責對接各類類型權益,計算剩餘庫存,保證不會超發和資損
  • 排期域:排期域對玩法時長、排期進行管理

領域服務內部基於策略模式實現,好比周期域分爲滾動週期和滑動週期,計數模式分爲固定、連續和累計,都是週期模式的一種實現;權益域內部細分爲積分權益、紅包權益等。

邏輯實現

基於分層架構的邏輯實現以下:

watermark,size_16,text_QDUxQ1RP5Y2a5a6i,color_FFFFFF,t_100,g_se,x_10,y_10,shadow_90,type_ZmFuZ3poZW5naGVpdGk=

玩法服務是經過模板模式封裝的任務生命週期,對修改關閉,對擴展放開的方式定義了以下節點:

  • 開始任務
  • 加入任務
  • 處理任務
  • 完成任務
  • 關閉任務
  • 查詢任務進度

每一個節點會有任務級別的通用實現,並預留擴展點,逛賺玩法經過實現擴展點的方式定製功能,主流程經過任務體系串聯,實現了業務定製和開發效率在必定程度上的兼顧。

總結展望

閒魚用戶增加團隊在最近半年發力增長大量玩法覆蓋閒魚用戶羣體,業務和技術上都在探索如何快速支持玩法快速開發配置上線,提升研發效率,支持業務快速試錯和實驗,閒魚用戶玩法體系爲技術側對於業務玩法的抽象總結和增加方法論沉澱的一部分,歡迎感興趣的同窗加入咱們一塊兒建設閒魚用戶增加技術體系。

相關文章
相關標籤/搜索