国产 无码 综合区,色欲AV无码国产永久播放,无码天堂亚洲国产AV,国产日韩欧美女同一区二区

CRM系統(tǒng)化整合從N-1做減法實踐

這篇具有很好參考價值的文章主要介紹了CRM系統(tǒng)化整合從N-1做減法實踐。希望對大家有所幫助。如果存在錯誤或未考慮完全的地方,請大家不吝賜教,您也可以點擊"舉報違法"按鈕提交疑問。

1 背景

京銷易系統(tǒng)已經(jīng)接入大網(wǎng)、KA以及云倉三個條線商機,每個條線商機規(guī)則差異比較大,當前現(xiàn)狀是獨立實現(xiàn)三套系統(tǒng)分別做支撐。

2 目標

2022年下半年CRM目標是完成9個新條線業(yè)務接入,完成銷售過程線上化,實現(xiàn)銷售規(guī)則統(tǒng)一。

3 問題

  • 前端實現(xiàn)數(shù)據(jù)存儲與邏輯代碼耦合一起,無法復用,無法擴展,組件化拆分難度大。
  • 組件拆分顆粒度較大,業(yè)務功能抽象不充分,缺乏復用性。
  • 代碼重復編寫,相似功能冗余嚴重,開發(fā)和維護效率低。
  • 代碼版本多,接口不統(tǒng)一,開發(fā)、運維成本高,難擴展。
  • 每個條線階段、條線內(nèi)每個商機階段推進規(guī)則都是通過代碼單獨實現(xiàn),開發(fā)、維護成本高,規(guī)則調(diào)整都需要代碼調(diào)整并上線,時效性低,同時階段規(guī)則維護在代碼中,無法直觀呈現(xiàn)和規(guī)則統(tǒng)一收口,運維難度大。

4 實現(xiàn)

4.1 方案調(diào)研

方案調(diào)研階段,針對業(yè)務場景,多次組會對于底層實現(xiàn)方案進行充分討論,列舉每個方案優(yōu)劣勢,選擇最適合當前業(yè)務場景的解決方案,最終選擇上圖的框架升級方案。

4.2 方案設(shè)計

4.2.1 設(shè)計思路

快速實現(xiàn)相似業(yè)務,減少相似代碼,通過前端組件化、后端服務標準化、商機階段配置化技術(shù)手段,支持各條線快速復用和靈活擴展。

4.2.2 前端組件化

1.前端現(xiàn)狀

數(shù)據(jù)存儲與邏輯代碼耦合在一起,無法復用,無法擴展,組件化拆分難度大。表現(xiàn)為mixins邏輯代碼與store數(shù)據(jù)存儲耦合在一起,既降低了代碼的可讀性,也降低了store數(shù)據(jù)讀寫的靈活性。舉個栗子,在人員信息集合中,本來可以針對name和sex兩個字段在各自的組件進行維護即可,可現(xiàn)實是兩個組件不得不調(diào)用同一個mixins進行維護。

組件拆分顆粒度較大,業(yè)務功能抽象不充分,缺乏復用性。組件的拆分沒有一個清晰的界限,沒有依據(jù)業(yè)務功能進行拆分,導致有一些組件不夠純粹,不符合單一職責原則,無法復用。在后期的維護過程中組件逐漸變得臃腫不堪。

代碼重復編寫,相似功能冗余嚴重,開發(fā)和維護效率低。由于組件無法復用,在后期維護過程中,開發(fā)人員對于類似的功能,不得不寫了很多相似的代碼,致使整個項目代碼冗余、重復,慢慢的變得不可維護。

2.解決方案

針對本次商機條線接入功能,采用現(xiàn)有技術(shù)方案很難對后續(xù)條線依次接入,一個條線一套代碼實現(xiàn),接入周期長人力成本高,按期完成目標是一項不可能完成的挑戰(zhàn)。經(jīng)過技術(shù)方案調(diào)研,決定搭建一套求同存異(同為各個條線共用部分,異為各個條線單獨部分)的前端組件化方案。依據(jù)業(yè)務功能,抽象出獨立業(yè)務組件模塊,依據(jù)條線插拔式組裝,搭建出可維護、可擴展、靈活性高的組件積木化方案,在業(yè)務擴展性比較強的前端模塊架構(gòu)中優(yōu)勢更加明顯。

組件積木化方案特點如下:

