成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

軟件開發(fā)的簡(jiǎn)單設(shè)計(jì)觀

開發(fā)
在面臨復(fù)雜多變的業(yè)務(wù)需求,如何設(shè)計(jì)一個(gè)恰好簡(jiǎn)單夠用的系統(tǒng)?如何保持系統(tǒng)的高響應(yīng)力?程序員們一直都沒有停止對(duì)最佳實(shí)踐的探索,始終為這些目標(biāo)奮斗。

作者 |  袁慎建

保持簡(jiǎn)單

簡(jiǎn)單是一個(gè)成年人司空見慣的詞,然而,大部分成年人卻覺得純真的孩子才是簡(jiǎn)單的。

很多時(shí)候,人們習(xí)慣把“簡(jiǎn)單”跟“容易”理解成一個(gè)意思。簡(jiǎn)單和復(fù)雜多用于形容事物或人的屬性或狀態(tài),容易和困難一般形容達(dá)到某種目標(biāo)的過程。生活中經(jīng)常聽到這樣的感慨:「人活簡(jiǎn)單點(diǎn)真難??!」、「系統(tǒng)一不小心就搞復(fù)雜了」。這些感慨背后流露出一種心愿 -- 保持簡(jiǎn)單。

對(duì)于人來說,保持簡(jiǎn)單可能意味著人情世故的簡(jiǎn)單、工作關(guān)系的簡(jiǎn)單、心態(tài)的簡(jiǎn)單。對(duì)于軟件系統(tǒng)來說,則意味著系統(tǒng)設(shè)計(jì)的簡(jiǎn)單、部署運(yùn)維的簡(jiǎn)單等等。

三重境

看山是山,看水是水;看山不是山,看水不是水;看山是山,看水是水。

保持簡(jiǎn)單的確不是一件容易的事情。禪宗提出的人生三境界中也詮釋了這個(gè)理:人從簡(jiǎn)單開始,以復(fù)雜貫穿了大部分甚至整個(gè)人生,最后返璞歸真。

對(duì)應(yīng)到一個(gè)需求簡(jiǎn)單的軟件系統(tǒng)中,系統(tǒng)的設(shè)計(jì)一開始處于簡(jiǎn)單的狀態(tài)。然而軟件開發(fā)的核心問題是復(fù)雜多變的業(yè)務(wù)需求,隨著時(shí)間的推移,軟件系統(tǒng)可能呈現(xiàn)出以下三個(gè)狀態(tài):

正常情況下,沒有人希望系統(tǒng)處于第三個(gè)狀態(tài),而是希望從第二個(gè)狀態(tài)回到第一個(gè)狀態(tài)。映射到禪宗的人生三境界,系統(tǒng)的理想三境界是:

  • 清晰 -- 單一化
  • 復(fù)雜 -- 層級(jí)化
  • 清晰 -- 模塊化

在面臨復(fù)雜多變的業(yè)務(wù)需求,如何設(shè)計(jì)一個(gè)恰好簡(jiǎn)單夠用的系統(tǒng)?如何保持系統(tǒng)的高響應(yīng)力?程序員們一直都沒有停止對(duì)最佳實(shí)踐的探索,始終為這些目標(biāo)奮斗。軟件開發(fā)的所有問題最終都能歸結(jié)到人身上,那么驅(qū)動(dòng)程序員不斷改進(jìn)的力量是什么?

我心中有一個(gè)答案:對(duì)簡(jiǎn)單設(shè)計(jì)、高響應(yīng)力價(jià)值的認(rèn)可,對(duì)簡(jiǎn)單設(shè)計(jì)價(jià)值觀的深層內(nèi)化。

核心觀

價(jià)值觀往往給人一種感覺:看著這些高大上的詞匯,缺點(diǎn)什么,卻總又說不上來。比如極限編程(XP)的價(jià)值觀:溝通、簡(jiǎn)單、反饋、勇氣、尊重。再比如 Scrum 的價(jià)值觀:專注、開放、承諾、勇氣、尊重。尤其是剛開始接觸這些知識(shí)體系的新人,每個(gè)詞都能看懂,只是不知道如何用它們?nèi)ブ笇?dǎo) XP 和 Scrum。

