享譽(yù)全球的軟件開(kāi)發(fā)專(zhuān)家和軟件工程大師Robert C.Martin向您介紹如何解決軟件開(kāi)發(fā)人員、項(xiàng)目經(jīng)理及軟件項(xiàng)目領(lǐng)導(dǎo)們所面臨的最棘手的問(wèn)題。這本綜合性、實(shí)用性的敏捷開(kāi)發(fā)和極限編程方面的指南,講述了在預(yù)算和時(shí)間要求下軟件開(kāi)發(fā)人員和項(xiàng)目經(jīng)理如何使用敏捷開(kāi)發(fā)完成項(xiàng)目;使用真實(shí)案例講解如何用極限編程來(lái)設(shè)計(jì)、測(cè)試、重構(gòu)和結(jié)對(duì)編程;包含了極具價(jià)值的可重用的C++和Java源代碼;還重點(diǎn)講述了如何使用UML和設(shè)計(jì)模式解決面向客戶系統(tǒng)的問(wèn)題。本書(shū)于2003年榮獲第13屆軟件開(kāi)發(fā)圖書(shū)震憾大獎(jiǎng),適于用作高校計(jì)算機(jī)專(zhuān)業(yè)本科生、研究生和軟件學(xué)院的軟件工程和軟件開(kāi)發(fā)相關(guān)課程的教材或參考書(shū),也適于軟件開(kāi)發(fā)和管理人員提高自身水平學(xué)習(xí)之用。Robert C. Martin為《敏捷軟件開(kāi)發(fā)》中文版作序 《軟件之美》 除了我的家庭,軟件是我的摯愛(ài)。通過(guò)它,我可以創(chuàng)造出美的東西。軟件之美在于它的功能,在于它的內(nèi)部結(jié)構(gòu),還在于團(tuán)隊(duì)創(chuàng)建它的過(guò)程。對(duì)用戶來(lái)說(shuō),通過(guò)直觀、簡(jiǎn)單的界面呈現(xiàn)出恰當(dāng)特性的程序就是美的。對(duì)軟件設(shè)計(jì)者來(lái)說(shuō),被簡(jiǎn)單、直觀地分割,并具有最小內(nèi)部耦合的內(nèi)部結(jié)構(gòu)就是美的。對(duì)開(kāi)發(fā)人員和管理者來(lái)說(shuō),每周都會(huì)取得重大進(jìn)展,并且生產(chǎn)出無(wú)缺陷代碼的具有活力的團(tuán)隊(duì)就是美的。美存在于所有這些層次之中,它們都是本書(shū)內(nèi)容的一部分一軟件開(kāi)發(fā)人員如何學(xué)到創(chuàng)造美的知識(shí)呢?在本書(shū)中,我講授了一些原則、模式以及實(shí)踐,它們可以幫助軟件開(kāi)發(fā)人員在追求美的程序、設(shè)計(jì)以及團(tuán)隊(duì)的道路上邁出第一步。其中,我們探索了基本的設(shè)計(jì)原則,軟件設(shè)計(jì)結(jié)構(gòu)的通用模式以及有助于團(tuán)隊(duì)融為一個(gè)有機(jī)整體的一系列實(shí)踐。由于本書(shū)是關(guān)于軟件開(kāi)發(fā)的,所以包含了許多代碼。仔細(xì)研究這些代碼是學(xué)習(xí)本書(shū)所教授的原則、模式以及實(shí)踐的最有效方法。人們需要軟件:需要許多的軟件。50年前,軟件還只是運(yùn)行在少量大型、昂貴的機(jī)器之上。30年前,軟件可以運(yùn)行在大多數(shù)公司和工業(yè)環(huán)境之中?,F(xiàn)在,移動(dòng)電話、手表、電器、汽車(chē)、玩具以及工具中都運(yùn)行有軟件,并且對(duì)更新、更好軟件的需求永遠(yuǎn)不會(huì)停止。隨著人類(lèi)文明的發(fā)展和壯大,隨著發(fā)展中國(guó)家不斷構(gòu)建它們的基礎(chǔ)設(shè)施,隨著發(fā)達(dá)國(guó)家努力追求更高的效率,就需要越來(lái)越多的軟件。如果在所有這些軟件之中,都沒(méi)有美存在,這將會(huì)是一個(gè)很大的遺憾。我們知道軟件可能會(huì)是丑陋的。我們知道軟件可能會(huì)難以使用、刁;可靠并且是粗制濫造的;我們知道有一些軟件系統(tǒng),其混亂、粗糙的內(nèi)部結(jié)構(gòu)使得對(duì)它們的更改既昂貴又困難:我們還見(jiàn)過(guò)那些通過(guò)笨拙、難以使用的界面展現(xiàn)其特性的軟件系統(tǒng);我們同樣也見(jiàn)過(guò)那些易崩潰且行為不當(dāng)?shù)能浖到y(tǒng)。這些都是丑陋的系統(tǒng)。糟糕的是,作為一種職業(yè),軟件開(kāi)發(fā)人員所創(chuàng)建出來(lái)的美的東西卻往往少于丑的東西。如果你正在閱讀這本書(shū),那么你也許就是那個(gè)想去創(chuàng)造美而不是丑的人。最好的軟件開(kāi)發(fā)人員都知道一個(gè)秘密:美的東西比丑的東西創(chuàng)建起來(lái)更廉價(jià),也更快捷。構(gòu)建、維護(hù)一個(gè)美的軟件系統(tǒng)所花費(fèi)的時(shí)間、金錢(qián)都要少于丑的系統(tǒng)。軟件開(kāi)發(fā)新手往往不理解這一點(diǎn)。他們認(rèn)為做每件事情都必須要快,他們認(rèn)為美是不實(shí)用的。錯(cuò)!由于事情做得過(guò)快,他們?cè)斐傻幕靵y致使軟件僵化,難以理解。美的系統(tǒng)是靈活、易于理解的,構(gòu)建、維護(hù)它們就是一種快樂(lè)。丑陋的系統(tǒng)才是不實(shí)用的。丑陋會(huì)降低你的開(kāi)發(fā)速度,使你的軟件昂貴而又脆弱。構(gòu)建、維護(hù)美的系統(tǒng)所花費(fèi)的代價(jià)最少,交付起來(lái)也最快。我希望你能喜愛(ài)這本書(shū)。我希望你能像我一樣學(xué)著以創(chuàng)建美的軟件而驕傲,并享受其中的快樂(lè)。如果你從本書(shū)中略微看到了這種快樂(lè),如果本書(shū)使你開(kāi)始感受到了這種驕傲,如果本書(shū)點(diǎn)燃了你內(nèi)心欣賞這種美的火花,那么就遠(yuǎn)超過(guò)我的目標(biāo)了。RobertC.Martin2003年8月21日
作者簡(jiǎn)介
Robert C.Martin是Object Mentor公司的總裁。Martin和他的軟件咨詢隊(duì)伍使用面向?qū)ο笤O(shè)計(jì)、模式、UML、敏捷方法學(xué)和極限編程,在世界各地都有他們的客戶。他還是好幾本暢銷(xiāo)書(shū)的作者。他還是1996-1999年《C++ Report》雜志的總編,并多次在國(guó)際會(huì)議和展覽中發(fā)表富有特色的演講。