日韩成人免费在线_国产成人一二_精品国产免费人成电影在线观..._日本一区二区三区久久久久久久久不

當前位置:首頁 > 科技  > 軟件

公司新來一個架構(gòu)師, 將消費金融系統(tǒng)重構(gòu)了

來源: 責編: 時間:2024-03-22 08:55:23 219觀看
導讀1、背景1.2 業(yè)務(wù)重組與合并隨著需求不斷迭代,轉(zhuǎn)轉(zhuǎn)消費分期整體出現(xiàn)了一些調(diào)整,并提出了新的產(chǎn)品方向,在此背景下,對于經(jīng)歷了久經(jīng)滄桑的歷史服務(wù),已經(jīng)逐漸不適合未來的產(chǎn)品規(guī)劃。面對新的業(yè)務(wù)整合和重組,急需新的架構(gòu)和思想

xkx28資訊網(wǎng)——每日最新資訊28at.com

1、背景

1.2 業(yè)務(wù)重組與合并

隨著需求不斷迭代,轉(zhuǎn)轉(zhuǎn)消費分期整體出現(xiàn)了一些調(diào)整,并提出了新的產(chǎn)品方向,在此背景下,對于經(jīng)歷了久經(jīng)滄桑的歷史服務(wù),已經(jīng)逐漸不適合未來的產(chǎn)品規(guī)劃。面對新的業(yè)務(wù)整合和重組,急需新的架構(gòu)和思想來承載未來的業(yè)務(wù)。xkx28資訊網(wǎng)——每日最新資訊28at.com

1.2 解決技術(shù)債務(wù)

現(xiàn)階段存在的主要問題:xkx28資訊網(wǎng)——每日最新資訊28at.com

  1. 代碼模塊之間邊界感不強,需要通過模塊拆分、服務(wù)拆分來區(qū)分業(yè)務(wù)邊界。
  2. 代碼實現(xiàn)缺少層次感,設(shè)計模式單一,一層到底的冗長代碼。
    此前,微服務(wù)拆分原則是按消費分期、合作方分期產(chǎn)品等維度進行整體拆分的,優(yōu)點是明確了項目職責,簡單的從需求維度進行服務(wù)拆分,確實是一種行之有效的方式,缺點是沒有對基礎(chǔ)功能進行剝離,以至于很多場景需要維護重復的代碼,增加了項目的維護成本。

1.3 影響開發(fā)效率

即使我們接手項目已經(jīng)有一段時間,并對項目足夠了解時,但排查問題起來依然費力費時,而且系統(tǒng)內(nèi)部代碼錯綜復雜,調(diào)用鏈路交錯,難以正常維護,從長遠的開發(fā)效率考慮,盡快提出新型方案來代替現(xiàn)有結(jié)構(gòu)。xkx28資訊網(wǎng)——每日最新資訊28at.com

1.4 監(jiān)控體系不夠完善

線上異常機制不夠敏感,缺少關(guān)鍵業(yè)務(wù)指標的告警看板,作為一個業(yè)務(wù)開發(fā),應(yīng)保持對核心指標數(shù)據(jù)的敏感性。xkx28資訊網(wǎng)——每日最新資訊28at.com

2、重構(gòu)目標

  1. 不影響業(yè)務(wù)的正常運轉(zhuǎn)和迭代;
  2. 改善現(xiàn)有代碼結(jié)構(gòu)設(shè)計,讓代碼易于擴展,提升開發(fā)效率;
  3. 采用新工程逐步替代原有接口,舊工程逐漸廢棄。

3、設(shè)計

3.1 調(diào)研

開始重構(gòu)之前,調(diào)研了互聯(lián)網(wǎng)消金通用的架構(gòu)解決方案:xkx28資訊網(wǎng)——每日最新資訊28at.com

圖片xkx28資訊網(wǎng)——每日最新資訊28at.com

通用方案xkx28資訊網(wǎng)——每日最新資訊28at.com

由于是外部調(diào)研的通用架構(gòu)設(shè)計,所以并非完全契合轉(zhuǎn)轉(zhuǎn)消費分期產(chǎn)品,但可以借鑒其分層架構(gòu)設(shè)計的思想,在代碼設(shè)計階段,可以先對核心模塊進行拆解和規(guī)劃。xkx28資訊網(wǎng)——每日最新資訊28at.com

3.2 規(guī)劃