在 Thoughtworks 工作這么多年,我親自實(shí)踐過 XP 和 Scrum,也在很多場(chǎng)合傳授過它們,再回過頭來看,我深刻體會(huì)到一點(diǎn)——XP 和 Scrum 的那些實(shí)踐跟它們的價(jià)值觀都非常吻合。我能夠在日常開發(fā)以及培訓(xùn)和練習(xí)中去落地簡(jiǎn)單設(shè)計(jì),這背后驅(qū)使我不斷探索的是已內(nèi)化于心的觀念:

專注

在 Scrum 中,專注強(qiáng)調(diào)的是所有人都專注于 Sprint 目標(biāo),團(tuán)隊(duì)同為一個(gè)目標(biāo)努力。對(duì)于簡(jiǎn)單設(shè)計(jì),要專注在哪里呢?我結(jié)合自身經(jīng)歷的幾個(gè)典型的場(chǎng)景來看:

  • 一上來匆匆忙忙編寫業(yè)務(wù)代碼,沒有Tasking,沒有測(cè)試,沒有設(shè)計(jì),業(yè)務(wù)Scope逐步偏離或擴(kuò)大
  • 在編碼階段,聽到聲音:“你這個(gè)設(shè)計(jì)太土氣了,都沒用設(shè)計(jì)模式”,于是琢磨著怎么去套設(shè)計(jì)模式
  • 在系統(tǒng)架構(gòu)設(shè)計(jì)階段,有人說:“什么年代了,你還不拆出幾個(gè)微服務(wù)”,于是嘗試拍腦袋拆出一個(gè)分布式單體

上述三個(gè)場(chǎng)景,究其根本,是沒能很好地專注于自己要實(shí)現(xiàn)的真實(shí)業(yè)務(wù)價(jià)值,要么缺乏思考和設(shè)計(jì),要么受外界影響,舍本琢末。你可能會(huì)質(zhì)問:不應(yīng)該多做點(diǎn)設(shè)計(jì)來兼容后期可能出現(xiàn)的情況嗎?為未來做設(shè)計(jì),難免會(huì)摻入不合時(shí)宜的猜測(cè),不僅增加系統(tǒng)當(dāng)前的復(fù)雜度,還可能浪費(fèi)成本。

我覺得要始終保持對(duì)當(dāng)下真實(shí)業(yè)務(wù)價(jià)值的專注,專注理解業(yè)務(wù)本質(zhì),專注于剛好夠用的設(shè)計(jì),時(shí)刻讓系統(tǒng)保持簡(jiǎn)單,盡可能跟業(yè)務(wù)模型保持匹配和同步。

克制

克制力是一項(xiàng)非常重要且需要長(zhǎng)期培養(yǎng)的能力。由于受到太多外界的干擾而難以定靜,程序員經(jīng)常會(huì)因?yàn)槌两谧约旱氖澜缋?,可能出現(xiàn)樂觀估算,還可能經(jīng)常過度設(shè)計(jì)。

而實(shí)際上,大部分樂觀的估算會(huì)讓團(tuán)隊(duì)交付面臨更多風(fēng)險(xiǎn),大部分健壯性設(shè)計(jì)會(huì)讓系統(tǒng)難以理解和修改。我想起來自己曾經(jīng)面試過的一個(gè)候選人,一個(gè)很簡(jiǎn)單的業(yè)務(wù)需求,硬生生地套用了5種設(shè)計(jì)模式,嘆為觀止。

在日常交付項(xiàng)目和工作坊中,我會(huì)較為留意開發(fā)人員嘴里發(fā)出的 “我覺得”、“假如”、“萬一”、“以后”等用語,這些用語背后所隱藏的溢念(溢出的想法),很可能促使該開發(fā)人員交付一個(gè)不滿足需求的軟件,或者一個(gè)難以維護(hù)的系統(tǒng)。