1.方案采用積木化前端組件搭建,其中任何一個組件都可以被替換(webComponent),任何一個父組件都可以擴展n個子組件。以上圖商機信息組件為例,各條線商機信息所包含的字段存在差異,每個條線所對應的商機信息組件不同,最終會根據(jù)條線選擇對應的組件加載。

2.數(shù)據(jù)統(tǒng)一管理(store),組件和數(shù)據(jù)之間為更新和依賴關(guān)系,當有組件更新數(shù)據(jù)時,其他組件也會立即更新,而不用相互傳值。以商機詳情組件為例,商機詳情中修改了商機名稱字段,則所有用到商機名稱的組件都會得到更新。這需要提前對組件和store進行數(shù)據(jù)依賴更新的建立,通過computed與store雙向依賴和監(jiān)控機制,當computed監(jiān)聽store數(shù)據(jù)變化,將變化的數(shù)據(jù)更新到組件上,組件中通過store的mutaions更新數(shù)據(jù)到store上。

商機詳情組件化抽象示意圖如下:

4.2.3 后端標準化后端現(xiàn)狀

由于前期未對條線的領(lǐng)域模型和功能模塊進行抽象,導致煙囪代碼林立;每個條線接入都要重復開發(fā)多套代碼,各端(PC、移動端)接口不統(tǒng)一,前后端聯(lián)調(diào)對接接口都需要區(qū)分多套;各條線獨立開發(fā)部署,隨著系統(tǒng)功能的豐富以及產(chǎn)品線持續(xù)增加,個性化需求和缺陷修復極大的消耗了研發(fā)資源和精力。同時,無法滿足各條線商機階段推進可定制的業(yè)務訴求,大致狀態(tài)如下圖。

2.解決方案

通過梳理商機流程與功能可以發(fā)現(xiàn),商機中各條線既有相同的功能模塊,也有各自獨有的功能,例如商機創(chuàng)建、關(guān)閉、激活等流程每個條線差異不大,但是有些相似的功能模塊各條線也存在差異,例如大宗的關(guān)閉商機與服務+中的關(guān)閉商機各自的關(guān)閉條件就不一樣;那么基于此種業(yè)務場景,首先我們需要將主流程抽象出標準服務能力;例如,商機創(chuàng)建流程,我們將其定義為權(quán)限校驗、參數(shù)校驗、額外特殊校驗、補充信息、模型轉(zhuǎn)換、保存數(shù)據(jù)、跨區(qū)校驗、后續(xù)額外處理等標準模板服務;每一個步驟方法都是抽象的,后續(xù)每個條線都將繼承它,可以重寫自己的邏輯;這樣一個創(chuàng)建商機流程就標準化了。

上述我們是根據(jù)業(yè)務特性進行的模板抽象固化,但是如何將整個架構(gòu)按照條線來走呢,這就需要我們將每個條線的流程進行抽象,例如,幾乎每個條線都有創(chuàng)建商機、關(guān)閉商機、激活商機、修改商機等相同的動作,我們需要將這些抽象成固定的接口;然后各自條線都實現(xiàn)該接口并聲明成策略,根據(jù)入?yún)⒌淖R別自動分流至不同條線策略處理;也就形成了按條線為策略錨點的模式。

所以總體上是利用策略模式 + 模板模式支持各條線快速復用和靈活擴展,整體服務抽象復用及擴展思路形成大致的核心類圖如下圖:

整個商機的后端架構(gòu)經(jīng)過單條線多套接口處理的方式調(diào)整為適配所有條線統(tǒng)一接口接入;后端整體架構(gòu)大致分5層,在核心層其實還會細分邏輯層,代理層以及Mapper 層。

首先我們在這次改造過程中統(tǒng)一了接口層,不在區(qū)分PC端接口,JME 端接口,統(tǒng)一以JSF接口形式提供出去;然后借助物流網(wǎng)關(guān)配置PC認證以及JME認證并一致以Http協(xié)議對接出去,保證了接口層面的統(tǒng)一。在適配層我們是定義了一個策略適配器,它會掃描所有聲明了注解@LineType的策略處理器并緩存,然后根據(jù)解析入?yún)⒅械臈l線進行自動匹配處理器進行分配處理,從而達到請求的自動分配處理。在核心層中其實更多的是模板方法的抽象與封裝,將商機的基本查詢、基礎(chǔ)CMD操作、以及商機相關(guān)聯(lián)信息操作進行分類抽象。將商機的推進機制建立在規(guī)則引擎中,將每個條線的推進規(guī)則提前配置在規(guī)則引擎的規(guī)則表中,并在后端服務中統(tǒng)一提供一個推進入口,所有條線都將基于該入口進行推進,達到推進規(guī)則明確,入口統(tǒng)一,階段可配置等可靈活擴展的方式。

