一個(gè)引發(fā)程序員們干架的問(wèn)題-創(chuàng)新互聯(lián)

如果第二次看到我的文章,歡迎「文末」掃碼訂閱我個(gè)人的公眾號(hào)(跨界架構(gòu)師)喲~?

在鄂托克等地區(qū),都構(gòu)建了全面的區(qū)域性戰(zhàn)略布局,加強(qiáng)發(fā)展的系統(tǒng)性、市場(chǎng)前瞻性、產(chǎn)品創(chuàng)新能力,以專注、極致的服務(wù)理念,為客戶提供成都網(wǎng)站設(shè)計(jì)、做網(wǎng)站、成都外貿(mào)網(wǎng)站建設(shè)公司 網(wǎng)站設(shè)計(jì)制作按需設(shè)計(jì),公司網(wǎng)站建設(shè),企業(yè)網(wǎng)站建設(shè),品牌網(wǎng)站建設(shè),全網(wǎng)整合營(yíng)銷推廣,成都外貿(mào)網(wǎng)站建設(shè),鄂托克網(wǎng)站建設(shè)費(fèi)用合理。

每周五早8點(diǎn) 按時(shí)送達(dá)到公眾號(hào)。當(dāng)然了,也會(huì)時(shí)不時(shí)加個(gè)餐~

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

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

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

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

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

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

看看以下的場(chǎng)景是不是平時(shí)有見(jiàn)到過(guò)?

  • 嗨,×××,我這里有個(gè)bug需要你和我一起調(diào)試下。

  • 當(dāng)初如果這個(gè)業(yè)務(wù)在這里就好了,現(xiàn)在已經(jīng)積重難返了,只能推倒重做了。

  • 我覺(jué)得這個(gè)問(wèn)題可能是這里導(dǎo)致的,也有可能是那里導(dǎo)致的。

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

  • 我能解決的就我解決咯,實(shí)在解決不了的再給對(duì)方

  • 只能我這里解決的就我這里解決,其它的全部對(duì)方來(lái)

其實(shí)這些選擇都是因人而異的,很難形成一個(gè)放之四海而皆準(zhǔn)的共識(shí)。

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

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

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

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

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

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

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

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

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

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

  • 一個(gè)新業(yè)務(wù),需要兩邊配合完成

  • 一個(gè)老業(yè)務(wù),一部分在A處理,一部分在B處理。

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

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

一個(gè)引發(fā)程序員們干架的問(wèn)題

來(lái)舉兩個(gè)例子幫助你理解。

一個(gè)電商網(wǎng)站現(xiàn)在要上線一個(gè)會(huì)員卡的功能,類似阿里的88會(huì)員這種。?

效果是買了這個(gè)會(huì)員卡的用戶,在該平臺(tái)購(gòu)買自營(yíng)商品時(shí),享受8折優(yōu)惠。

那么你來(lái)思考一下?這個(gè)業(yè)務(wù)到底是放到「會(huì)員服務(wù)」還是「促銷服務(wù)」?

參照上面的建議來(lái)思考就是回答兩個(gè)問(wèn)題:

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

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

很顯然,會(huì)員卡雖然有一個(gè)打折功能,但是這個(gè)打折是建立在一個(gè)身份標(biāo)識(shí)上的。

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

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

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

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

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

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

再來(lái)看第二個(gè)例子。

隨著社交電商模式的崛起,該電商平臺(tái)想上一個(gè)拼團(tuán)功能。

那么這個(gè)功能該放到「購(gòu)物車服務(wù)」里?還是「促銷服務(wù)」里呢?

同樣回答兩個(gè)問(wèn)題:

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

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

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

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

拼團(tuán)其實(shí)也就是一口價(jià),也不用經(jīng)過(guò)促銷的價(jià)格計(jì)算。

如此看來(lái),拼團(tuán)對(duì)促銷來(lái)說(shuō)也不是“剛需”。

這個(gè)時(shí)候?qū)⑵磮F(tuán)服務(wù)獨(dú)立出來(lái)才是更好的選擇。因?yàn)樵谶@個(gè)例子里,缺少拼團(tuán)業(yè)務(wù),對(duì)兩個(gè)服務(wù)都不會(huì)產(chǎn)生流程上的阻礙。

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

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

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

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

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

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

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

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

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

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

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

推薦閱讀:

  • 分布式系統(tǒng)關(guān)注點(diǎn)——緩存背后的“毀滅種子”

  • 8個(gè)月打磨,一份送給程序員的「分布式系統(tǒng)」合集


作者:Zachary

出處:https://www.cnblogs.com/Zachary-Fan/p/businessattribution.html

如果你喜歡這篇文章,可以點(diǎn)一下左下角的「推薦」。

這樣可以給我一點(diǎn)反饋。: )

謝謝你的舉手之勞。

?關(guān)于作者:張帆(Zachary,個(gè)人微信號(hào):Zachary-ZF)。堅(jiān)持用心打磨每一篇高質(zhì)量原創(chuàng)。歡迎掃描下方的二維碼~。

定期發(fā)表原創(chuàng)內(nèi)容:架構(gòu)設(shè)計(jì)丨分布式系統(tǒng)丨產(chǎn)品丨運(yùn)營(yíng)丨一些思考。

如果你是初級(jí)程序員,想提升但不知道如何下手。又或者做程序員多年,陷入了一些瓶頸想拓寬一下視野。歡迎關(guān)注我的公眾號(hào)「跨界架構(gòu)師」,回復(fù)「技術(shù)」,送你一份我長(zhǎng)期收集和整理的思維導(dǎo)圖。

如果你是運(yùn)營(yíng),面對(duì)不斷變化的市場(chǎng)束手無(wú)策。又或者想了解主流的運(yùn)營(yíng)策略,以豐富自己的“倉(cāng)庫(kù)”。歡迎關(guān)注我的公眾號(hào)「跨界架構(gòu)師」,回復(fù)「運(yùn)營(yíng)」,送你一份我長(zhǎng)期收集和整理的思維導(dǎo)圖。

一個(gè)引發(fā)程序員們干架的問(wèn)題

另外有需要云服務(wù)器可以了解下創(chuàng)新互聯(lián)scvps.cn,海內(nèi)外云服務(wù)器15元起步,三天無(wú)理由+7*72小時(shí)售后在線,公司持有idc許可證,提供“云服務(wù)器、裸金屬服務(wù)器、高防服務(wù)器、香港服務(wù)器、美國(guó)服務(wù)器、虛擬主機(jī)、免備案服務(wù)器”等云主機(jī)租用服務(wù)以及企業(yè)上云的綜合解決方案,具有“安全穩(wěn)定、簡(jiǎn)單易用、服務(wù)可用性高、性價(jià)比高”等特點(diǎn)與優(yōu)勢(shì),專為企業(yè)上云打造定制,能夠滿足用戶豐富、多元化的應(yīng)用場(chǎng)景需求。

本文標(biāo)題:一個(gè)引發(fā)程序員們干架的問(wèn)題-創(chuàng)新互聯(lián)
標(biāo)題鏈接:http://muchs.cn/article26/dhcojg.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供全網(wǎng)營(yíng)銷推廣、定制網(wǎng)站、商城網(wǎng)站App開發(fā)、Google、App設(shè)計(jì)

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如需處理請(qǐng)聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來(lái)源: 創(chuàng)新互聯(lián)

成都網(wǎng)站建設(shè)