我覺得程序員克制自己一個(gè)有效的方式是培養(yǎng)業(yè)務(wù)視角,站在用戶使用系統(tǒng)的視角嘗試深刻理解業(yè)務(wù),通過將業(yè)務(wù)需求進(jìn)一步拆解成小顆粒度的任務(wù)來讓自己保持聚焦。Think Big(深刻理解業(yè)務(wù)問題并拆分),Start Small(每次只聚焦在某一個(gè)小的任務(wù)),Move Fast(快速完成一個(gè)個(gè)小的任務(wù)并獲得反饋)。

潔癖

我經(jīng)常在 Code Review 中被同事開玩笑說有代碼潔癖,比如對(duì)命名太較真了。一開始我會(huì)有所妥協(xié),畢竟軟件開發(fā)是一個(gè)團(tuán)隊(duì)來完成的,如果因?yàn)槟硞€(gè)人的潔癖而讓其他人不舒適,可能不利于團(tuán)隊(duì)協(xié)作??墒菚r(shí)間后來告訴我,那些身披“不認(rèn)真”或者“不嚴(yán)格”標(biāo)簽的小魔頭會(huì)在后面出來制造各種噪音,比如命名看不懂、結(jié)構(gòu)不一致、架構(gòu)混亂臃腫等等。

做程序員這幾年,潔癖潛移默化影響著我的編碼和設(shè)計(jì)風(fēng)格,小到變量命名、代碼注釋、文檔管理,大到系統(tǒng)架構(gòu),我都會(huì)時(shí)刻保持警惕,盡其所能去消除噪音污染。在沒有其他不可抗拒的因素前提下,我都會(huì)盡力嘗試讓團(tuán)隊(duì)接納自己對(duì)代碼潔癖的追求。

潔癖更側(cè)重于團(tuán)隊(duì)個(gè)體成員,對(duì)于個(gè)體,可以通過不斷提升自己的整潔代碼認(rèn)知來強(qiáng)化它,并嘗試在實(shí)踐中去運(yùn)用它們。而對(duì)于團(tuán)隊(duì),我想到一條指導(dǎo)原則:任何有助于提升系統(tǒng)質(zhì)量的潔癖都不應(yīng)該被忽視,團(tuán)隊(duì)?wèi)?yīng)該盡力接納并落實(shí)。

懶惰

恰當(dāng)?shù)摹皯卸琛笔且粋€(gè)優(yōu)秀的程序員必備的特質(zhì),因?yàn)?Ta 總是勤于思考如何才能少做重復(fù)的事情。

懶惰聽起來是一個(gè)負(fù)面的詞,中國(guó)幾千年的文化價(jià)值觀在告訴每一個(gè)人要做勤奮努力的人。在軟件開發(fā)領(lǐng)域,我認(rèn)為恰當(dāng)?shù)膽卸枋墙夥懦绦騿T生產(chǎn)力、保持系統(tǒng)簡(jiǎn)單的助推劑,比如:

  • 需求或設(shè)計(jì)變更,懶得改太多代碼。怎么辦?消除代碼重復(fù),隔離和封裝變化,分離關(guān)注點(diǎn)
  • 手工集成和測(cè)試,懶得重復(fù)做。怎么辦?增加自動(dòng)化測(cè)試并做好CI/CD
  • 用戶鑒權(quán)分散在各個(gè)服務(wù)中,懶得修改所有的服務(wù)。怎么辦?引入API Gateway
  • 新人上項(xiàng)目,搭建環(huán)境反復(fù)找我,懶得重復(fù)講。怎么辦?編寫自動(dòng)化腳本和文檔指南

如果每次面對(duì)相同的問題,不得不花精力去處理,在這種毫無挑戰(zhàn)的重復(fù)性工作中,人通常很容易犯錯(cuò),所以,當(dāng)手懶得去做這些事情,懶惰會(huì)驅(qū)使大腦去思考一種更加高效的方式,比如隔離變化將其封裝,引入自動(dòng)化,從而取代一遍遍重復(fù)的操作,并且大腦還會(huì)思考如何運(yùn)用 KISS(Keep it Simple and Stupid),Yagni,如無必要,勿增實(shí)體。