通過整體架構(gòu)的優(yōu)化和調(diào)整后,目前已經(jīng)可以適配所有條統(tǒng)一接入、商機階段可配置,推進規(guī)則可定義、接口統(tǒng)一等優(yōu)點,大大節(jié)省了研發(fā)的接入成本。

4.2.4 商機階段配置化

1.場景現(xiàn)狀

每個銷售條線的商機流程階段及相應規(guī)則都存在差異,甚至同一個銷售條線也存在多種業(yè)務,對應的商機流程階段也不同,為支持多銷售條線的差異化商機業(yè)務;要求必須實現(xiàn)每個條線的商機階段個數(shù)是可配置的,并且每個階段的規(guī)則也是可配置。

2.方案選型

如下圖中所示,列舉了幾個條線的商機階段生命周期,幾乎每個條線的商機生命周期都不一樣,這里需要說明一下階段與階段之間的推進條件是允許不一樣的,所以會存在不同條線存在相同的階段,但其實到達該階段的前置條件是有可能不一樣的,這就要求階段的規(guī)則是可配置的,這也會造成可復用的可能性小。如果通過編碼方式去實現(xiàn)每個條線的階段生命周期會是一個非常復雜的過程,并且也難以維護。

經(jīng)過調(diào)研發(fā)現(xiàn),我們的這種場景模型就是通過多個入?yún)l件決定流程走向(通過、不通過)的一種簡單形式,相對于多入多出的模式還簡單一些,而這種模式正好現(xiàn)在已經(jīng)有比較好的解決方案(規(guī)則引擎),在現(xiàn)有的流程引擎(Flowable、Activity)都有對規(guī)則引擎的實現(xiàn),包括強大的Drools 規(guī)則引擎。對比幾款規(guī)則引擎幾乎都可以很好的滿足我們的需求,那就要考慮成本問題,畢竟引入一款中間件對系統(tǒng)的維護成本也是比較大的。經(jīng)過了解部門內(nèi)部已經(jīng)對Flowable 已經(jīng)進行二次封裝對外賦能了,所以在這邊我們采用了基于Flowable 流程引擎中的DMN來實現(xiàn),從模型上來說就是輸入多個入?yún)ⅲ缓蟾鶕?jù)規(guī)則配置進行判斷走向,沒有多分支相關(guān)聯(lián),所以選擇Flowable 的規(guī)則引擎也比較合適。

解決方案:通過規(guī)則引擎,配置商機階段和階段推進規(guī)則,解決各條線商機階段差異化問題,將變化流程用配置化方式融入到整體流程中。

3.實現(xiàn)效果

在規(guī)則引擎中,提供決策表的表達式,決策表分為輸入表達式與輸出表達式兩個主要區(qū)域。在輸入表達式中,可以定義變量,用于規(guī)則輸入項(input entries)的表達式。可以通過選擇Add Input(添加輸入),定義多個輸入表達式。在輸出表達式中,可以定義選擇表執(zhí)行結(jié)果要創(chuàng)建的變量(變量的值將用于輸出項表達式,在下面解釋)??梢酝ㄟ^選擇Add Output(添加輸出),定義多個輸出表達式。

規(guī)則配置如下圖:(以服務+條線舉例)

服務+ 權(quán)授權(quán)業(yè)務商機推進規(guī)則:jd-rule-crm_fwj_chance_authorized_business

服務+ B線上業(yè)務商機推進規(guī)則:jd-rule-crm_fwj_chance_b_online_business

優(yōu)勢:

  1. 規(guī)則統(tǒng)一收口,每個條線商機階段推進規(guī)則可以直觀呈現(xiàn),規(guī)則演化軌跡可以追蹤,避免問題排查時,通過代碼排查方式核對規(guī)則,提升運維效率。
  2. 規(guī)則調(diào)整可以實時生效,避免代碼維護和系統(tǒng)上線,提升研發(fā)效率。
  3. 一套代碼實現(xiàn)所有條線階段推進,只需要根據(jù)條線添加不同的輸入即可。

5 效果

5.1 提升效率

消滅煙囪系統(tǒng),一套系統(tǒng)完成所有條線支撐,實現(xiàn)各條線、各端接口統(tǒng)一。

開發(fā)成本低,易擴展,提升研發(fā)效率,降低運維成本;