前端頁面與后端重構(gòu)計劃分兩次迭代進行,分階段進行,可以有效分攤并降低項目上線風險,第一次迭代圍繞后端主要模塊進行剝離重新設(shè)計并上線;第二次重構(gòu)目的是解決產(chǎn)品需求,對接前端新頁面。xkx28資訊網(wǎng)——每日最新資訊28at.com

3.3 修繕者模式

作為一個一線的業(yè)務(wù)開發(fā),需要開展重構(gòu)工作的同時還得保證產(chǎn)品需求的正常迭代,修繕者模式無疑是最佳選擇。   第一次迭代歷程,對于歷史工程邊緣邏輯保留并隔離,只對核心代碼進行重構(gòu)后轉(zhuǎn)移到到新工程,新工程逐步接手老舊邏輯,并對老工程提供RPC接口,逐漸取代。此方案整體風險最低,同時能兼顧到正常的需求迭代。
第二次迭代歷程,經(jīng)歷了第一次迭代后,新系統(tǒng)運行穩(wěn)定,同時也具備接手新產(chǎn)品的能力,新工程開始與前端對接、聯(lián)調(diào),在此之后,V2版本也正式上線。xkx28資訊網(wǎng)——每日最新資訊28at.com

3.4 領(lǐng)域設(shè)計(橫向拆分)

圖片xkx28資訊網(wǎng)——每日最新資訊28at.com

模塊拆分xkx28資訊網(wǎng)——每日最新資訊28at.com

  1. 聚合業(yè)務(wù):涵蓋了消費分期主要業(yè)務(wù),根據(jù)其各自產(chǎn)品需求特點,作為上層業(yè)務(wù)代碼,對前端、收銀臺提供聚合接口。
  2. 基礎(chǔ)服務(wù):用戶信貸所產(chǎn)生的數(shù)據(jù)、或依托合作方數(shù)據(jù),圍繞金融分期服務(wù)提供的數(shù)據(jù)支持。
  3. 三方對接:基于轉(zhuǎn)轉(zhuǎn)標準API下的邏輯實現(xiàn),同時具備靈活接入合作方接口的能力。

3.5 模塊設(shè)計(縱向拆分)

基于以往項目存在的問題,再結(jié)合消費分期的特點,我們對分期購買到賬單還款結(jié)清的整個流程進行拆解:用戶主動填寫申請信息,提交授信申請并獲額,挑選商品分期下單,生成還款計劃,提供綁卡、賬單還款等功能。以上就是一個簡單的分期購物流程,基于以上流程,我們把消費分期所包含的公共模塊,如授信前獲額、用信、賬單還款,這些富有金融服務(wù)屬性的功能進行剝離。消費分期作為轉(zhuǎn)轉(zhuǎn)的產(chǎn)品原型,在聚合層中各自維護,互不影響。
設(shè)計原則:在不改變原有代碼邏輯的情況下,根據(jù)單一職責和依賴倒置原則的思想:對系統(tǒng)進行模塊拆分與合并,以明確項目職責降低耦合度;對包進行重新規(guī)劃,劃分包與包之間的邊界,進一步減少代碼間的耦合。xkx28資訊網(wǎng)——每日最新資訊28at.com

3.6 代碼設(shè)計

好的代碼重構(gòu)一定離不開設(shè)計模式,基于原有單一的策略模式,我們把合作方對接模塊與基礎(chǔ)服務(wù)模塊進行了拆解,采用雙層模板、策略、工廠模式的組合,分別對授信、用信、貸后幾個模塊單獨設(shè)計接口,維護好對合作方通用標準API接口,同時具備靈活接入的特點,舉個例子,以下為授信模塊主要代碼類圖:xkx28資訊網(wǎng)——每日最新資訊28at.com

第一層作為基礎(chǔ)服務(wù)的策略模式;
第二層作為合作方對接的策略模式。
主要類圖設(shè)計:xkx28資訊網(wǎng)——每日最新資訊28at.com

圖片xkx28資訊網(wǎng)——每日最新資訊28at.com

  在定義接口與實現(xiàn)類后,形成了對合作方對接層依賴,同時對訂單、用信、授信等核心數(shù)據(jù)進行落地,對消費分期提供數(shù)據(jù)支撐,舉個例子,以下為授信模塊主要代碼:xkx28資訊網(wǎng)——每日最新資訊28at.com

  1. 基礎(chǔ)服務(wù)接口定義
