精品欧美一区二区三区在线观看 _久久久久国色av免费观看性色_国产精品久久在线观看_亚洲第一综合网站_91精品又粗又猛又爽_小泽玛利亚一区二区免费_91亚洲精品国偷拍自产在线观看 _久久精品视频在线播放_美女精品久久久_欧美日韩国产成人在线

代碼的簡單設計五原則

開發
簡單設計五原則中,測試要確保通過(滿足需求)、重復應該被消除、元素沒必要就不要存在,這幾條看起來相對具體,而且能見字如意。

作者 | 袁慎建

歡歡:“你看我的代碼用了策略模式和狀態模式,假如后面客戶會有這樣的需求,可以無縫擴展,多么健壯!” 清揚一臉狐疑,心中念叨了數遍 :“哼,過度設計!”,只見她欲言又止,好幾次話到嘴邊又被自己咽回去了。

這種關于設計的討論,袁帥最近一周不是第一次聽到了,就在昨天他還看到清揚和正義的一次口水仗。最近清揚有點仕途不順,幾次被結對的搭檔懟得無言以對。袁帥想為他的Buddy清揚“討回公道”,但不是直接出面幫清揚懟回去。

設計的標準在哪里?

周五下午,公司內部的敏捷工程實踐指導手冊上醒目的三條價值觀的「簡單性」讓袁帥陷入了沉思:

簡單性:我們重視剛剛夠用的設計。只為當下設計,不為未來可能出現的需求做設計。但是,我們做出的決策應當允許軟件快速變更,能夠快速響應需求變化。

「簡單性」,看起來也似乎明白在講什么,可什么是剛剛夠用的設計呢?這句話讓他想起來當年他在一次面向對象訓練營的課后跟某個學員說過的一句話:“設計猶如西紅柿炒雞蛋,鹽要恰到好處。” 這句話是如此的正確卻又無比空洞。

設計的好壞本身沒有一個標準的答案,這么多年,袁帥也在跟著軟件界各路神仙學習設計原則,仍然處在似懂非懂的狀態。他也深知每個人心中都有一桿秤。什么是好的設計?便成了公說公有理,婆說婆有理的問題,誰也難以說服誰。

這一次他不太想提那些空空如也的東西,為了能夠讓清揚快速掌握要點,他嘗試將范圍縮小到敏捷團隊程序員交付用戶故事卡時的編碼設計,避開架構設計。從變量、常量、方法、類、類與類之間的關系、對象的交互開始。

重溫舊文:簡單設計

周六,袁帥很早就鉆到書房,點燃背景音樂《稻香》,打開博客主頁,發現了一篇多年前寫的文章《簡單設計》,仔細通讀一遍之后,他覺得還不錯,可以作為入門,發給清揚閱讀,約下周一大一早去公司討論。

他花了近一個小時將文字潤色,也基于最近對設計的體會調整了部分內容,保留了文章的整體脈絡。

用具體的詞匯表達設計

抽象的設計問題大大提升了初學者的學習門檻,想得太多怕被說過度設計,吃飽撐著沒事找事。想少了,又怕被人認為能力不足,無腦編碼。到底怎么辦,怎么樣才能做出好的設計?SOLID、GoF的23種設計模式、STUPID、GRASP這些原則學會了就可以了嗎?No,統統忘掉這些抽象不接地氣的設計原則。

起步,盡量別為難自己。極限編程領域的大師程序員Kent Beck很早前就提出了4條相對容易理解的參考原則:

圖片

原則一:通過測試(信仰)

「通過測試」 通常會被一概地理解為通過自己在項目中的各種測試(自動化 + 手工),這么理解,也沒有什么問題,但是需要滿足兩個前提條件:

  • 測試覆蓋率達到100%
  • 所有測試都是有效的

如果你的項目中沒法滿足這兩點,當然,99%的項目是做不到的(還有1%存在傳說中)。此時你需要換一個角度去理解 通過測試。

你為什么寫測試?測試在測什么?不就是為了增強你對系統功能是否滿足了業務需求的信心嗎?所以「通過測試 」廣義理解為要滿足業務需求,不論是自動化測試還是手工測試,你需要做的是滿足業務需求,只不過我們提倡盡可能編寫足夠的自動化回歸測試。