按照領(lǐng)域?qū)ι虣C進行拆分解耦,實現(xiàn)商機領(lǐng)域獨立部署,在商機領(lǐng)域內(nèi),通過前端組件化、后端服務標準化、商機階段配置化技術(shù)手段,支持各條線快速復用和靈活擴展。接入對比結(jié)果來看,研發(fā)效率提升顯著,同時也降低運維成本。隨著標準流程不斷抽象,底層基礎(chǔ)服務不斷完善,后續(xù)條線接入的效率在進一步提升,從后續(xù)接入的云倉生態(tài)、物流科技、價值供應鏈,供應鏈金融,新業(yè)務-新業(yè)務、金融、供應商7個條線來看,平均接入工時維持在30人日左右。

條線接入工時如下:

標準流程和通用基礎(chǔ)服務,提升研測過程效率,其中:服務+條線接入測試工時從最初評估的30人日到實際的23人日,測試階段效率提升23.3%:

大宗條線接入測試評估工時及實際工時,基于服務+接入商機項目的測試經(jīng)驗,大宗商機接入項目測試階段從原計劃30人日降低到10人日,效率提升66.7%:

5.2 提升質(zhì)量

服務+較原計劃提前4工作日交付,大宗較原計劃提前11工作日交付,交付演示過程中均未出現(xiàn)任何問題,驗收全程未出現(xiàn)影響整體進度的阻塞性問題。

大宗UAT過程中共提出6個問題,其中5個為頁面調(diào)優(yōu)等優(yōu)化項,1個為環(huán)境引起的無法勾選問題,未出現(xiàn)任何bug類問題,整體驗收過程順暢無阻。

作者:京東物流 姚再毅 孔祥東 樊平安 楊攀 田雷雷

來源:京東云開發(fā)者社區(qū) 自猿其說Tech文章來源地址http://www.zghlxwxcb.cn/news/detail-599185.html

到了這里,關(guān)于CRM系統(tǒng)化整合從N-1做減法實踐的文章就介紹完了。如果您還想了解更多內(nèi)容,請在右上角搜索TOY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!

本文來自互聯(lián)網(wǎng)用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權(quán),不承擔相關(guān)法律責任。如若轉(zhuǎn)載,請注明出處: 如若內(nèi)容造成侵權(quán)/違法違規(guī)/事實不符,請點擊違法舉報進行投訴反饋,一經(jīng)查實,立即刪除!

領(lǐng)支付寶紅包贊助服務器費用

