最美情侣中文字幕电影,在线麻豆精品传媒,在线网站高清黄,久久黄色视频

歡迎光臨散文網(wǎng) 會(huì)員登陸 & 注冊(cè)

代碼的簡(jiǎn)單設(shè)計(jì)五原則(大師程序員Kent Beck)

2023-03-03 16:58 作者:數(shù)字化技術(shù)專家  | 我要投稿

代碼設(shè)計(jì)的標(biāo)準(zhǔn)在哪里? 簡(jiǎn)單性:我們重視剛剛夠用的設(shè)計(jì)。只為當(dāng)下設(shè)計(jì),不為未來(lái)可能出現(xiàn)的需求做設(shè)計(jì)。但是,我們做出的決策應(yīng)當(dāng)允許軟件快速變更,能夠快速響應(yīng)需求變化。 設(shè)計(jì)的好壞本身沒(méi)有一個(gè)標(biāo)準(zhǔn)的答案,什么是好的設(shè)計(jì)?便成了公說(shuō)公有理,婆說(shuō)婆有理的問(wèn)題,誰(shuí)也難以說(shuō)服誰(shuí)。 抽象的設(shè)計(jì)問(wèn)題大大提升了初學(xué)者的學(xué)習(xí)門檻,想得太多怕被說(shuō)過(guò)度設(shè)計(jì),吃飽撐著沒(méi)事找事。想少了,又怕被人認(rèn)為能力不足,無(wú)腦編碼。到底怎么辦,怎么樣才能做出好的設(shè)計(jì)? 極限編程領(lǐng)域的大師程序員Kent Beck很早前就提出了4條相對(duì)容易理解的參考原則: 原則一:通過(guò)測(cè)試(信仰) 「通過(guò)測(cè)試」 通常會(huì)被一概地理解為通過(guò)自己在項(xiàng)目中的各種測(cè)試(自動(dòng)化 + 手工),這么理解,也沒(méi)有什么問(wèn)題,但是需要滿足兩個(gè)前提條件: 測(cè)試覆蓋率達(dá)到100% 所有測(cè)試都是有效的 如果你的項(xiàng)目中沒(méi)法滿足這兩點(diǎn),當(dāng)然,99%的項(xiàng)目是做不到的(還有1%存在傳說(shuō)中)。此時(shí)你需要換一個(gè)角度去理解 通過(guò)測(cè)試。 你為什么寫(xiě)測(cè)試?測(cè)試在測(cè)什么?不就是為了增強(qiáng)你對(duì)系統(tǒng)功能是否滿足了業(yè)務(wù)需求的信心嗎?所以「通過(guò)測(cè)試 」廣義理解為要滿足業(yè)務(wù)需求,不論是自動(dòng)化測(cè)試還是手工測(cè)試,你需要做的是滿足業(yè)務(wù)需求,只不過(guò)我們提倡盡可能編寫(xiě)足夠的自動(dòng)化回歸測(cè)試。 原則二:消除重復(fù)(職責(zé)) “重復(fù)乃萬(wàn)惡之源——Kent Beck 沒(méi)有說(shuō)過(guò)” 重復(fù)意味著低內(nèi)聚、高耦合,導(dǎo)致的后果是難以修改(霰彈式修改),必然降低系統(tǒng)對(duì)變化的響應(yīng)力。響應(yīng)力的降低勢(shì)必會(huì)造成維護(hù)工作量的提升,我的簡(jiǎn)單設(shè)計(jì)價(jià)值觀 一文中的 懶惰 將驅(qū)使我盡我所能消除這些重復(fù),從而減少修改時(shí)的工作量,提升軟件的響應(yīng)力。 原則三:揭示意圖(初衷) 揭示意圖,聽(tīng)起來(lái)是一個(gè)不可言說(shuō)的概念,怎樣表示揭示意圖了呢?對(duì)于這一條,我們很難有一個(gè)標(biāo)準(zhǔn)且完美的答案,做不到完美,但不妨礙我們努力嘗試趨近完美。 你可以在編碼過(guò)程中,不斷問(wèn)自己:代碼容易理解嗎?它有沒(méi)有偏離它的初衷(業(yè)務(wù)需求)?緊接著,進(jìn)一步探索這背后暴露的行為信號(hào) -- 「解釋」: 新人了解了業(yè)務(wù)需求后,能夠第一時(shí)間清晰地從代碼中找到對(duì)應(yīng)的代碼嗎? 你需要額外對(duì)一個(gè)新人解釋代碼的含義嗎?如果要,你要解釋到什么程度? 這幾個(gè)問(wèn)題會(huì)讓你不斷反思你的代碼能夠體現(xiàn)業(yè)務(wù)初衷嗎?變量、方法以及類的命名等,你時(shí)刻都保持警惕的是:賦予它一個(gè)更加準(zhǔn)確表達(dá)業(yè)務(wù)的名字,一個(gè)不要額外解釋的名字。從而讓讀者能夠在深入細(xì)節(jié)之前就能夠在較高層次上快速理解代碼的意圖。 原則四:最少元素(精髓) 既然說(shuō)的是代碼,那么充斥在你的代碼庫(kù)中的任何東西都可以理解是元素。當(dāng)然,我們還是焦點(diǎn)聚焦在與代碼相關(guān)的元素,比如,變量、常量、注釋、注解、關(guān)鍵字、包。 「最少元素」 的核心思想是:在不必要的時(shí)候,盡可能減少代碼元素來(lái)降低代碼復(fù)雜度,保持簡(jiǎn)潔,貫徹less is more的思想,它道出了簡(jiǎn)單設(shè)計(jì)的精髓。 原則五:前四條優(yōu)先級(jí)依次降低(靈魂) 簡(jiǎn)單設(shè)計(jì)前四條原則給設(shè)計(jì)決策提供了指導(dǎo),在實(shí)際運(yùn)用過(guò)程中,當(dāng)面臨沖突時(shí),我們?nèi)绾稳∩?,Kent Beck也提出一個(gè)優(yōu)先級(jí):通過(guò)測(cè)試 > 消除重復(fù) >= 揭示意圖 > 最少元素。 以上四條優(yōu)先級(jí)依次降低,這就話有點(diǎn)類似敏捷宣言中的最后一句:也就是說(shuō),盡管右項(xiàng)有其價(jià)值,我們更重視左項(xiàng)的價(jià)值。 通過(guò)測(cè)試 消除重復(fù) 揭示意圖 最少元素 以上四條優(yōu)先級(jí)依次降低 簡(jiǎn)單設(shè)計(jì)五原則中,測(cè)試要確保通過(guò)(滿足需求)、重復(fù)應(yīng)該被消除、元素沒(méi)必要就不要存在,這幾條看起來(lái)相對(duì)具體,而且能見(jiàn)字如意。但揭示意圖這樣一個(gè)每個(gè)人持有不一樣標(biāo)準(zhǔn)的概念,它代表了代碼的可理解性,可理解性的參考則要回到業(yè)務(wù)源頭,是否準(zhǔn)確表達(dá)了業(yè)務(wù)概念。最后,優(yōu)先級(jí)原則是萬(wàn)萬(wàn)不可忽略的,否則這個(gè)框架就失去了靈魂和生命力。 代碼是否易讀懂,除了自我審視,還需要多幾個(gè)大腦,比如:Code Review、結(jié)對(duì)編程。

代碼的簡(jiǎn)單設(shè)計(jì)五原則(大師程序員Kent Beck)的評(píng)論 (共 條)

分享到微博請(qǐng)遵守國(guó)家法律
霍城县| 米脂县| 巴林左旗| 新津县| 麻江县| 祥云县| 晴隆县| 峨眉山市| 若羌县| 隆德县| 周至县| 巴南区| 石棉县| 荥阳市| 五常市| 灵台县| 浏阳市| 昔阳县| 陇川县| 五家渠市| 山东省| 玉田县| 保靖县| 清水河县| 大竹县| 辽源市| 石棉县| 定日县| 建德市| 勐海县| 交城县| 鲁山县| 鲁甸县| 塔河县| 沙洋县| 紫阳县| 无极县| 虹口区| 周口市| 红原县| 大渡口区|