000 | 04448nam a2200277 a 4500 | ||
---|---|---|---|
003 | AR-LpUFIB | ||
005 | 20250311170537.0 | ||
008 | 230201s2019 xxua r 000 0 eng d | ||
020 | _a9780134757599 | ||
024 | 8 |
_aDIF-M2910 _b8310 _zDIF008307 |
|
040 |
_aAR-LpUFIB _bspa _cAR-LpUFIB |
||
100 | 1 | _aFowler, Martin | |
245 | 1 | 0 |
_aRefactoring : _bimproving the design of existing code |
250 | _a2nd ed. | ||
260 |
_aBoston : _b Addison-Wesley, _c2019 |
||
300 |
_axix, 418 p. : _bil. col. |
||
490 | 0 | _aSignature Series | |
500 | _aIncluye índice y bibliografía. | ||
505 | 0 | _a Foreword to the First Edition -- Preface -- Chapter 1: Refactoring: A First Example -- The Starting Point -- Comments on the Starting Program -- The First Step in Refactoring -- Decomposing the statement Function -- Status: Lots of Nested Functions -- Splitting the Phases of Calculation and Formatting -- Status: Separated into Two Files (and Phases) -- Reorganizing the Calculations by Type -- Status: Creating the Data with the Polymorphic Calculator -- Final Thoughts -- Chapter 2: Principles in Refactoring -- Defining Refactoring -- The Two Hats -- Why Should We Refactor? -- When Should We Refactor? -- Problems with Refactoring -- Refactoring, Architecture, and Yagni -- Refactoring and the Wider Software Development Process -- Refactoring and Performance -- Where Did Refactoring Come From? -- Automated Refactorings -- Going Further -- Chapter 3: Bad Smells in Code -- Mysterious Name -- Duplicated Code -- Long Function -- Long Parameter List -- Global Data -- Mutable Data -- Divergent Change -- Shotgun Surgery -- Feature Envy -- Data Clumps -- Primitive Obsession -- Repeated Switches -- Loops -- Lazy Element -- Speculative Generality -- Temporary Field -- Message Chains -- Middle Man -- Insider Trading -- Large Class -- Alternative Classes with Different Interfaces -- Data Class -- Refused Bequest -- Comments -- Chapter 4: Building Tests -- The Value of Self-Testing Code -- Sample Code to Test -- A First Test -- Add Another Test -- Modifying the Fixture -- Probing the Boundaries -- Much More Than This -- Chapter 5: Introducing the Catalog -- Format of the Refactorings -- The Choice of Refactorings -- Chapter 6: A First Set of Refactorings -- Extract Function -- Inline Function -- Extract Variable -- Inline Variable -- Change Function Declaration -- Encapsulate Variable -- Rename Variable -- Introduce Parameter Object -- Combine Functions into Class -- Combine Functions into Transform -- Split Phase -- Chapter 7: Encapsulation -- Encapsulate Record -- Encapsulate Collection -- Replace Primitive with Object -- Replace Temp with Query -- Extract Class -- Inline Class -- Hide Delegate -- Remove Middle Man -- Substitute Algorithm -- Chapter 8: Moving Features -- Move Function -- Move Field -- Move Statements into Function -- Move Statements to Callers -- Replace Inline Code with Function Call -- Slide Statements -- Split Loop -- Replace Loop with Pipeline -- Remove Dead Code -- Chapter 9: Organizing Data -- Split Variable -- Rename Field -- Replace Derived Variable with Query -- Change Reference to Value -- Change Value to Reference -- Chapter 10: Simplifying Conditional Logic -- Decompose Conditional -- Consolidate Conditional Expression -- Replace Nested Conditional with Guard Clauses -- Replace Conditional with Polymorphism -- Introduce Special Case -- Introduce Assertion -- Chapter 11: Refactoring APIs -- Separate Query from Modifier -- Parameterize Function -- Remove Flag Argument -- Preserve Whole Object -- Replace Parameter with Query -- Replace Query with Parameter -- Remove Setting Method -- Replace Constructor with Factory Function -- Replace Function with Command -- Replace Command with Function -- -- Chapter 12: Dealing with Inheritance -- Pull Up Method -- Pull Up Field -- Pull Up Constructor Body -- Push Down Method -- Push Down Field -- Replace Type Code with Subclasses -- Remove Subclass -- Extract Superclass -- Collapse Hierarchy -- Replace Subclass with Delegate -- Replace Superclass with Delegate -- Bibliography -- Index | |
650 | 4 | _aPROGRAMACIÓN ORIENTADA A OBJETOS | |
650 | 4 | _aCODIFICACIÓN DE SOFTWARE | |
650 | 4 | _aDIAGNÓSTICO MÉDICO | |
650 | 4 | _aHERRAMIENTAS DE SOFTWARE | |
650 | 4 | _aMANTENIMIENTO DE SOFTWARE | |
942 | _cBK | ||
999 |
_c58076 _d58076 |