精品欧美一区二区三区在线观看 _久久久久国色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技術棧公眾號

91视频福利网| 午夜精品亚洲一区二区三区嫩草| 久久久91视频| 欧美理伦片在线播放| 色综合久久久久网| 最新欧美日韩亚洲| 五月婷婷开心中文字幕| 美女视频黄免费的久久| 久久久亚洲欧洲日产国码aⅴ| 国产夫妻性爱视频| 四虎影视成人精品国库在线观看 | 男人的天堂成人在线| 中文字幕自拍vr一区二区三区| 欧美高清精品一区二区| 亚洲男人av| 亚洲精品福利视频网站| 欧美日韩在线播放一区二区| 国产同性人妖ts口直男| 销魂美女一区二区三区视频在线| 深夜福利国产精品| 亚洲色图14p| 高清久久精品| 在线观看一区不卡| 欧美日韩黄色一级片| 麻豆av在线免费看| 久久午夜免费电影| 成人激情直播| 欧美在线视频精品| 国产亚洲精品v| 欧美激情亚洲自拍| 在线观看美女av| 国产精品美女久久久久久不卡| 日韩欧美一级特黄在线播放| 香蕉视频禁止18| 中文字幕资源网在线观看免费 | 国产伦精品一区二区三区视频我| 亚洲综合婷婷| 综合av色偷偷网| 麻豆av免费观看| 国内精品麻豆美女在线播放视频| 欧美一区二区视频在线观看2022 | 亚洲天堂成人在线| 色综合久久五月| 国产一区二区| 884aa四虎影成人精品一区| 黄色av免费在线播放| 俄罗斯一级**毛片在线播放| 亚洲人成网站精品片在线观看| 亚洲精品视频一二三| 好男人免费精品视频| 99久久99久久精品免费观看| 国产精品免费一区二区| 亚洲成人一级片| 国产福利不卡视频| 国产欧美精品日韩精品| 中文字幕一区二区三区人妻四季| 欧美综合国产| 国产成人啪精品视频免费网| 一本一道无码中文字幕精品热| 亚洲一区二区三区高清| 91大神在线播放精品| 亚洲精品男人天堂| 午夜在线播放视频欧美| 日本一欧美一欧美一亚洲视频| 久久艹免费视频| 亚洲欧美日韩国产综合精品二区| 日本精品久久中文字幕佐佐木| 国产免费av一区| 免费观看在线综合色| 国产专区欧美专区| 国产后入清纯学生妹| 福利一区二区在线观看| 国产精品一区二区在线观看| 亚洲 另类 春色 国产| 久久蜜桃av一区精品变态类天堂| 日韩影视精品| 免费不卡视频| 午夜精品一区二区三区电影天堂| 欧美深夜福利视频| 亚洲人免费短视频| 欧美另类变人与禽xxxxx| 日本一区二区三区在线免费观看| 一区二区三区四区视频免费观看| 亚洲黄色www网站| 亚洲 小说 欧美 激情 另类| 日韩在线精品| 欧美激情在线播放| 五月婷婷视频在线| 精品系列免费在线观看| 国产精品久久久久av福利动漫| 无码h黄肉3d动漫在线观看| 国产性天天综合网| 干日本少妇视频| 两个人看的在线视频www| 欧美视频一二三区| 亚洲午夜精品在线观看| 中文字幕伦av一区二区邻居| 久久精品免费播放| 九九热在线视频播放| 日韩avvvv在线播放| 亚洲伊人久久大香线蕉av| 日中文字幕在线| 亚洲欧美在线另类| 国产美女三级视频| 日韩在线观看中文字幕| 亚洲午夜精品久久久久久性色 | 日韩欧美在线免费| 亚洲18在线看污www麻豆| 大奶在线精品| 波霸ol色综合久久| 久久久久久不卡| 国产成人av影院| 亚洲精品乱码视频| 亚洲欧美韩国| 精品久久国产字幕高潮| 青青操在线播放| 国产欧美日韩一级| 5g国产欧美日韩视频| www.亚洲免费| 精品magnet| 成人一区二区三区仙踪林| 第一会所亚洲原创| 日本精品一区二区三区在线| 亚洲av永久无码国产精品久久| 中文一区一区三区高中清不卡| 成人黄色av片| 一区二区在线视频观看| 久久这里有精品| 亚洲天堂网在线观看视频| 91在线视频观看| 美女黄色免费看| 亚洲一区二区小说| 正在播放欧美视频| 无码人妻av一区二区三区波多野 | 国产精品xxxx| 老司机精品视频在线观看6| 在线亚洲一区观看| 人妻精品久久久久中文字幕| 影音先锋中文字幕一区| 97人人干人人| 99在线播放| 日韩午夜在线影院| 精品国产乱码久久久久久鸭王1| 久久99国产精品免费网站| 日本视频一区二区不卡| 中文字幕高清在线播放| 日韩精品在线播放| 日产精品久久久| 99在线精品一区二区三区| 成人在线免费观看视频网站| 视频一区中文字幕精品| 欧美不卡视频一区发布| 999免费视频| 亚洲精品老司机| 欧美色图校园春色| 午夜久久福利| 翡翠波斯猫1977年美国| 都市激情久久综合| 日韩电影第一页| 五月天激情四射| 国产欧美一区二区精品忘忧草| 欧美精品成人网| 日韩精品欧美| 91丝袜美腿美女视频网站| www在线免费观看视频| 欧美一二三在线| 久久久综合久久久| 99在线热播精品免费| 99久久久无码国产精品6| 欧美精品一二| 成人欧美一区二区三区在线| 美女91在线| 日韩av在线不卡| 波多野结衣视频免费观看| 国产精品不卡视频| 亚洲成人福利视频| 国产日韩免费| 亚洲a∨一区二区三区| 超碰国产精品一区二页| 久久久久久国产精品久久| 婷婷开心激情网| 在线观看不卡一区| 九九热最新地址| 99视频在线精品| www.99av.com| 欧美成人日韩| 久久免费视频1| 日韩第二十一页| 久久久久久久久久久免费精品 | 精品国产一区av| 日本高清视频在线| 欧美自拍偷拍一区| 久久久久99精品成人片毛片| 91在线一区二区三区| 日韩在线不卡一区| 一本色道久久综合亚洲精品不卡| 日本一区网站| 成人直播在线观看| 国产精品视频久| 欧美办公室脚交xxxx| 日韩亚洲国产中文字幕| 三级网站免费观看| 欧美猛男超大videosgay| 日韩精品一区二区三| 国产精品―色哟哟| 国产又粗又猛又色| 激情图片小说一区| 蜜臀久久99精品久久久酒店新书| 女人天堂亚洲aⅴ在线观看| 蜜桃久久影院| 成人在线视频你懂的| 成人免费视频网址| 大胆人体一区| 久久久久国产一区二区三区| 欧美成人三区| 国产亚洲欧洲在线| 无码国产精品高潮久久99| 在线不卡中文字幕| 欧美人一级淫片a免费播放| 亚洲一区二区三区中文字幕在线| 萌白酱视频在线| 国产亲近乱来精品视频| 中国一级特黄录像播放| 国产一区不卡视频| 亚洲77777| 日精品一区二区| 国产成人在线免费看| 激情久久一区| www.国产亚洲| 亚欧美无遮挡hd高清在线视频| 日韩欧美一区二区在线观看| 亚洲另类av| 激情视频一区二区| 东京久久高清| 国产不卡一区二区在线观看 | 日本aⅴ精品一区二区三区| 六月丁香婷婷激情| 日韩午夜免费| 欧美视频免费看欧美视频| 欧美伊人影院| 国产又粗又爽又黄的视频| 水蜜桃精品av一区二区| 亚洲精品电影在线一区| 欧美一级本道电影免费专区| 欧美日韩最好看的视频| 久操精品在线| 欧美中文娱乐网| 精品中文字幕一区二区三区av| 精品免费视频123区| 欧美人体视频| 另类欧美小说| 国产日韩欧美一区二区三区| 青娱乐国产91| 操欧美老女人| 亚洲不卡一卡2卡三卡4卡5卡精品| 美女呻吟一区| 鲁丝片一区二区三区| 亚洲动漫在线观看| 欧美裸体网站| 日韩欧美电影| 免费国产成人看片在线| 国产精品videosex极品| 分分操这里只有精品| 99在线精品免费视频九九视| 女人天堂av手机在线| 性感少妇一区| 三上悠亚在线一区二区| 韩国欧美国产一区| 佐佐木明希电影| 99国产精品久久久久久久久久久 | 欧美激情视频一区二区| 国产第一页在线视频| 91av免费观看91av精品在线| 欧美成人app| 91麻豆国产语对白在线观看| 一区二区中文字幕在线观看| 久久精品人人做人人爽电影| 国产欧美久久一区二区三区| 中文字幕欧美日韩一区二区三区| 欧美视频网站| 免费日韩中文字幕| 国产在线播放一区二区三区| 男女一区二区三区| 国产日韩精品一区二区浪潮av| 成人在线观看小视频| 精品久久久久久久久久久久| 在线观看国产精品视频| 精品国产第一区二区三区观看体验| 亚洲欧美日本在线观看| 日韩中文字幕网址| 成人观看网址| 91精品久久久久久久久久入口| 丁香综合av| 一区二区三区电影| 国产欧美二区| 天天色天天干天天色| 久久香蕉国产线看观看99| 538任你躁在线精品视频网站| 欧美日韩国产在线播放| 91亚洲国产成人精品一区| 亚洲精品电影网| 黄色免费网站在线| 日韩免费视频在线观看| 午夜精品在线| 五月天婷亚洲天综合网鲁鲁鲁| 亚洲午夜精品久久久久久app| www.xxx亚洲| 丰满少妇久久久久久久| 国产又粗又长免费视频| 午夜久久久久久| 99视频在线观看免费| 国产亚洲视频在线| 一个人www视频在线免费观看| 亚洲一区二区日本| 欧美日韩国产一区二区三区不卡| 日韩 欧美 视频| 国产在线视频一区二区| 国产在线综合视频| 欧美日韩国产一区中文午夜| 亚洲成a人片在线| 久久亚洲精品一区二区| 性欧美gay| 久久精品国产精品青草色艺 | 国产成人手机高清在线观看网站| 日韩小视频网站| 国产麻豆精品一区二区| 色噜噜噜噜噜噜| 色婷婷精品大在线视频| 午夜av免费在线观看| 欧美高清第一页| 久久久久久久久成人| 一级特黄录像免费播放全99| 可以免费看不卡的av网站| 欲求不满的岳中文字幕| 亚洲风情在线资源站| 亚洲精品97久久中文字幕| 久久综合久久八八| 亚洲一区av| 中文字幕欧美日韩一区二区| 久久99久久精品| 国产3级在线观看| 欧美日韩三级一区| a黄色在线观看| 国产精品久久久久久久美男| 精品国产91久久久久久浪潮蜜月| 国产午夜福利视频在线观看| 97国产一区二区| 韩国av中文字幕| 亚洲欧美三级在线| 欧美××××黑人××性爽 | 中文字幕在线视频播放| 亚洲国产中文字幕| 国产综合在线播放| 午夜伦理精品一区| 日本亚洲不卡| 欧洲av无码放荡人妇网站| 国产亚洲欧美日韩俺去了| 久久久久久无码午夜精品直播| 亚洲色图日韩av| www.一区| 好色先生视频污| 成人性视频免费网站| 日韩精品视频播放| 亚洲欧美色图片| 国产精品久久久久77777丨| 亚洲午夜激情| 国产乱码精品一品二品| 久久亚洲AV无码| 亚洲老司机av| 国产亚洲精彩久久| 天堂а√在线中文在线| 99riav一区二区三区| 中文字幕精品无码一区二区| 中文一区二区视频| 精品国产18久久久久久二百| 日韩a∨精品日韩在线观看| 久久久久久久久久久久久女国产乱| 中文字幕乱码中文字幕| 成人444kkkk在线观看| 日本一区福利在线| 一区二区xxx| 亚洲国产精品欧美一二99| 九色在线免费| 成人午夜高潮视频| 亚洲激情午夜| 亚洲一级黄色录像| 精品少妇一区二区| 久久精品女人天堂av免费观看 | heyzo高清中文字幕在线| 日本一区精品| 国产91综合网| 色屁屁影院www国产高清麻豆| 中文字幕欧美日韩精品| 澳门久久精品| 最新国产黄色网址| 色综合天天综合色综合av| 韩国av网站在线| 欧美一级爽aaaaa大片| 国产高清亚洲一区| 无码人妻精品一区二区|