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

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

新聞中心

這里有您想知道的互聯(lián)網(wǎng)營(yíng)銷解決方案
過(guò)度設(shè)計(jì)是罪惡的!

這個(gè)時(shí)候,雖然還沒(méi)有成為既定的事實(shí)。多位理想主義達(dá)人,就會(huì)搬出各種規(guī)則、規(guī)范,來(lái)給你的方案下套子。

為云南等地區(qū)用戶提供了全套網(wǎng)頁(yè)設(shè)計(jì)制作服務(wù),及云南網(wǎng)站建設(shè)行業(yè)解決方案。主營(yíng)業(yè)務(wù)為成都網(wǎng)站設(shè)計(jì)、網(wǎng)站制作、云南網(wǎng)站設(shè)計(jì),以傳統(tǒng)方式定制建設(shè)網(wǎng)站,并提供域名空間備案等一條龍服務(wù),秉承以專業(yè)、用心的態(tài)度為用戶提供真誠(chéng)的服務(wù)。我們深信只要達(dá)到每一位用戶的要求,就會(huì)得到認(rèn)可,從而選擇與我們長(zhǎng)期合作。這樣,我們也可以走得更遠(yuǎn)!

他們是為了你的方案更好么?大多數(shù)情況未必。有的人,多說(shuō)幾句是為了凸顯自己的價(jià)值;有的人是剛看了幾本書(shū),感覺(jué)不吐不快;還有的人,本身就是完美主義者,看不得你的方案有任何瑕疵??偨Y(jié)下來(lái),完美主義者還是有點(diǎn)作用的。

但當(dāng)你把開(kāi)發(fā)任務(wù)扔給這些指揮和挑刺的人,你會(huì)發(fā)現(xiàn)他們大多數(shù)不僅僅實(shí)現(xiàn)不了自己給套上的套子,連最基本的功能實(shí)現(xiàn)都是問(wèn)題。

每當(dāng)這時(shí)候,我內(nèi)心都會(huì)大喊:讓這些假洋鬼子去死吧!

組件替換問(wèn)題

如果我們的技術(shù)棧,選用的是MySQL,我們會(huì)采用JDBC、MyBatis、JPA等一系列的基礎(chǔ)的編碼工具。但這種選擇,對(duì)追求接口和實(shí)現(xiàn)分離的同學(xué)來(lái)說(shuō),卻是不可忍受的。

這些人會(huì)搬出無(wú)數(shù)的理由,來(lái)說(shuō)明,如果不加入一個(gè)中間層的話,代碼是無(wú)法復(fù)用的。他們追求的是,如果你將來(lái)把數(shù)據(jù)庫(kù)從MySQL切換到ElasticSearch,那么你幾乎不需要改動(dòng)任何代碼。

“你有沒(méi)有想過(guò)?如果你ES也不用了,把數(shù)據(jù)存儲(chǔ)在Hbase中呢?”

這也是操蛋的DDD所追求和說(shuō)明的,把一個(gè)簡(jiǎn)單的數(shù)據(jù)庫(kù)操作給拆的七零八落。

如果把這種設(shè)計(jì)哲學(xué)推廣開(kāi)來(lái)的話,你會(huì)發(fā)現(xiàn)幾乎每個(gè)地方都有問(wèn)題。

項(xiàng)目中使用了Kafka,如果將來(lái)?yè)Q成Pulsar呢?項(xiàng)目中使用了Http,如果將來(lái)要換成Socket呢?最讓人擔(dān)心的是,項(xiàng)目中使用了Java語(yǔ)言,如果后面使用Golang呢?是不是也要發(fā)明一個(gè)第三方語(yǔ)言來(lái)規(guī)避語(yǔ)言的差異?

值得注意的是,Spring家族在這些完美的目標(biāo)上,產(chǎn)出了不少優(yōu)秀的組件,比如Spring Data、Spring Cloud Stream等。

但這不代表你可以過(guò)度設(shè)計(jì)。因?yàn)橛脕?lái)屏蔽實(shí)現(xiàn)的這部分實(shí)現(xiàn),本身就是風(fēng)險(xiǎn)的存在。

耦合有錯(cuò)么?

只要需求落在代碼上,就一定會(huì)產(chǎn)生耦合,想要去除所有的耦合,那是根本不可能的。

在開(kāi)發(fā)中,你為什么不想著為開(kāi)發(fā)語(yǔ)言的耦合創(chuàng)造一個(gè)第三方語(yǔ)言呢?這個(gè)成本是大的,而且是非常沒(méi)有必要的,如果真的有這種需求,你可以把它放在重構(gòu)上。

同樣的話,我也可以送給糾結(jié)底層數(shù)據(jù)庫(kù)存儲(chǔ)的同學(xué)。一旦你做了某個(gè)決定,想要完整的抽象就變的非常的奢侈,它不會(huì)比更換開(kāi)發(fā)語(yǔ)言有更少的工作量。

這是一種思維慣式,也是一個(gè)度的問(wèn)題。

在評(píng)審會(huì)議上噴一下非常的爽,但沒(méi)有人會(huì)多想一想背后的工期、需求和必要性。

但如果放任耦合無(wú)限制的產(chǎn)生,顯然也不是我們想要的,這個(gè)度的度量需要一定的學(xué)問(wèn)。

內(nèi)部技術(shù)和外部協(xié)作

我覺(jué)得沖突產(chǎn)生的根本原因,是評(píng)審者甚至開(kāi)發(fā)者,沒(méi)有弄清項(xiàng)目的邊界是什么。

拿SpringCloud來(lái)說(shuō),只要定義好Feign接口的協(xié)作方式和規(guī)范,把文檔寫(xiě)好命名做好,另外一個(gè)團(tuán)隊(duì)并不是很關(guān)心你后面到底是Java寫(xiě)的,還是掛了個(gè)sidecar的Golong程序。

再拿消息隊(duì)列來(lái)說(shuō),全公司定下了Kafa作為數(shù)據(jù)交換的通道,雖然它沒(méi)有JMS這樣的協(xié)議兼容,你也不會(huì)蛋疼的去封裝一層去兼容。大家默認(rèn)Kafka的Topic/Partition機(jī)制,并基于這樣的特性調(diào)整代碼。

至于我的后端數(shù)據(jù)庫(kù),是用MyBatis去處理,還是用JPA去處理。是MVC三層模型,還是直接把SQL寫(xiě)在Controller里。只要這些是我的私有數(shù)據(jù),外部團(tuán)隊(duì)永遠(yuǎn)不會(huì)用到的話,任何人都沒(méi)必要對(duì)其指手畫(huà)腳。

只要邊界問(wèn)題處理好,就不會(huì)產(chǎn)生大的亂子。

End

一刀切,在公司技術(shù)部門(mén)懶政的環(huán)境中,普遍存在。

在制定規(guī)范和標(biāo)準(zhǔn)的時(shí)候,大家都習(xí)慣兼容并包,照顧所有的業(yè)務(wù)線,做上一份。但在實(shí)踐中,這種標(biāo)準(zhǔn)的問(wèn)題通常問(wèn)題多多,為業(yè)務(wù)方造成許多的困擾。

人要因材施教,規(guī)范也應(yīng)該區(qū)分環(huán)境。制定規(guī)范的人活兒多一些,執(zhí)行的人,生活就快樂(lè)一些!


網(wǎng)站標(biāo)題:過(guò)度設(shè)計(jì)是罪惡的!
文章鏈接:http://www.5511xx.com/article/djegjoj.html