国产xxxx99真实实拍_久久不雅视频_高清韩国a级特黄毛片_嗯老师别我我受不了了小说

資訊專欄INFORMATION COLUMN

面試官:系統需求多變時如何設計?

zoomdong / 1683人閱讀

摘要:面試官我想問個問題哈,項目里比較常見的問題面試官我現在有個系統會根據請求的入參,做出不同動作。但是,這塊不同的動作很有可能是會發生需求變動的,這塊系統你會怎么樣設計面試官實際的例子現在有多個第三方渠道,系統需要對各種渠道進行訂單歸因。

面試官:我想問個問題哈,項目里比較常見的問題

面試官我現在有個系統會根據請求的入參,做出不同動作。但是,這塊不同的動作很有可能是會發生需求變動的,這塊系統你會怎么樣設計?

面試官實際的例子:現在有多個第三方渠道,系統需要對各種渠道進行訂單歸因。但是歸因的邏輯很有可能會發生變化,不同的渠道歸因的邏輯也不太一樣,此時系統里的邏輯相對比較復雜。

面試官如果讓你優化,你會怎么設計?

候選者:我理解你的意思了

候選者:歸根到底,就是處理的邏輯相對復雜,if else的判斷太多了

候選者:雖然新的需求來了,都可以添加if else進行解決

候選者:但你想要的就是,系統的可擴展性和可維護性更強

候選者:想要我這邊出一個方案,來解決類似的問題

候選者:對吧?

面試官:嗯...

候選者:在這之前,一般上網搜如何解決 if else ,大多數都說是 策略模式

候選者:但是舉的例子又沒感同身受,很多時候看完就過去了

候選者:實際上,在項目里邊,用策略模式還是蠻多的,可能無意間就已經用上了(畢竟面向接口編程嘛)

候選者:而我認為,策略模式不是解決if else的關鍵

候選者:這個問題,我的項目里的做法是:責任鏈模式

候選者:把每個流程多帶帶抽取成一個Process(可以理解為一個模塊或節點),然后請求都會塞進Context中

候選者:比如,之前維護過一個項目,也是類似于不同的渠道走不同的邏輯

候選者:我們這邊的做法是:抽取相關的邏輯到Process中,為不同的渠道分配不同的責任鏈

候選者:比如渠道A的責任鏈是:WhiteListProcess->DataAssembleProcess->ChannelAProcess->SendProcess

候選者:而渠道B的責任鏈是:WhiteListProcess->DataAssembleProcess->ChannelBProcess->SendProcess

候選者:在責任鏈基礎之上,又可以在代碼里內嵌「腳本」

候選者:比如在SendProcess上,內置發送消息的腳本(腳本可以選擇不同的運營商進行發送消息)。有了「腳本」以后,那就可以做到對邏輯的改動不需要重啟就可以生效。

候選者:有人把這一套東西叫做「規則引擎」。比如,規則引擎中比較出名的實現框架「Drools」就可以做到類似的事

候選者:把易改動的邏輯寫在「腳本」上(至少我們認為,腳本和我們的應用真實邏輯是分離)

候選者:(腳本我這里指的是規則集,它可以是Drools的dsl,也可以是Groovy,也可以是aviator等等)

面試官:嗯...

候選者:在我之前的公司,使用的是Groovy腳本。大致的實現邏輯就是:有專門后臺對腳本進行管理,然后會把腳本寫到「分布式配置中心」(實時刷新),客戶端監聽「分布式配置中心」所存儲的腳本是否有改動

候選者:如果存在改動,則通過Groovy類加載器重新編譯并加載腳本,最后放到Spring容器對外使用

候選者:我目前所負責的系統就是這樣處理 多變 以及需求變更頻繁的業務(責任鏈+規則引擎)

候選者:不過據我了解,我們的玩法業務又在「責任鏈」多做了些事情

候選者:「責任鏈」不再從代碼里編寫,而是下沉到平臺去做「服務編排」,就是由程序員去「服務編排后臺」上配置信息(配置責任鏈的每一個節點)

候選者:在業務系統里使用「服務編排」的客戶端,請求時只要傳入「服務編排」的ID,就可以按「服務編排」的流程執行代碼

候選者:這樣做的好處就是:業務鏈是在后臺配置的,不用在系統業務上維護鏈,靈活性更高(寫好的責任鏈節點可以隨意組合)

面試官:那我懂了

【對線面試官-移動端】系列 一周兩篇持續更新中!

【對線面試官-電腦端】系列 一周兩篇持續更新中!

原創不易??!求三連?。?/strong>

更多的文章可往:文章的目錄導航

文章版權歸作者所有,未經允許請勿轉載,若此文章存在違規行為,您可以聯系管理員刪除。

轉載請注明本文地址:http://specialneedsforspecialkids.com/yun/124539.html

相關文章

  • 三年前端,面試思考(頭條螞蟻美團offer)

    摘要:面試過程一共面試了四家美團新零售貝殼裝修螞蟻網商銀行頭條商業化面試結果美團螞蟻頭條貝殼因氣場不合沒有發。有些公司還是會考一些算法,比如美團頭條。也祝你找到心儀的工作小魚兒建了前端面試交流群,加群的同學可以同學的微信,備注面試進群即可 小魚兒本人985本科,軟件工程專業,前端。工作三年半,第一家創業公司,半年。第二家前端技術不錯的公司,兩年半。第三家,個人創業半年??梢钥闯?,我是個很喜歡...

    EddieChan 評論0 收藏0
  • 三年前端,面試思考(頭條螞蟻美團offer)

    摘要:面試過程一共面試了四家美團新零售貝殼裝修螞蟻網商銀行頭條商業化面試結果美團螞蟻頭條貝殼因氣場不合沒有發。有些公司還是會考一些算法,比如美團頭條。也祝你找到心儀的工作小魚兒建了前端面試交流群,加群的同學可以同學的微信,備注面試進群即可 小魚兒本人985本科,軟件工程專業,前端。工作三年半,第一家創業公司,半年。第二家前端技術不錯的公司,兩年半。第三家,個人創業半年??梢钥闯?,我是個很喜歡...

    shaonbean 評論0 收藏0
  • 掌握面試——彈出框的實現(一道題中包含布局/js設計模式)

    摘要:面試會進入下一個環節。如果在頁面中有多個按鈕,那么這個彈出窗要如何實現同上,根據之前的建議在回答問題之前要問清楚問題中模棱兩可的地方。是否觸發不同按鈕彈出的窗口現實的內容不同。 這道面試題,當初我面試的時候被問過兩次,因此比較深,此外,我記得還有設計模式的考察,所以,有深刻的體會。 面試題主要考察什么 面試不是個輕松的活,不管是對面試官還是面試者都一樣。對于面試官來說,別的先不管,首先...

    defcon 評論0 收藏0
  • 一個 16年畢業生所經歷的 PHP 面試

    摘要:正確做法是給加索引,還有聯合索引,并不能避免全表掃描。 前言:有收獲的話請加顆小星星,沒有收獲的話可以 反對 沒有幫助 舉報三連 有心的同學應該會看到我這個noteBook下面的其它知識,希望對你們有些許幫助。 本文地址 時間點:2017-11 一個16年畢業生所經歷的php面試 一、什么是面試 二、面試準備 1. 問:什么時候開始準備? 2. 問:怎么準備? 三、面試...

    dabai 評論0 收藏0

發表評論

0條評論

zoomdong

|高級講師

TA的文章

閱讀更多
最新活動
閱讀需要支付1元查看
<