原則二:消除重復(職責)

重復乃萬惡之源——Kent Beck 沒有說過

重復意味著低內聚、高耦合,導致的后果是難以修改(霰彈式修改),必然降低系統對變化的響應力。響應力的降低勢必會造成維護工作量的提升,我的簡單設計價值觀 一文中的 懶惰 將驅使我盡我所能消除這些重復,從而減少修改時的工作量,提升軟件的響應力。

原則三:揭示意圖(初衷)

揭示意圖,聽起來是一個不可言說的概念,怎樣表示揭示意圖了呢?對于這一條,我們很難有一個標準且完美的答案,做不到完美,但不妨礙我們努力嘗試趨近完美。

你可以在編碼過程中,不斷問自己:代碼容易理解嗎?它有沒有偏離它的初衷(業務需求)?緊接著,進一步探索這背后暴露的行為信號 -- 「解釋」:

  • 新人了解了業務需求后,能夠第一時間清晰地從代碼中找到對應的代碼嗎?
  • 你需要額外對一個新人解釋代碼的含義嗎?如果要,你要解釋到什么程度?

這幾個問題會讓你不斷反思你的代碼能夠體現業務初衷嗎?變量、方法以及類的命名等,你時刻都保持警惕的是:賦予它一個更加準確表達業務的名字,一個不要額外解釋的名字。從而讓讀者能夠在深入細節之前就能夠在較高層次上快速理解代碼的意圖。

原則四:最少元素(精髓)

既然說的是代碼,那么充斥在你的代碼庫中的任何東西都可以理解是元素。當然,我們還是焦點聚焦在與代碼相關的元素,比如,變量、常量、注釋、注解、關鍵字、包。

「最少元素」 的核心思想是:在不必要的時候,盡可能減少代碼元素來降低代碼復雜度,保持簡潔,貫徹less is more的思想,它道出了簡單設計的精髓。

原則五:前四條優先級依次降低(靈魂)

簡單設計前四條原則給設計決策提供了指導,在實際運用過程中,當面臨沖突時,我們如何取舍,Kent Beck也提出一個優先級:通過測試 > 消除重復 >= 揭示意圖 > 最少元素。

以上四條優先級依次降低,這就話有點類似敏捷宣言中的最后一句:也就是說,盡管右項有其價值,我們更重視左項的價值。

  1. 通過測試
  2. 消除重復
  3. 揭示意圖
  4. 最少元素
  5. 以上四條優先級依次降低?

優先級幫助揭開迷霧

周末過的飛快,清揚讀完了袁帥發給他的《簡單設計》,而且讀了很多遍,一腦子的疑問等著要找袁帥探討。她比往日提前了一個小時到了辦公室,只見袁帥已經在工位,一副就等她來戰的態勢。

還沒等清揚開口,袁帥遞給她四張紅色卡片,是他的手寫筆記,清揚見字跡工整,貌似她從未見過袁帥如此認真寫過字,頗感意外和感動,格外認真地閱讀起來。

圖片

“清揚,考你一個腦筋急轉彎 -- 在工作中你的領導的領導的領導的領導(4個人),當他們給你的指令有沖突時,你該聽誰的?”。“當然是聽更高級領導的指令啊!”清揚條件反射式快速回答到。

袁帥見狀會心一笑,清揚也撓撓頭貌似明白袁帥的意思。“可是,我還是......” 還沒等清揚說完,袁帥示意她靠近來看他早早準備好的代碼。

Talk is cheap

示例一:

圖片

袁帥快速出招:“這段代碼在做什么?用簡單設計框架怎么解讀?”。清揚敏捷地接招:“抽取公共方法,為了「消除重復」而違背「最少元素」。”

示例二:

圖片

“常量代替魔鬼數字,為了「揭示意圖」而違背「最少元素」。”還沒等袁帥發問,清揚搶先回答,當然也贏了袁帥的大拇指(向上的)。

一晃就08:55了,袁帥見Jeany朝他走來,搭載著一副即將要開會的眼神,便起身準備去會議室跟她商量晚上OOBootcamp最后一次課的安排。