/** * 授信接口定義 **/public interface ICreditService {    /**     * appId,資方定義的一個唯一ID     */    String getAppId();    /**     * app名稱     *     * @return zz or zlj     */    String getAppName();     /**     * 獲取授信結(jié)果     *     * @return result     */    CreditResult creditResult(String logStr, Long uid);}
  1. 標準流程抽象
/** * 標準API對接實現(xiàn) * **/public abstract class AbstractCreditService implements ICreditService {     /**     * 標準API對接     *     * @return IBaseApiService     */    protected abstract IBaseApiService getApiThirdService();    @Override    public AppConfig getPartner() {        return commonConfigUtil.getAppConfig(getAppId());    }        @Override    public CreditResult creditResult(String logStr, Long uid) {        CreditResultInput input = new CreditResultInput();        input.setUid(uid);        ResponseProtocol<CreditResultOutput> output = getApiThirdService().creditResult(logStr, input);        String creditStatus = TransformUtil.approvalStatusTransform(output.getData());        return CreditResult.builder().result(creditStatus).build();    }}/** * 合作方差異化接入 */@Service@Slf4jpublic class ZZABCCreditServiceImpl extends AbstractABCCreditService {    @Resource    ZZABCThirdServiceImpl abcThirdService;    @Override    public String getAppId() {        return PartnerEnum.ABC_ZZ_API.getAppId();    }    @Override    public String getAppName() {        return AppNameEnum.ZZ.getValue();    }    @Override    protected IABCThirdService getABCThirdService() {        return abcThirdService;    }}
  1. 標準API對接
/** * 標準API對接 * * @author Rouse * @date 2022/4/24 13:57 */public interface IBaseApiService {    /**     * 標準API,獲取appId     *     * @return appId     */    String getAppId();    /**     * 獲取授信結(jié)果     */    ResponseProtocol<CreditResultOutput> creditResult(CreditResultInput input);}
  1. 內(nèi)部標準API實現(xiàn)
