日韩无码专区无码一级三级片|91人人爱网站中日韩无码电影|厨房大战丰满熟妇|AV高清无码在线免费观看|另类AV日韩少妇熟女|中文日本大黄一级黄色片|色情在线视频免费|亚洲成人特黄a片|黄片wwwav色图欧美|欧亚乱色一区二区三区

RELATEED CONSULTING
相關(guān)咨詢
選擇下列產(chǎn)品馬上在線溝通
服務(wù)時間:8:30-17:00
你可能遇到了下面的問題
關(guān)閉右側(cè)工具欄

新聞中心

這里有您想知道的互聯(lián)網(wǎng)營銷解決方案
思維|一個引發(fā)程序員們干架的問題

 在一個分布式系統(tǒng)的開發(fā)團隊中,有一些問題是很容易產(chǎn)生程序員之間矛盾的。

創(chuàng)新互聯(lián)從2013年創(chuàng)立,是專業(yè)互聯(lián)網(wǎng)技術(shù)服務(wù)公司,擁有項目網(wǎng)站設(shè)計、成都網(wǎng)站制作網(wǎng)站策劃,項目實施與項目整合能力。我們以讓每一個夢想脫穎而出為使命,1280元錦州做網(wǎng)站,已為上家服務(wù),為錦州各地企業(yè)和個人服務(wù),聯(lián)系電話:13518219792

其中之一就是「業(yè)務(wù)歸屬」,就是當新加/修改一個業(yè)務(wù)的時候,代碼變更應(yīng)該放到你負責的系統(tǒng)還是我負責的系統(tǒng)里?

一些業(yè)務(wù)輪廓很清晰的就不用說了,大家的認定都是一樣的。比如商品相關(guān)的放到商品服務(wù),會員相關(guān)的放到會員服務(wù)。

但是對于輪廓模糊的業(yè)務(wù),大家作出的決定就不一定相同了。

這個時候起決定性作用的并不是各自的工作經(jīng)驗,而是你的「業(yè)務(wù)思維」是否具有全局性,以及對全局業(yè)務(wù)的了解程度如何。

一旦草率的作出了“不合適”的歸屬劃定,后續(xù)將會帶來大量的額外成本,協(xié)作、更高的bug率等等。

看看以下的場景是不是平時有見到過?

  • 嗨,小明,我這里有個bug需要你和我一起調(diào)試下。
  • 當初如果這個業(yè)務(wù)在這里就好了,現(xiàn)在已經(jīng)積重難返了,只能推倒重做了。
  • 我覺得這個問題可能是這里導致的,也有可能是那里導致的。

所以,一個業(yè)務(wù)歸屬于哪個項目,看似是一個很簡單的選擇題。但是每個人心中的默認選擇是不同的,比如以下兩種截然不同的傾向。

  • 我能解決的就我解決咯,實在解決不了的再給對方
  • 只能我這里解決的就我這里解決,其它的全部對方來

其實這些選擇都是因人而異的,很難形成一個放之四海而皆準的共識。

如果雙方都選擇第二點,產(chǎn)生沖突、爭執(zhí)是必然的。

哪怕大家都選擇“為他人著想“的第一點,只是避免了相互扯皮,但還是無法避免后續(xù)業(yè)務(wù)邊界混亂付出的額外成本。

所以,我們還是需要從中提煉出本質(zhì)的東西作為決策的準則。

Z哥我認為思考業(yè)務(wù)歸屬的時候,本質(zhì)上還是逃不開「高內(nèi)聚低耦合」范圍,一個合理的項目歸屬認定,會讓軟件系統(tǒng)離每個人所期望的「高內(nèi)聚低耦合」更近一步。

因為「業(yè)務(wù)歸屬」和「高內(nèi)聚低耦合」一樣,都在“劃線”,明確邊界。

但是我們很多時候其實并不知道“線”應(yīng)該具體畫在什么位置,只是知道一個大概方位而已。

其實,如果當我們的系統(tǒng)只是一個單體應(yīng)用的話,是不存在「業(yè)務(wù)歸屬」問題的。

因此它是在分工協(xié)作下所產(chǎn)生的一個副作用。

但是,只要我們繼續(xù)保持分工協(xié)作來開發(fā)一個分布式系統(tǒng),這個問題就是繞不開的一道坎。

在工作中,由于邊界不清容易產(chǎn)生業(yè)務(wù)歸屬分歧的場景主要是以下兩點。

  • 一個新業(yè)務(wù),需要兩邊配合完成
  • 一個老業(yè)務(wù),一部分在A處理,一部分在B處理。

這里先停頓一分鐘,想一想,如果是你的話,該如何來作出選擇?

Z哥我給你的建議是,你可以這樣來考慮:哪邊缺了這個業(yè)務(wù)的話,會導致至少一個流程走不通。

