出版時(shí)間:2006-5 出版社:東南大學(xué) 作者:Ken Pugh 頁數(shù):220
Tag標(biāo)簽:無
內(nèi)容概要
利用經(jīng)驗(yàn)累積而得的洞察力開發(fā)新的解決方案被稱為預(yù)構(gòu)。透過重構(gòu)而獲得的專業(yè)知識也屬于這類經(jīng)驗(yàn),而預(yù)構(gòu)的詞源即重構(gòu)。重構(gòu)是修改程序或軟件系統(tǒng)內(nèi)部結(jié)構(gòu)的實(shí)踐,以此在保留其現(xiàn)有行為的基礎(chǔ)上改良設(shè)計(jì)。重構(gòu)的原因有多種:方便后期增加功能、提高可維護(hù)性、提升性能。 本書作者是經(jīng)驗(yàn)老道的軟件開發(fā)人員。書中,作者運(yùn)用他個(gè)人和其他眾多開發(fā)人員的豐富經(jīng)驗(yàn),展示由其推衍而得的各項(xiàng)實(shí)踐方針。這些方針把優(yōu)秀的開發(fā)人員在設(shè)計(jì)時(shí)隱而未顯的考慮細(xì)節(jié)如實(shí)地呈現(xiàn)出來。許多方針都圍繞著極致抽象化、極致隔離以及極致可讀性這幾個(gè)概念。在假想的軟件項(xiàng)目和實(shí)際項(xiàng)目的介紹中,作者把實(shí)踐方針呈現(xiàn)在讀者面前。其中幾條于稍后列出。 把作者的方針應(yīng)用到你的軟件項(xiàng)目,有助于寫出可讀性、可維護(hù)性更棒的程序。這些方針可以協(xié)助你前期決策,以減少后期重構(gòu)的工作量。在這樣的前提下,你可以預(yù)測未來,減少修改。簡言之,就是程序預(yù)構(gòu)會使你更有效率。
作者簡介
Ken Pugh是Puge-Killen協(xié)會主席之一。Ken擔(dān)任顧問、從事教育培訓(xùn)、擔(dān)任教師以及出庭提供證詞,涉足的科技領(lǐng)域有面向?qū)ο笤O(shè)計(jì)、Linux/unix、網(wǎng)絡(luò)以及系統(tǒng)開發(fā)實(shí)踐。他參與過的項(xiàng)目包括山羊血清流程控制、擔(dān)保抵押處理軟件以及攝影分級。Ken時(shí)常在全國會議和區(qū)域會議發(fā)表演講,從倫敦到悉尼都有他的客戶。不工作時(shí),他喜歡滑雪、沖浪、騎自行車以及到阿帕拉契山徑徒步旅行。
書籍目錄
PREFACE1 INTRODUCTION TO PREFACTORING What Is Prefactoring? The Three Extremes The Guidelines Explored The Context for This Book2 THE SYSTEM IN SO MANY WORDS Meet Sam Reinvention Avoidance What's in a Name? Splitters Versus Lumpers Clumping Abstracting Prototypes Are Worth a Thousand Words3 GENERAL DEVELOPMENT ISSUES Start with the Big Picture Interface Contracts Validation Code Communicates Consistency Is Simplicity A Prefactoring Attitude Don't Repeat Yourself Documentation of Assumptions and Decisions Dealing with Deuiations and Errors Speeding The Spreadsheet Conundrum Tools Are Tools--Use Them Wisely4 GETTING THE BIG PICTURE The Rest of the Story Process The Initial Design Global Planning, Local Designing Testing Functionality Testing quality Security5 GOT CLASS ? Categories and Classes Declaration Versus Execution Appropriate Inheritance Communicate withext More Than One6 A FEW WORDS ON CLASSES Honor the Class Maxims Three Laws of Objects Need Determines Class Polymorphism One Little.lob Policy Versus Implementation Extreme Naming Overloading Functions7 GETTING THERE Where We Are Separating Concerns Migrating to the New System8 THE FIRSTRELEASE The Proof Is in the Puddin.~ Relrospective Time The System as It Stands Now Operations Interface Abstract Data Types Configuration Testing Dealing with Deuiations and Errors A Little Prefactofing The First Released Iteration Sometimes Practice Does Not Match Theory The Rest of the Classes9 ASSOCIATIONS AND STATES Sam's Neuw Requirement Who's in Charge? The State of an Object10 INTERFACES AND ADAPTATION The Catalog Search Use Case Designinn the Interface Interface Development Interface Testing Interface Splitting Something Worlking11 ZIP CODES AND INTERFACES Adaptation Pass the Buck Unwritten Code Indirection Logging Paradigm Mismatch12 MORE REPORTS Fancy Reports Change Happens Exports13 INVOICES, CREDIT CARDS, AND DISCOUNTS The Next Step The Language of the Client Security and Priuacy14 SAM IS EXPANDING The Second Store A New Development The Third Store Goodbye Sam Generality15 A PRINTSERVER EXAMPLE Introduction The System The Message Testing Logging Still More Separation Epilogue]6 ANTISPAM EXAMPLE The Context Spare Checking The ReceivingMailServer ReceivedMailExaminer The Full Flow17 EPILOGUEA GUIDELINES AND PRINCIPLESB SOURCE CODEINDEX
圖書封面
圖書標(biāo)簽Tags
無
評論、評分、閱讀與下載