/** * 合作方,標準API對接實現(xiàn) * * @author Rouse * @date 2022/4/24 14:04 */@Slf4jpublic abstract class AbstractBaseApiService implements IBaseApiService {    @Override    public ResponseProtocol<CreditResultOutput> creditResult(CreditResultInput input) {        // 通用加解密        return getDataResponse(logStr, getAppConf().getUrl4CreditResult(), input, CreditResultOutput.class);    }}
  1. 差異化合作方接入
/** * ABC合作方接口封裝 **/public interface IABCThirdService extends IBaseApiService {    /**     * 標準API,獲取appId     *     * @return appId     */    String getAppId();    /**     * 獲取授信結(jié)果     */    ResponseProtocol<ABCCreditResultOutput> creditResult(ABCCreditResultInput input);}/** * 合作方抽象方法封裝 **/@Slf4jpublic abstract class AbstractABCThirdService extends AbstractBaseApiService implements IABCThirdService {    @Override    public ResponseProtocol<ABCCreditResultOutput> creditResult(ABCCreditResultInput input) {        // 加解密差異化實現(xiàn)        return getDataResponse(logStr, getAppConf().getUrl4CreditResult(), input, ABCCreditResultOutput.class);    }}/** * ABC合作方對接 * */@Service@Slf4jpublic class ZZABCThirdServiceImpl extends AbstractABCThirdService{    @Override    public String getAppId() {        return PartnerEnum.ABC_API_ZZ.getAppId();    }    @Override    public String getAppName() {        return AppNameEnum.ZZ.getValue();    }}

4、上線過程

對于老系統(tǒng)的重構(gòu),新系統(tǒng)上線過度期也至關(guān)重要,因為采用了新的表結(jié)構(gòu)進行重新設(shè)計,涉及到數(shù)據(jù)的同步,我們采用單向數(shù)據(jù)同步,逐漸棄用老系統(tǒng)數(shù)據(jù),如果灰度期間需要回滾,首先對數(shù)據(jù)進行回滾,優(yōu)先保證線上服務(wù)穩(wěn)定。
 以下是經(jīng)歷兩次重構(gòu)迭代的過程:圖片xkx28資訊網(wǎng)——每日最新資訊28at.com

5、監(jiān)控

圖片
圖片xkx28資訊網(wǎng)——每日最新資訊28at.com

  1. 項目重構(gòu)監(jiān)控先行,這次我們采用了轉(zhuǎn)轉(zhuǎn)告警機制和Prometheus線上監(jiān)控,另外搭建了一套線上看板,及時發(fā)現(xiàn)各個模塊的潛在隱患。
  2. 日志,一個完美的系統(tǒng)離不開合理的日志,日志往往是定位問題最便捷的工具。

6、總結(jié)

通過此次技術(shù)重構(gòu),我們不僅解決了過去存在的技術(shù)債務(wù)問題,還提升了服務(wù)的穩(wěn)定性和用戶體驗,也提升產(chǎn)品交付效率。xkx28資訊網(wǎng)——每日最新資訊28at.com

技術(shù)重構(gòu)并非一蹴而就,但只要我們有堅定的信念和不懈的努力,終將取得成功。引用一句名言:”不要因為懶惰而拒絕重構(gòu),不要因為無暇重構(gòu)而成為你拖延的理由 。” 是的,重構(gòu)是持續(xù)優(yōu)化代碼質(zhì)量和可維護性的過程,需要我們時刻關(guān)注并付諸行動。xkx28資訊網(wǎng)——每日最新資訊28at.com

我認為,重構(gòu)的另一種價值:一個重構(gòu)好的系統(tǒng)、往往具備通用性,可移植性。簡單說就是我們重構(gòu)后的系統(tǒng)以最小的改動且能在同行中快速復用,因為你創(chuàng)造了一個穩(wěn)定可靠的“輪子”,如果做到這點,無非你是這個行業(yè)技術(shù)解決方案的專家。xkx28資訊網(wǎng)——每日最新資訊28at.com

關(guān)于作者

羅思,金融技術(shù)部后端研發(fā)工程師。轉(zhuǎn)轉(zhuǎn)消費分期業(yè)務(wù)開發(fā)。xkx28資訊網(wǎng)——每日最新資訊28at.com

本文鏈接:http://m.www897cc.com/showinfo-26-78505-0.html公司新來一個架構(gòu)師, 將消費金融系統(tǒng)重構(gòu)了

聲明:本網(wǎng)頁內(nèi)容旨在傳播知識,若有侵權(quán)等問題請及時與本網(wǎng)聯(lián)系,我們將在第一時間刪除處理。郵件:2376512515@qq.com

上一篇: JavaScript 中七個鮮為人知的數(shù)組方法

下一篇: 癱瘓8年小哥植入馬斯克腦機接口,狂打8小時「文明6」!Neuralink首個人類植入者直播來了

標簽:
  • 熱門焦點
Top 日韩成人免费在线_国产成人一二_精品国产免费人成电影在线观..._日本一区二区三区久久久久久久久不
国产精品一区在线观看| 欧美大片一区二区三区| 亚洲综合精品| 欧美亚洲一区二区在线| 久久er精品视频| 免费久久99精品国产| 欧美日韩国产va另类| 国产精品免费看| 韩日成人av| 日韩视频精品在线| 香蕉精品999视频一区二区| 久久日韩精品| 欧美日韩亚洲免费| 国产尤物精品| 日韩一级免费观看| 欧美一区二区三区视频在线| 美女国产精品| 国产精品拍天天在线| 激情欧美一区二区| 一区二区久久久久| 久久高清一区| 欧美日韩国产一级| 国内精品久久久久久久果冻传媒| 日韩网站免费观看| 久久精品视频亚洲| 国产精品xxx在线观看www| 国语自产偷拍精品视频偷| av不卡在线| 久久九九精品| 国产精品久久久久77777| 一区免费观看| 亚洲欧美电影在线观看| 欧美成人午夜| 国产日韩欧美一区二区| 日韩亚洲国产精品| 久久久久久**毛片大全| 欧美体内谢she精2性欧美| 一区二区视频欧美| 亚洲综合精品| 欧美人成在线视频| 国语自产偷拍精品视频偷| 一区二区三区视频在线观看| 久久综合一区二区| 国产日韩欧美视频在线| 在线综合+亚洲+欧美中文字幕| 久久午夜影视| 国产精品夜夜嗨| 日韩午夜电影在线观看| 久久久视频精品| 国产精品拍天天在线| 日韩一区二区精品葵司在线| 久久久五月天| 国产三级欧美三级| 一区二区三区精品视频| 欧美激情视频一区二区三区在线播放 | 欧美午夜a级限制福利片| 亚洲第一视频| 久久精品国产免费看久久精品| 国产精品久久久久高潮| 一本到高清视频免费精品| 欧美成人四级电影| 亚洲国产精品成人一区二区| 国产精品日韩高清| 亚洲精品女av网站| 久久综合给合| 狠狠色狠狠色综合人人| 欧美一区在线看| 国产精品剧情在线亚洲| 亚洲香蕉伊综合在人在线视看| 欧美日韩蜜桃| 亚洲美女精品一区| 欧美激情a∨在线视频播放| 亚洲电影视频在线| 美女视频黄a大片欧美| 精品999网站| 久久影院午夜论| 激情另类综合| 久久久五月婷婷| 精品69视频一区二区三区| 久久精品一本| 永久91嫩草亚洲精品人人| 久久久久久久尹人综合网亚洲| 国产一区二区三区高清播放| 久久国产欧美日韩精品| 国产一区二区三区久久久| 久久精品视频va| 国产在线精品自拍| 久久久91精品国产一区二区精品| 国产视频欧美视频| 久久九九国产精品怡红院| 狠狠久久婷婷| 免费成人在线观看视频| 亚洲国产一区在线观看| 欧美黄色aa电影| 一本色道久久99精品综合| 欧美日韩国产区| 亚洲午夜在线视频| 国产精品尤物福利片在线观看| 午夜精品视频网站| 国产日韩精品视频一区二区三区| 欧美自拍偷拍| 亚洲第一色中文字幕| 欧美精品一区在线发布| 这里只有精品在线播放| 国产精品影音先锋| 久久九九热re6这里有精品| 精品成人国产| 欧美久久久久久久| 亚洲午夜视频| 国产亚洲欧美日韩美女| 蜜臀av国产精品久久久久| 亚洲精品一区二区三区99| 欧美综合二区| 激情久久久久| 欧美国产日韩二区| 99这里只有精品| 国产精品免费小视频| 久久久www成人免费无遮挡大片| 亚洲国产精选| 欧美性大战xxxxx久久久| 欧美在线观看一区二区| 亚洲二区视频| 国产精品久久久久99| 久久久五月婷婷| 99成人免费视频| 国产精品一区二区三区免费观看| 久久综合狠狠综合久久综合88| 日韩视频在线免费| 国产色视频一区| 欧美激情一区二区三级高清视频| 中文日韩欧美| 韩国av一区二区三区| 欧美日韩国产精品一区| 欧美一区二区在线播放| 亚洲三级影院| 国产午夜精品美女毛片视频| 欧美国产欧美亚洲国产日韩mv天天看完整 | 欧美韩国日本一区| 午夜精品久久久久久久99樱桃 | 国产伦精品一区二区三区照片91| 毛片一区二区| 午夜精品久久久久久久久| 亚洲国产精品va在线观看黑人| 国产精品理论片| 欧美电影美腿模特1979在线看| 亚洲欧美日韩国产精品| 亚洲品质自拍| 国产综合自拍| 欧美性猛交xxxx乱大交退制版 | 欧美中文字幕在线观看| 亚洲美女淫视频| 韩国精品在线观看| 国产精品高精视频免费| 欧美成人午夜激情在线| 欧美一区二区三区久久精品| 日韩亚洲成人av在线| 激情综合视频| 国产精品夜夜夜| 欧美日韩亚洲一区在线观看| 久久一本综合频道| 欧美伊久线香蕉线新在线| 一区二区三区免费网站| 亚洲日韩欧美视频| 狠狠狠色丁香婷婷综合久久五月| 国产精品草草| 欧美激情区在线播放| 久久久亚洲午夜电影| 午夜在线不卡| 亚洲一区二区视频| 99ri日韩精品视频| 亚洲国产专区校园欧美| 很黄很黄激情成人| 国产日韩在线视频| 国产精品免费电影| 欧美色欧美亚洲另类二区| 欧美精品久久一区| 另类天堂av| 久久久久久久久久久成人| 欧美一级播放| 午夜精品一区二区三区四区| 一区二区三区视频在线看| 亚洲美女电影在线| 亚洲人成在线影院| 亚洲国产成人porn| 永久域名在线精品| 黑丝一区二区三区| 国产专区精品视频| 国产一区av在线| 国产小视频国产精品| 国产日韩欧美精品在线| 国产欧美日韩91| 国产欧美欧洲在线观看| 国产精品欧美风情| 国产欧美日韩免费| 国产日韩欧美精品综合| 国产人成一区二区三区影院| 国产视频亚洲精品| 国产亚洲欧美日韩在线一区| 国产午夜精品在线| 国内揄拍国内精品少妇国语| 国产中文一区| 一区在线免费观看| 亚洲国产精品视频一区| 最新日韩欧美|