“喂,我還有一個疑問...” “桌上還有一張藍色卡片,你看能不能解答你的疑問。” 袁帥扭著頭得意地給清揚一個微笑,就跟Jeany進入了會議室。

清揚拿起卡片開始閱讀:

圖片

清揚很是驚訝袁帥竟然如此懂她,不愧是優秀的Buddy,一大早開啟了美好的工作節奏。她讀完卡片,繼續閱讀袁帥留給她的幾個代碼示例,15分鐘過去了,她對簡單設計算是有點體會了,拿起一張綠色的卡片認真寫下了:

  1. 通過測試(信仰,不可動搖)
  2. 消除重復(職責,盡職盡責)
  3. 揭示意圖(初衷,不忘初心)
  4. 最少元素(精髓,精煉簡潔)
  5. 以上四條優先級依次降低(靈魂,賦予生命)

簡單設計遐想

跟Jeany開完會,袁帥回到工位上,看到清揚留下的卡片,深感欣慰,他清楚清揚已經入門了,日后Code Review不再會被懟得無言以對,而他幫清揚“討回公道”的小心愿很快就要實現。

此時,他坐下來喝了口水,發出了感慨 -- Kent Beck 提出的簡單設計原則更多關注的是代碼設計,簡單設計思想其實也能運用在架構設計、溝通協作上。

架構設計:

  • 我們應該最先考慮的是滿足業務的系統架構(通過測試:性能、穩定性等)。
  • 借助DDD來合理的劃分微服務(揭示意圖:明確限界上下文)。
  • 提取公共服務組件來分離關注點(消除重復:API Gateway、BFF等)。
  • 最后,我們在滿足了前三點的前提下盡可能簡化系統架構中的組件(最少元素)。

溝通協作:

  • 在與客戶正式場合的溝通中,我們始終應該明確溝通主題,確定目標(通過測試 )。
  • 通過加強結構思考力來提升表達的結構性和清晰度,從而達到言簡意賅(消除重復,揭示意圖 )。
  • 最后,我們達到了前面三點之后盡量不說多余的廢話(最少元素)。

簡單不僅如此

簡單設計五原則中,測試要確保通過(滿足需求)、重復應該被消除、元素沒必要就不要存在,這幾條看起來相對具體,而且能見字如意。但揭示意圖這樣一個每個人持有不一樣標準的概念,它代表了代碼的可理解性,可理解性的參考則要回到業務源頭,是否準確表達了業務概念。最后,優先級原則是萬萬不可忽略的,否則這個框架就失去了靈魂和生命力。

袁帥做了多年的軟件開發和培訓,他心里很清楚,那個完美的答案可能不存在。軟件開發是一種知識工作,設計又是仁者見仁智者見智,簡單設計五原則能在一定程度上幫助程序員少走彎路。

除了這些,在團隊社交活動發生探討是一個非常有效的途徑。這也是他如此重視在工作坊中引入社交活動的原因。代碼是否易讀懂,除了自我審視,還需要多幾個大腦,比如:Code Review、結對編程。

責任編輯:趙寧寧 來源: Thoughtworks洞見
相關推薦

2016-12-20 09:36:31

DevOps監控微服務

2017-01-12 10:59:56

數據保障運維

2010-02-03 09:46:30

智能交換機

2024-11-27 12:24:19

2012-08-15 14:24:35

數據庫服務器挑選

2024-03-06 08:59:31

軟件開發設計觀

2018-11-22 13:20:41

英特爾Mobileye自動駕駛

2024-09-09 09:00:12

架構設計算法

2010-05-10 15:03:50

交換負載均衡

2021-08-19 15:19:16

代碼開發模型

2011-09-07 09:21:01

設計模式

2023-02-14 17:06:31

設備移植打包刷機

2024-12-03 08:57:30

2015-08-27 09:00:41

產品用戶體驗設計設計

2020-09-18 11:25:43

智能

2011-07-19 18:13:15

高效數據庫

2012-04-17 09:20:38

表單設計移動應用

2010-10-11 11:25:26

MySQL主鍵

2025-06-03 08:05:00

設計原則開發代碼