來舉兩個例子幫助你理解。

一個電商網(wǎng)站現(xiàn)在要上線一個會員卡的功能,類似阿里的88會員這種。 效果是買了這個會員卡的用戶,在該平臺購買自營商品時,享受8折優(yōu)惠。那么你來思考一下?這個業(yè)務(wù)到底是放到「會員服務(wù)」還是「促銷服務(wù)」?

參照上面的建議來思考就是回答兩個問題:

  • 會員服務(wù)缺少了這個會員卡業(yè)務(wù),是否有至少一個流程走不通?
  • 促銷服務(wù)缺少了這個會員卡業(yè)務(wù),是否有至少一個流程走不通?

很顯然,會員卡雖然有一個打折功能,但是這個打折是建立在一個身份標識上的。

那么就要思考一下,這個身份標識后續(xù)是否會在整個購物鏈路中的多個環(huán)節(jié)有露出展示或者對應(yīng)的專屬業(yè)務(wù),比如專屬客服、每月領(lǐng)福利等等。

另外你會發(fā)現(xiàn),如果促銷想實現(xiàn)打8折的效果,可以完全不需要有會員卡的存在也能做到。

所以,這個會員卡本質(zhì)更像是會員屬性的一個擴展,是跟著某個具體的會員走的。

假如最終不小心被歸屬到了促銷服務(wù),則每次圍繞會員卡展開的業(yè)務(wù)都需要與促銷服務(wù)產(chǎn)生耦合才能完成,很明顯就背離了「高內(nèi)聚低耦合」的初衷。

所以,對促銷服務(wù)來說,會員卡業(yè)務(wù)并不是必不可少的。相對來說,會員服務(wù)與它的關(guān)系更緊密。

至此,第一個例子的答案就出來了,應(yīng)該放到會員服務(wù)。

再來看第二個例子。

隨著社交電商模式的崛起,該電商平臺想上一個拼團功能。那么這個功能該放到「購物車服務(wù)」里?還是「促銷服務(wù)」里呢?

同樣回答兩個問題:

  • 購物車服務(wù)缺少了這個拼團業(yè)務(wù),是否有至少一個流程走不通?
  • 促銷服務(wù)缺少了這個拼團業(yè)務(wù),是否有至少一個流程走不通?

首先,大家最容易想到的是,拼團一般都是直接下單,不經(jīng)過購物車,自然不用放到購物車服務(wù),放到促銷服務(wù)才是合適的。

這個理解完全合理。但是我們可以再想一下,拼團就必須要放到促銷服務(wù)里嗎?

拼團其實也就是一口價,也不用經(jīng)過促銷的價格計算。

如此看來,拼團對促銷來說也不是“剛需”。

這個時候?qū)⑵磮F服務(wù)獨立出來才是更好的選擇。因為在這個例子里,缺少拼團業(yè)務(wù),對兩個服務(wù)都不會產(chǎn)生流程上的阻礙。

反而獨立出來后,后續(xù)對拼團業(yè)務(wù)的調(diào)整,會更容易進行。不用對購物車服務(wù)、促銷服務(wù)產(chǎn)生任何影響。

至此,我相信你對如何判斷一個業(yè)務(wù)的項目歸屬已經(jīng)有感覺了。如果你想貫徹「高內(nèi)聚低耦合」作為系統(tǒng)的設(shè)計方針,不妨學習一下「領(lǐng)域驅(qū)動設(shè)計」。

這是由Eric Evans提出的概念,將建模作為、劃分系統(tǒng)邊界等等作為最高優(yōu)先級的開發(fā)模式。

我相信,隨著未來的業(yè)務(wù)越來越復雜,基于業(yè)務(wù)作為出發(fā)點考慮的軟件設(shè)計理念會越來越凸顯價值。

因為技術(shù)只是實現(xiàn)業(yè)務(wù)的介質(zhì)之一,況且新技術(shù)的產(chǎn)生速度正在越來越快。

那么,與其用最好新技術(shù),不如替業(yè)務(wù)選擇最適合的技術(shù)。

好了,我們總結(jié)一下。

這次Z哥先幫你分析了一下產(chǎn)生「業(yè)務(wù)歸屬」分歧背后的原因。

然后,再分享了一個正確思考這個問題的建議,還舉了兩個例子。

以后再遇到拿捏不準業(yè)務(wù)該歸屬到哪個項目的話。只要記住一句話:哪邊缺了這個業(yè)務(wù),會有至少一個流程走不通。如果都能通,那么這個新業(yè)務(wù)就適合“獨立門戶”。

在程序員們的日常工作中,容易發(fā)生分歧的問題還有很多,不過,其實大部分問題都有一個通解——全局的業(yè)務(wù)思維。


文章題目:思維|一個引發(fā)程序員們干架的問題
分享URL:http://www.5511xx.com/article/dhggegj.html