偷偷摘套内射激情视频,久久精品99国产国产精,中文字幕无线乱码人妻,中文在线中文a,性爽19p

淺談敏捷開(kāi)發(fā)思想中的簡(jiǎn)單最好原則

開(kāi)發(fā) 項(xiàng)目管理
極限編程中有一條著名的懶漢原則,稱之為KISS原則,KISS是Keep it simple and stupid的縮寫。簡(jiǎn)略地說(shuō),就是設(shè)計(jì)盡量保證簡(jiǎn)單。這里我們將談到敏捷開(kāi)發(fā)思想中的簡(jiǎn)單最好原則。

極限編程堅(jiān)持只為今天的需求設(shè)計(jì)以及編碼,而不用考慮明天。這頗有一些“做一天和尚撞一天鐘”的意味。

這個(gè)原則帶來(lái)一個(gè)問(wèn)題,那就是我們還需要設(shè)計(jì)嗎?

我們強(qiáng)調(diào)設(shè)計(jì),其目的就在于設(shè)計(jì)出合理、優(yōu)雅的結(jié)構(gòu),以提供具有良好復(fù)用性與可擴(kuò)展性的系統(tǒng),這是一種未雨綢繆,為未來(lái)考慮。而現(xiàn)在,我們?nèi)粢裱璌ISS原則,就是不再考慮明天的需求。顯然,這兩者的觀點(diǎn)是相悖的。于是,矛盾出現(xiàn):一方面我們需要保持設(shè)計(jì)簡(jiǎn)單,不做無(wú)謂的功能預(yù)測(cè);另一方面,我們又需要擁抱變化,在盡可能少的改變結(jié)構(gòu)與代碼的情況之下,滿足未來(lái)的需求。

如何解決這個(gè)矛盾。讓我們先看看提出簡(jiǎn)單原則的初衷。在《敏捷開(kāi)發(fā)思想之擁抱變化》一篇中,我提到需求的變化是不可避免的。即使是最優(yōu)秀的需求分析師和架構(gòu)設(shè)計(jì)師都不可能在項(xiàng)目之初窮盡所有客戶要求的功能,作出最完美的分析與設(shè)計(jì),即做到“增之一分則太多,減之一分則太少”。我們需要把握分析和設(shè)計(jì)的“度”。但事實(shí)卻是,我們總喜歡越俎代庖,利用自己的經(jīng)驗(yàn)幫助客戶提出需求,而事后證明這些需求往往是多余的。我們總是在重復(fù)做著“吃力不討好”的事情,與其如此,還不如在事先偷懶取巧。因?yàn)樾枨蟮淖兓偸遣豢煽氐?,根?jù)“利益趨避原則”,自然應(yīng)選擇對(duì)自己更有利的一個(gè)趨向。

但這種簡(jiǎn)單并不是“簡(jiǎn)陋”,即使我們不需要考慮明天的需求,一些好的重用原則與可擴(kuò)展原則仍然需要遵循。例如,我們應(yīng)盡量保證對(duì)象是高內(nèi)聚、低耦合的;我們應(yīng)遵循“面向接口編程”原則。一言以蔽之,我們需要做到:
1、減少依賴;

2、合理抽象;

3、功能最簡(jiǎn)。

簡(jiǎn)單設(shè)計(jì)還需要重構(gòu)來(lái)保證設(shè)計(jì)的質(zhì)量。我們之所以敢于奢談“簡(jiǎn)單”,正是因?yàn)橹貥?gòu)的保障。即使設(shè)計(jì)過(guò)于粗陋,合理利用重構(gòu)也能夠亡羊補(bǔ)牢。在重構(gòu)過(guò)程中,我們?nèi)匀恍枰裱?jiǎn)單原則,僅為當(dāng)前的需求對(duì)系統(tǒng)結(jié)構(gòu)進(jìn)行重構(gòu)。例如,我們?cè)谧畛醯男枨蠓治鲋校挥幸粋€(gè)功能要求發(fā)送電子郵件。那么,我們可以編寫一個(gè)方法來(lái)封裝發(fā)送電子郵件的實(shí)現(xiàn),這個(gè)方法甚至可以放在業(yè)務(wù)對(duì)象的私有方法中。隨著需求的逐步演進(jìn),新增的幾個(gè)功能同樣需要發(fā)送電子郵件,此時(shí)就有必要利用重構(gòu)技術(shù),將原來(lái)發(fā)送電子郵件的方法獨(dú)立到單獨(dú)的類中。但是,基于簡(jiǎn)單原則,我們沒(méi)有必要完善所有功能,例如增加發(fā)送Meet Request的功能。因?yàn)槟壳暗男枨蟛⒉恍枰?/P>

