商業(yè)源碼熱門(mén)下載www.html.org.cn
第一原則:
存在的理由(pattern: thereason) 一個(gè)軟件系統(tǒng)存在的理由就是:為它的用戶(hù)提供價(jià)值。你所有的決定都取決于這一點(diǎn)。在指定一個(gè)系統(tǒng)需求,在寫(xiě)下一段系統(tǒng)功能,在決定硬件平臺(tái)和開(kāi)發(fā)過(guò)程之前,問(wèn)你自己一個(gè)問(wèn)題,“這樣做會(huì)為系統(tǒng)增加價(jià)值嗎?“,如果答案是”yes”,做。如果是”no”,不做。這個(gè)原則是其他原則的原則。
第二原則(能簡(jiǎn)單就簡(jiǎn)單,愚蠢!)軟件設(shè)計(jì)不是一個(gè)輕描淡寫(xiě)的過(guò)程
在做任何一個(gè)設(shè)計(jì)時(shí),你必須考慮很多因素。所有設(shè)計(jì)應(yīng)當(dāng)盡可能簡(jiǎn)單,但是不要再比這簡(jiǎn)單了。這樣產(chǎn)生的系統(tǒng)才是可以理解和容易維護(hù)的。這并不是說(shuō)很多由意義的特性,因?yàn)檫@種簡(jiǎn)單性也要被拋棄。確實(shí)很多更優(yōu)雅的設(shè)計(jì)往往更簡(jiǎn)單,但簡(jiǎn)單并不意味著“quick and dirty."。事實(shí)上,簡(jiǎn)單是通過(guò)許多思考和一次一次的反復(fù)修改才達(dá)到的。這些努力的匯報(bào)就是更容易維護(hù),代碼錯(cuò)誤更少。 (看看是否違反)
3.第三原則 :
保持遠(yuǎn)見(jiàn)(pattern: maintainthevision) 清晰的遠(yuǎn)見(jiàn)是一個(gè)軟件項(xiàng)目成功的基礎(chǔ)。. 沒(méi)有這樣的遠(yuǎn)見(jiàn),項(xiàng)目開(kāi)發(fā)最后就變成天天為一個(gè)不好的設(shè)計(jì)做補(bǔ)丁。brooks說(shuō)過(guò): 概念的完整性是系統(tǒng)設(shè)計(jì)中最重要的問(wèn)題。 stroustrup 也說(shuō): 有一個(gè)干凈的內(nèi)部結(jié)構(gòu)識(shí)構(gòu)建一個(gè)可理解、可辨識(shí)、可維護(hù) 、可測(cè)試系統(tǒng)的基礎(chǔ)。 booch則總結(jié)道: 只有當(dāng)你對(duì)系統(tǒng)的體系由一個(gè)清晰的感覺(jué),才可能去發(fā)現(xiàn)通用的抽象和機(jī)制。開(kāi)發(fā)這種通用性最終導(dǎo)致系統(tǒng)更簡(jiǎn)單,因此更小,更可靠 如果你不斷地復(fù)制、粘貼、修改代碼,最終你將陷入一個(gè)大泥潭(the big mud),你永遠(yuǎn)不可能對(duì)系統(tǒng)有一個(gè)清晰的認(rèn)識(shí)。
4.第四原則:
你制造的,別人會(huì)消費(fèi) (pattern: whatyouproducetheyconsume) 軟件系統(tǒng)不是在真空中使用的。其他人會(huì)使用、維護(hù)、文檔你的系統(tǒng)。這依賴(lài)于對(duì)你系統(tǒng)的理解。所以,你設(shè)計(jì)、實(shí)現(xiàn)的東西應(yīng)當(dāng)能夠讓別人理解。要記住,你寫(xiě)的代碼并非只給計(jì)算機(jī)看,你要時(shí)時(shí)記住,代碼還要給人看。(kent beck) 如果到處泛濫似是而非的代碼,別人如何能夠辨別這些代碼的相似和不同,如何去理解這些代碼之間具有何種關(guān)系。
5.第五原則:
對(duì)將來(lái)開(kāi)放( pattern buildfortodaydesignfortomorrow) 一個(gè)成功的軟件有很長(zhǎng)的生命期。你必須能夠使得軟件能夠適應(yīng)這樣和那樣的變化。所以,一開(kāi)始就不要軟件設(shè)計(jì)到死角上去。請(qǐng)總是問(wèn)一下自己“如果這樣,那么。。?“這個(gè)問(wèn)題,你要考慮到各種各樣的可能性,而不光光是圖省事。復(fù)制,粘貼一下即可。
6.第六原則:
為重用做好計(jì)劃 軟件模式是重用計(jì)劃的一種。不斷重復(fù)的代碼顯然不是這樣的計(jì)劃。 (see commentsonsix)
7.第七原則:
思考!在采取任何動(dòng)作之前首先做一個(gè)清晰、完整的考慮,這樣才能產(chǎn)生更好的結(jié)果。如果你考慮了,但還是產(chǎn)生錯(cuò)誤的結(jié)果,那么這種努力也是值得的。在你學(xué)習(xí)或研究類(lèi)似的問(wèn)題時(shí),更容易理解和掌握。
這些原則告訴我們輕松地復(fù)制、粘貼和修改代碼不可能產(chǎn)生好的,也就是容易理解、維護(hù)、重用的代碼。但請(qǐng)不要走極端。 我一直認(rèn)為,一個(gè)好的軟件系統(tǒng)是各種因素權(quán)衡的結(jié)果,也就是你如何把握一個(gè)度的問(wèn)題。重復(fù)代碼產(chǎn)生的另外一個(gè)主要原因就是做得太多,xp有一個(gè)基本原則叫做you arent gonna need it,它是說(shuō)“只實(shí)現(xiàn)你真正需要的東西,從來(lái)不去實(shí)現(xiàn)你預(yù)期需要的東西“。如果你去實(shí)現(xiàn)你現(xiàn)在認(rèn)為將來(lái)需要的東西,不一定就是你以后真正需要的東西。你處于現(xiàn)在的環(huán)境中可能無(wú)法理解你要實(shí)現(xiàn)東西究竟是什么樣子的。你會(huì)浪費(fèi)大量的時(shí)間去構(gòu)造這樣不知道是否必須的可能性。同時(shí),當(dāng)你真正實(shí)現(xiàn)的時(shí)候就可能產(chǎn)生重復(fù)代碼。
新聞熱點(diǎn)
疑難解答
圖片精選