2017-06-19 14:21:01

JavaScriptAPI設計原則
點贊
收藏

51CTO技術棧公眾號

红桃一区二区三区| 国产欧美在线播放| 青青草福利视频| 中文日产幕无线码一区二区| 国产亚洲制服色| 国产在线视频一区| 国产第100页| 欧美日中文字幕| 日韩三级在线免费观看| 精品国产一二三四区| melody高清在线观看| 经典一区二区三区| 3344国产精品免费看| 国产亚洲精品久久久久久豆腐| 99a精品视频在线观看| 色天天综合久久久久综合片| 在线观看污视频| 亚洲欧美日本在线观看| 蜜桃av一区二区三区电影| 欧美激情亚洲一区| 少妇的滋味中文字幕bd| 成人午夜网址| 欧美精品三级在线观看| 国产极品在线视频| av在线免费网址| 国产日韩欧美综合在线| 国产乱码精品一区二区三区日韩精品 | 欧美日韩一区二区三区69堂| 色网在线观看| 中文字幕日韩精品一区| 日韩wuma| 免费在线国产| 不卡的av电影| 99re在线播放| 国产伦理一区二区| 免费看精品久久片| 欧美亚洲国产视频小说| 国产一级视频在线播放| 欧美~级网站不卡| 精品国产一区二区三区久久狼黑人| 7788色淫网站小说| 国产精品白丝av嫩草影院| 3d动漫精品啪啪1区2区免费| 精品久久久久久中文字幕2017| 91超碰在线| 亚洲一区av在线| 男女裸体影院高潮| 高清免费电影在线观看| 亚洲天堂av一区| 中文字幕在线亚洲三区| 日韩在线免费电影| 国产精品萝li| 一区视频二区视频| 日韩理伦片在线| 国产精品视频一二三| 日韩欧美精品在线不卡| 国产精品一级伦理| 国产无一区二区| 天堂√在线观看一区二区| www日韩tube| 国产精品九色蝌蚪自拍| 神马欧美一区二区| 日韩精品毛片| 亚洲精品ww久久久久久p站| 最新黄色av网站| 羞羞网站在线免费观看| 亚洲一区免费观看| www..com日韩| 色尼玛亚洲综合影院| 色av综合在线| 可以看污的网站| 久久综合偷偷噜噜噜色| 精品久久久久一区| 亚洲天堂资源在线| 欧美日韩国产高清电影| 色青青草原桃花久久综合| 男人在线观看视频| 国产一区二区中文| 欧亚精品在线观看| 在线免费观看视频网站| 韩国av一区二区三区四区| 成人一区二区在线| 亚州精品国产精品乱码不99按摩| 2021国产精品久久精品| 色综合电影网| 欧美草逼视频| 色综合久久久久| www.超碰97.com| 亚洲网址在线观看| 亚洲精品一区av在线播放| 国产精品综合激情| 欧美久久一级| 日韩av大片免费看| 国产女同91疯狂高潮互磨| 成年人国产精品| 色一情一乱一伦一区二区三区| 免费大片在线观看www| 亚洲一区免费观看| 免费一级特黄录像| 综合视频一区| 在线日韩第一页| 久久婷婷综合国产| 日韩精品乱码av一区二区| 999视频在线观看| 国产主播福利在线| 亚洲综合丁香婷婷六月香| 日韩手机在线观看视频| 一区二区三区免费在线看| 亚洲天堂影视av| 日本天堂中文字幕| 蜜桃91丨九色丨蝌蚪91桃色| 国产精品对白刺激久久久| a中文在线播放| 欧美日韩中文字幕日韩欧美| 一区二区三区国产好的精华液| 日本午夜精品久久久| 不卡av电影在线观看| 无码人妻精品一区二| 成人av在线播放网站| 97超碰免费观看| 福利精品在线| 亚洲美女久久久| 精品在线视频免费观看| 极品少妇xxxx精品少妇偷拍| 欧美一级二级三级九九九| 欧美四级在线| 欧美一区二区播放| xxxxx99| 久久看片网站| 精品欧美日韩| 国产色婷婷在线| 欧美一区二区观看视频| 老司机深夜福利网站| 日韩激情一二三区| 欧美日本韩国一区二区三区| 国产高潮在线| 亚洲第一福利在线观看| 少妇久久久久久被弄高潮| 精品亚洲成a人在线观看| 欧美一区二区三区四区在线观看地址| aaa在线播放视频| 日韩欧美资源站| 日韩a级片在线观看| 激情成人午夜视频| 自拍偷拍一区二区三区| 国产精品亲子伦av一区二区三区| 亚洲欧洲高清在线| 国产精品视频一区在线观看| 972aa.com艺术欧美| 青青青免费在线| 欧洲亚洲视频| 97色在线播放视频| 欧美人体大胆444www| 色综合天天视频在线观看| 丰满少妇在线观看资源站| 免费看黄裸体一级大秀欧美| 久久久水蜜桃| 性高爱久久久久久久久| 在线视频中文亚洲| 中国老头性行为xxxx| 国产精品久久久久久久久动漫| 亚洲视频一二三四| 亚洲国产成人精品女人| 亚洲在线观看视频| a级片免费在线观看| 亚洲国产精品99| 国产精品男女视频| 国产喷白浆一区二区三区| 色播五月综合网| 在线中文字幕亚洲| 国产精品自拍首页| 九九热线视频只有这里最精品| 国产一区二区三区在线播放免费观看 | 国产精品成人免费电影| 成人不用播放器| 91麻豆精品国产自产在线观看一区| 欧美老熟妇一区二区三区| 高清成人免费视频| 久久婷婷国产精品| 999久久久91| 国产精品国产亚洲精品看不卡15 | 中文精品久久| 国产精品日韩欧美一区二区三区 | 成人国产精品免费视频| 亚洲男同gay网站| 日韩经典中文字幕| 在线观看色网站| 国产麻豆xxxvideo实拍| 嗯用力啊快一点好舒服小柔久久| 欧美一区二三区| 天堂地址在线www| 精品区一区二区| 无码日韩精品一区二区| 亚洲日本一区二区三区| 中文字幕在线永久| 蜜乳av一区二区| 国产欧美日韩网站| 999视频精品| 精品一区在线播放| 91精品亚洲一区在线观看| 91精品国产91久久久久福利| 国产区视频在线播放| 日韩欧美久久久| 中文精品久久久久人妻不卡| 亚洲一区在线电影| 操她视频在线观看| 久久久久久久久久久久久久久99| 亚洲欧美一区二区三区不卡| 免费永久网站黄欧美| 久久久99精品视频| 99免费精品| 欧美一区二区三区在线播放| 97久久超碰| 92裸体在线视频网站| 亚洲www啪成人一区二区| 久久久免费在线观看| 欧美天天影院| 国产一区二区三区18| 天天操天天操天天操| 日韩欧美专区在线| 国产又粗又猛又爽又黄视频| 91国偷自产一区二区使用方法| 国产一卡二卡在线| 一区二区免费看| 手机av在线看| 国产精品色哟哟网站| 国产精品1000部啪视频| 成人免费观看av| 精品伦一区二区三区| 国产在线精品一区二区| 亚洲欧美激情网| 久久狠狠一本精品综合网| 奇米精品一区二区三区| 国内精品美女在线观看| 欧美激情亚洲天堂| 欧美成人亚洲| 亚洲小说欧美另类激情| 香蕉av一区二区| 一本色道久久综合亚洲精品婷婷 | 亚洲女人被黑人巨大进入al| 国模人体一区二区| 精品免费国产二区三区| www.五月天激情| 日韩午夜精品视频| 成人黄色在线观看视频| 欧美大片在线观看一区二区| www.成人免费视频| 精品精品欲导航| 亚洲国产成人精品一区二区三区| 日韩一区二区视频| 丰满人妻一区二区三区四区53 | 成人av在线天堂| 欧美一区=区三区| 国产在线视频91| 欧美影院在线| 国产精品伊人日日| 中文精品一区二区| 日韩在线电影一区| 国产精品麻豆久久| 日本一本草久p| 在线播放亚洲| 日韩人妻精品无码一区二区三区| 鲁大师成人一区二区三区| 日韩有码免费视频| 美女www一区二区| 肉色超薄丝袜脚交| www.日韩大片| 91网站免费入口| 国产精品久久精品日日| 久久久久久久极品内射| 五月激情综合网| 国产精品高清无码| 日韩一区二区三区视频| 色偷偷在线观看| 国产一区av在线| 日本h片在线| 欧洲成人免费aa| 国产成人免费av一区二区午夜| 91丝袜脚交足在线播放| 精品国产一区二区三区不卡蜜臂 | 国产精品无码2021在线观看| www.国产一区| 免费h视频在线观看| 国产精品入口福利| 中文字幕一区日韩精品 | yw在线观看| 色综合天天狠天天透天天伊人| 色戒汤唯在线观看| 91精品国产综合久久香蕉| 国产伦精品一区二区三区在线播放| 欧美久久久久久| 欧美精品aa| 久久久精品麻豆| 99久久国产免费看| 182在线观看视频| 色综合久久中文综合久久97| 国产免费av观看| 亚洲欧美综合区自拍另类| 伊人222成人综合网| 日韩av成人在线观看| 1769国产精品视频| 亚洲不卡1区| 亚洲小说区图片区| 午夜免费看毛片| 久久亚洲精品小早川怜子| 免费在线观看黄视频| 欧美日韩一区在线观看| 天堂av2024| 久久69精品久久久久久久电影好| 亚洲va中文在线播放免费| 国产精品亚洲综合| 91九色精品| 粗暴91大变态调教| 91尤物视频在线观看| 国产一区二区三区在线视频观看| 日本高清视频一区二区| 手机在线成人av| 欧美高清在线一区| 国产成人无码精品久久久久| 在线成人av影院| 黑人与亚洲人色ⅹvideos| 久久久久久国产精品美女| 日韩毛片免费看| 日本a级片久久久| 国产欧美一级| 亚洲日本久久久| 亚洲自拍偷拍麻豆| av免费在线不卡| 色青青草原桃花久久综合| 亚洲精品在线影院| 欧美日本国产精品| 久久久久91| 亚洲一区二区观看| 狠狠色噜噜狠狠狠狠97| 天堂在线视频免费| 久久久久久999| 伊人久久影院| av片在线免费| 成人精品亚洲人成在线| 欧美黄色免费看| 欧美大片日本大片免费观看| 菠萝菠萝蜜在线视频免费观看| 国产精品亚洲片夜色在线| 精品国产成人| www.激情小说.com| 中文字幕av一区二区三区| 99re热视频| 日韩中文理论片| 小说区图片区亚洲| 日本成人性视频| 国产一区二区福利视频| 顶臀精品视频www| 欧美电影免费观看完整版| 超黄网站在线观看| 精品乱码一区| 久久婷婷一区| 日韩欧美视频免费观看| 91精品婷婷国产综合久久竹菊| a毛片在线观看| 国产精品9999久久久久仙踪林| 亚洲人成毛片在线播放女女| 成人性生活免费看| 一本大道久久a久久精品综合| 国产乱视频在线观看| 国产精品自拍偷拍| 中文字幕免费一区二区| 亚洲欧洲国产视频| 第一福利永久视频精品 | 亚洲福利合集| 成人一对一视频| 国产清纯白嫩初高生在线观看91 | 国产精品nxnn| 男人透女人免费视频| 一色桃子久久精品亚洲| 不卡av中文字幕| 国产69久久精品成人| 成人激情免费视频| 伊人av在线播放| 粉嫩av一区二区三区免费野| av色图一区| 97超级碰碰| 老司机一区二区三区| 国产成人av免费在线观看| 精品国产伦一区二区三区观看体验| 中文字幕在线视频网站| 中文字幕不卡每日更新1区2区| 高清久久久久久| 国产三级理论片| 久久久久久999| 四季av一区二区凹凸精品| 高清中文字幕mv的电影| 欧美私模裸体表演在线观看| 久久不射影院| 亚洲 日韩 国产第一区| 成人午夜激情视频| 一级黄色片在线| 78色国产精品| 欧美黄色精品| 91导航在线观看| 亚洲欧美成人网|