“簡(jiǎn)單”并不只限于設(shè)計(jì)。在敏捷開(kāi)發(fā)過(guò)程中,我們還需要保證項(xiàng)目計(jì)劃的簡(jiǎn)單,以及文檔的簡(jiǎn)單,乃至于過(guò)程的簡(jiǎn)單。項(xiàng)目計(jì)劃的簡(jiǎn)單可以由小步行進(jìn)的迭代周期來(lái)保證,通過(guò)對(duì)項(xiàng)目階段的分解,簡(jiǎn)化項(xiàng)目計(jì)劃。至于文檔的簡(jiǎn)單,我們完全可以拋棄復(fù)雜標(biāo)準(zhǔn)的文檔模板,轉(zhuǎn)而書寫僅僅是自己需要關(guān)注的內(nèi)容。至少,項(xiàng)目?jī)?nèi)部的文檔完全可以言之有物,而不需要注重形式。我們還可以通過(guò)對(duì)項(xiàng)目過(guò)程進(jìn)行裁剪,來(lái)保障過(guò)程的簡(jiǎn)單性。事實(shí)上,在極限編程中,很多原則和實(shí)踐都是為了實(shí)現(xiàn)簡(jiǎn)單而提出的。例如計(jì)劃游戲、小版本、簡(jiǎn)單設(shè)計(jì),包括持續(xù)集成和代碼所有權(quán),都是為了提高開(kāi)發(fā)過(guò)程的效率,這實(shí)際上也是簡(jiǎn)單的一種體現(xiàn)。

敏捷開(kāi)發(fā)思想中“簡(jiǎn)單最好”是一種心態(tài),更是一條原則。

【編輯推薦】

  1. 敏捷開(kāi)發(fā)環(huán)境下的領(lǐng)導(dǎo)問(wèn)題
  2. 對(duì)話敏捷專家麥天志:敏捷開(kāi)發(fā)現(xiàn)狀及發(fā)展之路
  3. 敏捷項(xiàng)目中的資源管理
  4. 敏捷開(kāi)發(fā)中對(duì)進(jìn)度的把握
  5. 如何解決敏捷開(kāi)發(fā)中的用人不當(dāng)問(wèn)題
責(zé)任編輯:彭凡 來(lái)源: cnblogs
相關(guān)推薦

2023-09-18 13:45:52

2009-06-04 10:09:50

敏捷建模建模

2021-08-24 09:00:00

開(kāi)發(fā)軟件框架

2011-05-26 09:20:59

配線架

2011-09-01 10:21:52

jQuery Mobi元素

2009-06-18 09:01:05

敏捷開(kāi)發(fā)

2009-07-06 10:36:41

敏捷開(kāi)發(fā)

2009-08-27 09:11:31

敏捷開(kāi)發(fā)成效評(píng)估

2022-02-28 08:00:00

軟件開(kāi)發(fā)敏捷方法技術(shù)

2013-10-29 11:50:11

2009-07-16 09:52:00

Scrum流程

2023-07-09 15:24:05

架構(gòu)設(shè)計(jì)思想AKF

2015-01-15 17:41:54

soa云計(jì)算BPEL

2009-04-15 10:51:59

敏捷軟件重用極限編程

2013-09-22 10:15:05

編程思想

2009-09-10 16:04:41

敏捷開(kāi)發(fā)敏捷外包

2020-01-14 14:15:03

開(kāi)發(fā)技能代碼

2023-01-04 09:40:32

敏捷開(kāi)發(fā)

2021-07-19 10:43:43

云原生軟件開(kāi)發(fā)架構(gòu)

2011-07-13 10:12:56

SQL語(yǔ)句優(yōu)化操作符優(yōu)化
點(diǎn)贊
收藏

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