相關(guān)文章

  • 第01篇:系統(tǒng)化學習, 搞定Spring容器管理

    第01篇:系統(tǒng)化學習, 搞定Spring容器管理

    公眾號 : 西魏陶淵明 CSDN : https://springlearn.blog.csdn.net 天下代碼一大抄, 抄來抄去有提高, 看你會抄不會抄! Spring 是 java 開發(fā)者,永遠繞不開的結(jié)。 Spring 是非常值得開發(fā)者來學習的, 以目前 Spring 在 java 領(lǐng)域的統(tǒng)治性地位, 可以說學 java 就是在學 Spring 。但是作為新入門的開發(fā)人

    2023年04月15日
    瀏覽(21)
  • C語言系統(tǒng)化精講(二):C語言初探

    C語言系統(tǒng)化精講(二):C語言初探

    ① 選擇電腦系統(tǒng): 一臺計算機是由主板、CPU、內(nèi)存、磁盤、鼠標以及鍵盤等一大堆硬件組成,業(yè)界把這種只有硬件組成的計算機稱為 裸機 , 這些硬件只能理解電信號,不能理解我們用戶的語言,這時候就需要一個中間的媒介,來傳達硬件能理解的指令,這樣的平臺,我們

    2024年02月04日
    瀏覽(28)
  • 中文編程開發(fā)語言工具系統(tǒng)化教程初級1上線

    中文編程開發(fā)語言工具系統(tǒng)化教程初級1上線

    中文編程系統(tǒng)化教程初級1 學習編程捷徑:(不論是正在學習編程的大學生,還是IT人士或者是編程愛好者,在學習編程的過程中用正確的學習方法 可以達到事半功倍的效果。對于初學者,可以通過下面的方法學習編程,通過對成百上千個實例練習,則很快會成為編程 高手。

    2024年02月08日
    瀏覽(27)
  • C語言系統(tǒng)化精講(七):C語言數(shù)組詳解

    C語言系統(tǒng)化精講(七):C語言數(shù)組詳解

    2018年9月1日,中國女排在2018年亞運會上3:0戰(zhàn)勝了泰國女排,奪得了冠軍,此時,阿里巴巴董事長主席馬云見證了中國女排奪冠的輝煌一刻。同時馬云承諾,要幫中國女排姑娘們清理購物車。本示例就來模擬列出某女孩的購物車清單,具體代碼如下所示: 從代碼中可以看到,

    2024年02月05日
    瀏覽(32)
  • 開發(fā)語言工具編程系統(tǒng)化教程入門和初級專輯課程上線

    開發(fā)語言工具編程系統(tǒng)化教程入門和初級專輯課程上線

    開發(fā)語言工具編程系統(tǒng)化教程入門和初級專輯課程上線 學習編程捷徑:(不論是正在學習編程的大學生,還是IT人士或者是編程愛好者,在學習編程的過程中用正確的學習方法 可以達到事半功倍的效果。對于初學者,可以通過下面的方法學習編程,通過對成百上千個實例練習

    2024年02月08日
    瀏覽(87)
  • 【本站最全系列】(c#系統(tǒng)化學習寶典)—精華圖文提煉核心

    【本站最全系列】(c#系統(tǒng)化學習寶典)—精華圖文提煉核心

    ?????個人主頁 :@元宇宙-秩沅 ????? hallo 歡迎 點贊?? 收藏? 留言?? 加關(guān)注?! ????? 本文由 秩沅 原創(chuàng) ????? 收錄于專欄 : unity之c#專題篇 ?[【Unityc#專題篇】之c#進階篇】 ?【Unityc#專題篇】之c#核心篇】 ?【Unityc#專題篇】之c#基礎(chǔ)篇】 ?【Unity-c#專題篇】之

    2024年02月08日
    瀏覽(64)
  • 【Linux系統(tǒng)化學習】基礎(chǔ)開發(fā)工具——make和makefile

    【Linux系統(tǒng)化學習】基礎(chǔ)開發(fā)工具——make和makefile

    ========================================================================= 個人主頁點擊直達: 小白不是程序媛? Linux學習專欄: Linux系統(tǒng)化學習 ========================================================================= 目錄 前言: 初始make和makefile makefile的好處 make和makefile的區(qū)別 make和make的使用 依賴關(guān)系和依

    2024年02月05日
    瀏覽(38)
  • 不碎片化學習,盡量用整塊的時間系統(tǒng)化學習

    從高中畢業(yè)之后,我們好像就很難再繼續(xù)那種系統(tǒng)化的學習,甚至失去了自我知識構(gòu)建的能力。然而,真正的理解和掌握知識需要深入和連貫,這正是系統(tǒng)化學習的優(yōu)勢所在。 系統(tǒng)化學習的重要性 全面理解 :系統(tǒng)化學習能夠幫助我們?nèi)胬斫庵R的來龍去脈,而不僅僅是零

    2024年04月25日
    瀏覽(24)
  • 【Linux系統(tǒng)化學習】進程地址空間 | 虛擬地址和物理地址的關(guān)系

    【Linux系統(tǒng)化學習】進程地址空間 | 虛擬地址和物理地址的關(guān)系

    ========================================================================= 個人主頁點擊直達: 小白不是程序媛 Linux專欄: Linux系統(tǒng)化學習 代碼倉庫: Gitee ========================================================================= 目錄 虛擬地址和物理地址 頁表 進程地址空間 進程地址空間存在的意義 我們在學

    2024年02月05日
    瀏覽(25)
  • C語言系統(tǒng)化精講(六):C語言選擇結(jié)構(gòu)和循環(huán)結(jié)構(gòu)

    C語言系統(tǒng)化精講(六):C語言選擇結(jié)構(gòu)和循環(huán)結(jié)構(gòu)

    C語言中有三大結(jié)構(gòu),分別是順序結(jié)構(gòu)、選擇結(jié)構(gòu)和循環(huán)結(jié)構(gòu): C語言順序結(jié)構(gòu)就是讓程序按照從頭到尾的順序依次執(zhí)行每一條C語言代碼,不重復執(zhí)行任何代碼,也不跳過任何代碼 C語言選擇結(jié)構(gòu)也稱分支結(jié)構(gòu),就是讓程序 拐彎 , 有選擇性的執(zhí)行代碼;換句話說,可以跳過沒

    2024年02月04日
    瀏覽(18)

覺得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請作者喝杯咖啡吧~博客贊助

支付寶掃一掃領(lǐng)取紅包,優(yōu)惠每天領(lǐng)

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包