有一種看似很”勤快”的CCCV(CMD + C | CMD + V)編碼行為,這些行為背后跟我提倡的懶惰大相徑庭。CCCV行為是思想上的懶惰,在這種思維的指導(dǎo)下,雙手會(huì)樂此不疲去重復(fù)做很多重復(fù)的事情,CCCV當(dāng)規(guī)避之。

勤于思考,惰于盲行,做一個(gè)具備恰當(dāng)惰性的程序員是一種快樂。

需要勇氣

在 XP 和 Scrum 鼓勵(lì)人們要有勇氣去做正確的事情、處理棘手的問題、做出承諾、堅(jiān)持原則、拒絕損害工作的行為、暴露自己的不足并尋求幫助、提供有建設(shè)性的意見等。

要保持簡(jiǎn)單,這些勇氣也是不可或缺的。同時(shí),我提倡程序員培養(yǎng) 保持專注、克制溢念、養(yǎng)成代碼潔癖、滋養(yǎng)恰當(dāng)?shù)膽卸璧挠職狻?/p>

責(zé)任編輯:趙寧寧 來源: Thoughtworks洞見
相關(guān)推薦

2011-08-11 09:56:50

模式

2010-03-16 18:32:58

ubuntuLinux

2023-02-15 16:38:04

代碼敏捷開發(fā)

2011-12-26 15:19:20

聚合

2011-01-24 09:33:48

軟件開發(fā)

2022-08-26 08:18:04

軟件開發(fā)高級(jí)系統(tǒng)設(shè)計(jì)低級(jí)系統(tǒng)設(shè)計(jì)

2010-11-18 13:12:47

Bug技術(shù)主管

2009-02-10 17:11:53

SaaSSaaS開發(fā)PaaS

2015-03-02 09:35:07

軟件開發(fā)

2009-03-24 21:43:49

多核CPU系統(tǒng)

2020-06-24 11:21:47

軟件開發(fā)面試

2017-03-17 08:15:17

敏捷軟件開發(fā)軟件開發(fā)

2024-11-07 12:14:36

2012-06-18 09:34:14

2013-07-22 09:44:29

DevOpsIBM技術(shù)大會(huì)

2022-07-19 16:31:29

軟件開發(fā)Kubernetes容器

2022-03-14 22:54:57

軟件開發(fā)性能

2011-08-31 10:04:22

日本軟件開發(fā)

2023-02-09 16:48:12

軟件開發(fā)測(cè)試結(jié)對(duì)測(cè)試

2023-10-31 00:49:20

對(duì)話式軟件開發(fā)
點(diǎn)贊
收藏

51CTO技術(shù)棧公眾號(hào)

主站蜘蛛池模板: 蜜桃在线视频 | 久一精品| 欧美日韩精品一区二区三区蜜桃 | 奇米视频777| 色综合av | 国产精品久久久久久久7777 | 精品国产乱码久久久久久影片 | 国产专区免费 | 国产精品欧美一区二区三区 | 国产欧美日韩久久久 | 国产中文字幕网 | 精品一区二区三区视频在线观看 | 一级欧美日韩 | 涩涩99| 久久tv在线观看 | 久久人人网 | 91精品国产综合久久精品 | 国产欧美精品 | 亚洲国产精久久久久久久 | 久久av网站| 一级毛片免费 | 国产一区二区免费电影 | 少妇特黄a一区二区三区88av | 久久精品中文 | 日韩在线成人 | 成人精品视频 | 精品国产欧美一区二区三区成人 | 国产精品123区 | 中文字幕一区在线观看视频 | 成人中文字幕在线观看 | 97精品视频在线 | 欧美一区二 | 麻豆av一区二区三区久久 | 久久久免费电影 | 精品福利视频一区二区三区 | 日本a∨精品中文字幕在线 亚洲91视频 | 1000部精品久久久久久久久 | 国产一区二区三区在线观看免费 | 国产视频精品在线观看 | 日韩欧美一级 | 我爱操 |