Refactoring: improving the design of existing code
Gespeichert in:
1. Verfasser: | |
---|---|
Format: | Buch |
Sprache: | English |
Veröffentlicht: |
Boston <<[u.a.]>>
Addison-Wesley
2004
|
Ausgabe: | 15. print. |
Schriftenreihe: | The Addison-Wesley object technology series
|
Schlagworte: | |
Online-Zugang: | Inhaltsverzeichnis |
Beschreibung: | XXI, 431 S. Ill., graph. Darst. |
ISBN: | 0201485672 |
Internformat
MARC
LEADER | 00000nam a2200000 c 4500 | ||
---|---|---|---|
001 | BV024602545 | ||
003 | DE-604 | ||
005 | 20090910 | ||
007 | t | ||
008 | 090924s2004 ad|| |||| 00||| eng d | ||
020 | |a 0201485672 |9 0-201-48567-2 | ||
035 | |a (OCoLC)249669394 | ||
035 | |a (DE-599)BVBBV024602545 | ||
040 | |a DE-604 |b ger |e rakwb | ||
041 | 0 | |a eng | |
049 | |a DE-83 | ||
082 | 0 | |a 005.14 | |
084 | |a ST 230 |0 (DE-625)143617: |2 rvk | ||
100 | 1 | |a Fowler, Martin |e Verfasser |4 aut | |
245 | 1 | 0 | |a Refactoring |b improving the design of existing code |c Martin Fowler |
250 | |a 15. print. | ||
264 | 1 | |a Boston <<[u.a.]>> |b Addison-Wesley |c 2004 | |
300 | |a XXI, 431 S. |b Ill., graph. Darst. | ||
336 | |b txt |2 rdacontent | ||
337 | |b n |2 rdamedia | ||
338 | |b nc |2 rdacarrier | ||
490 | 0 | |a The Addison-Wesley object technology series | |
650 | 0 | 7 | |a Reengineering |0 (DE-588)4404560-8 |2 gnd |9 rswk-swf |
650 | 0 | 7 | |a Programmoptimierung |0 (DE-588)4191605-0 |2 gnd |9 rswk-swf |
650 | 0 | 7 | |a Software |0 (DE-588)4055382-6 |2 gnd |9 rswk-swf |
650 | 0 | 7 | |a Verbesserung |0 (DE-588)4309013-8 |2 gnd |9 rswk-swf |
650 | 0 | 7 | |a Java |g Programmiersprache |0 (DE-588)4401313-9 |2 gnd |9 rswk-swf |
650 | 0 | 7 | |a Softwareentwicklung |0 (DE-588)4116522-6 |2 gnd |9 rswk-swf |
650 | 0 | 7 | |a Design |0 (DE-588)4011510-0 |2 gnd |9 rswk-swf |
650 | 0 | 7 | |a Programmtransformation |0 (DE-588)4263654-1 |2 gnd |9 rswk-swf |
650 | 0 | 7 | |a Refactoring |0 (DE-588)4784343-3 |2 gnd |9 rswk-swf |
689 | 0 | 0 | |a Java |g Programmiersprache |0 (DE-588)4401313-9 |D s |
689 | 0 | |5 DE-604 | |
689 | 1 | 0 | |a Softwareentwicklung |0 (DE-588)4116522-6 |D s |
689 | 1 | |5 DE-604 | |
689 | 2 | 0 | |a Software |0 (DE-588)4055382-6 |D s |
689 | 2 | 1 | |a Design |0 (DE-588)4011510-0 |D s |
689 | 2 | 2 | |a Verbesserung |0 (DE-588)4309013-8 |D s |
689 | 2 | |8 1\p |5 DE-604 | |
689 | 3 | 0 | |a Programmtransformation |0 (DE-588)4263654-1 |D s |
689 | 3 | 1 | |a Programmoptimierung |0 (DE-588)4191605-0 |D s |
689 | 3 | |8 2\p |5 DE-604 | |
689 | 4 | 0 | |a Software |0 (DE-588)4055382-6 |D s |
689 | 4 | 1 | |a Reengineering |0 (DE-588)4404560-8 |D s |
689 | 4 | |8 3\p |5 DE-604 | |
689 | 5 | 0 | |a Refactoring |0 (DE-588)4784343-3 |D s |
689 | 5 | |8 4\p |5 DE-604 | |
856 | 4 | 2 | |m HBZ Datenaustausch |q application/pdf |u http://bvbr.bib-bvb.de:8991/F?func=service&doc_library=BVB01&local_base=BVB01&doc_number=018575808&sequence=000001&line_number=0001&func_code=DB_RECORDS&service_type=MEDIA |3 Inhaltsverzeichnis |
999 | |a oai:aleph.bib-bvb.de:BVB01-018575808 | ||
883 | 1 | |8 1\p |a cgwrk |d 20201028 |q DE-101 |u https://d-nb.info/provenance/plan#cgwrk | |
883 | 1 | |8 2\p |a cgwrk |d 20201028 |q DE-101 |u https://d-nb.info/provenance/plan#cgwrk | |
883 | 1 | |8 3\p |a cgwrk |d 20201028 |q DE-101 |u https://d-nb.info/provenance/plan#cgwrk | |
883 | 1 | |8 4\p |a cgwrk |d 20201028 |q DE-101 |u https://d-nb.info/provenance/plan#cgwrk |
Datensatz im Suchindex
_version_ | 1804140617182216192 |
---|---|
adam_text | Titel: Refactoring
Autor: Fowler, Martin
Jahr: 2004
Refactoring, a First Example
The Starting Point
The First Step in Refactoring
Decomposing and Redistributing the Statement Method
Replacing the Conditional Logic on Price Code with Polymorphism
Final Thoughts
Principles in Refactoring
Defining Refactoring
Why Should You Refactor?
When Should You Refactor?
What Do I Tell My Manager?
Problems with Refactoring
Refactoring and Design
Refactoring and Performance
Where Did Refactoring Come From?
Bad Smells in Code
Duplicated Code
Long Method
Large Class
Long Parameter List
Divergent Change
Shotgun Surgery
Feature Envy
Data Clumps
Primitive Obsession
Switch Statements
Parallel Inheritance Hierarchies
Lazy Class
Speculative Generality
Temporary Field
Message Chains
Middle Man
Inappropriate Intimacy
Alternative Classes with Different Interfaces
Incomplete Library Class
Data Class
Refused Bequest
Comments
Building Tests
The Value of Self-testing Code
The JUnit Testing Framework
Adding More Tests
Toward a Catalog of Refactorings
Format of the Refactorings
Finding References
How Mature Are These Refactorings?
Composing Methods
Extract Method
Inline Method
Inline Temp
Replace Temp with Query
Introduce Explaining Variable
Split Temporary Variable
Remove Assignments to Parameters
Replace Method with Method Object
Substitute Algorithm
Moving Features Between Objects
Move Method
Move Field
Extract Class
Inline Class
Hide Delegate
Remove Middle Man
Introduce Foreign Method
Introduce Local Extension
Organizing Data
Self Encapsulate Field
Replace Data Value with Object
Change Value to Reference
Change Reference to Value
Replace Array with Object
Duplicate Observed Data
Change Unidirectional Association to Bidirectional
Change Bidirectional Association to Unidirectional
Replace Magic Number with Symbolic Constant
Encapsulate Field
Encapsulate Collection
Replace Record with Data Class
Replace Type Code with Class
Replace Type Code with Subclasses
Replace Type Code with State/Strategy
Replace Subclass with Fields
Simplifying Conditional Expressions
Decompose Conditional
Consolidate Conditional Expression
Consolidate Duplicate Conditional Fragments
Remove Control Flag
Replace Nested Conditional with Guard Clauses
Replace Conditional with Polymorphism
Introduce Null Object
Introduce Assertion
Making Method Calls Simpler
Rename Method
Add Parameter
Remove Parameter
Separate Query from Modifier
Parameterize Method
Replace Parameter with Explicit Methods
Preserve Whole Object
Replace Parameter with Method
Introduce Parameter Object
Remove Setting Method
Hide Method
Replace Constructor with Factory Method
Encapsulate Downcast
Replace Error Code with Exception
Replace Exception with Test
Dealing with Generalization
Pull Up Field
Pull Up Method
Pull Up Constructor Body
Push Down Method
Push Down Field
Extract Subclass
Extract Superclass
Extract Interface
Collapse Hierarchy
Form Template Method
Replace Inheritance with Delegation
Replace Delegation with Inheritance
Big Refactorings
Tease Apart Inheritance
Convert Procedural Design to Objects
Separate Domain from Presentation
Extract Hierarchy
Refactoring, Reuse, and Reality
A Reality Check
Why Are Developers Reluctant to Refactor Their Programs?
A Reality Check (Revisited)
Resources and References for Refactoring
Implications Regarding Software Reuse and Technology Transfer
A Final Note
References
Refactoring Tools
Refactoring with a Tool
Technical Criteria for a Refactoring Tool
Practical Criteria for a Refactoring Tool
Wrap Up
Putting It All Together
References
List of Soundbites
List of Refactorings
Index
Table of Contents provided by Blackwell s Book Services and R.R. Bowker. Used with permission.
|
any_adam_object | 1 |
author | Fowler, Martin |
author_facet | Fowler, Martin |
author_role | aut |
author_sort | Fowler, Martin |
author_variant | m f mf |
building | Verbundindex |
bvnumber | BV024602545 |
classification_rvk | ST 230 |
ctrlnum | (OCoLC)249669394 (DE-599)BVBBV024602545 |
dewey-full | 005.14 |
dewey-hundreds | 000 - Computer science, information, general works |
dewey-ones | 005 - Computer programming, programs, data, security |
dewey-raw | 005.14 |
dewey-search | 005.14 |
dewey-sort | 15.14 |
dewey-tens | 000 - Computer science, information, general works |
discipline | Informatik |
edition | 15. print. |
format | Book |
fullrecord | <?xml version="1.0" encoding="UTF-8"?><collection xmlns="http://www.loc.gov/MARC21/slim"><record><leader>02765nam a2200661 c 4500</leader><controlfield tag="001">BV024602545</controlfield><controlfield tag="003">DE-604</controlfield><controlfield tag="005">20090910 </controlfield><controlfield tag="007">t</controlfield><controlfield tag="008">090924s2004 ad|| |||| 00||| eng d</controlfield><datafield tag="020" ind1=" " ind2=" "><subfield code="a">0201485672</subfield><subfield code="9">0-201-48567-2</subfield></datafield><datafield tag="035" ind1=" " ind2=" "><subfield code="a">(OCoLC)249669394</subfield></datafield><datafield tag="035" ind1=" " ind2=" "><subfield code="a">(DE-599)BVBBV024602545</subfield></datafield><datafield tag="040" ind1=" " ind2=" "><subfield code="a">DE-604</subfield><subfield code="b">ger</subfield><subfield code="e">rakwb</subfield></datafield><datafield tag="041" ind1="0" ind2=" "><subfield code="a">eng</subfield></datafield><datafield tag="049" ind1=" " ind2=" "><subfield code="a">DE-83</subfield></datafield><datafield tag="082" ind1="0" ind2=" "><subfield code="a">005.14</subfield></datafield><datafield tag="084" ind1=" " ind2=" "><subfield code="a">ST 230</subfield><subfield code="0">(DE-625)143617:</subfield><subfield code="2">rvk</subfield></datafield><datafield tag="100" ind1="1" ind2=" "><subfield code="a">Fowler, Martin</subfield><subfield code="e">Verfasser</subfield><subfield code="4">aut</subfield></datafield><datafield tag="245" ind1="1" ind2="0"><subfield code="a">Refactoring</subfield><subfield code="b">improving the design of existing code</subfield><subfield code="c">Martin Fowler</subfield></datafield><datafield tag="250" ind1=" " ind2=" "><subfield code="a">15. print.</subfield></datafield><datafield tag="264" ind1=" " ind2="1"><subfield code="a">Boston <<[u.a.]>></subfield><subfield code="b">Addison-Wesley</subfield><subfield code="c">2004</subfield></datafield><datafield tag="300" ind1=" " ind2=" "><subfield code="a">XXI, 431 S.</subfield><subfield code="b">Ill., graph. Darst.</subfield></datafield><datafield tag="336" ind1=" " ind2=" "><subfield code="b">txt</subfield><subfield code="2">rdacontent</subfield></datafield><datafield tag="337" ind1=" " ind2=" "><subfield code="b">n</subfield><subfield code="2">rdamedia</subfield></datafield><datafield tag="338" ind1=" " ind2=" "><subfield code="b">nc</subfield><subfield code="2">rdacarrier</subfield></datafield><datafield tag="490" ind1="0" ind2=" "><subfield code="a">The Addison-Wesley object technology series</subfield></datafield><datafield tag="650" ind1="0" ind2="7"><subfield code="a">Reengineering</subfield><subfield code="0">(DE-588)4404560-8</subfield><subfield code="2">gnd</subfield><subfield code="9">rswk-swf</subfield></datafield><datafield tag="650" ind1="0" ind2="7"><subfield code="a">Programmoptimierung</subfield><subfield code="0">(DE-588)4191605-0</subfield><subfield code="2">gnd</subfield><subfield code="9">rswk-swf</subfield></datafield><datafield tag="650" ind1="0" ind2="7"><subfield code="a">Software</subfield><subfield code="0">(DE-588)4055382-6</subfield><subfield code="2">gnd</subfield><subfield code="9">rswk-swf</subfield></datafield><datafield tag="650" ind1="0" ind2="7"><subfield code="a">Verbesserung</subfield><subfield code="0">(DE-588)4309013-8</subfield><subfield code="2">gnd</subfield><subfield code="9">rswk-swf</subfield></datafield><datafield tag="650" ind1="0" ind2="7"><subfield code="a">Java</subfield><subfield code="g">Programmiersprache</subfield><subfield code="0">(DE-588)4401313-9</subfield><subfield code="2">gnd</subfield><subfield code="9">rswk-swf</subfield></datafield><datafield tag="650" ind1="0" ind2="7"><subfield code="a">Softwareentwicklung</subfield><subfield code="0">(DE-588)4116522-6</subfield><subfield code="2">gnd</subfield><subfield code="9">rswk-swf</subfield></datafield><datafield tag="650" ind1="0" ind2="7"><subfield code="a">Design</subfield><subfield code="0">(DE-588)4011510-0</subfield><subfield code="2">gnd</subfield><subfield code="9">rswk-swf</subfield></datafield><datafield tag="650" ind1="0" ind2="7"><subfield code="a">Programmtransformation</subfield><subfield code="0">(DE-588)4263654-1</subfield><subfield code="2">gnd</subfield><subfield code="9">rswk-swf</subfield></datafield><datafield tag="650" ind1="0" ind2="7"><subfield code="a">Refactoring</subfield><subfield code="0">(DE-588)4784343-3</subfield><subfield code="2">gnd</subfield><subfield code="9">rswk-swf</subfield></datafield><datafield tag="689" ind1="0" ind2="0"><subfield code="a">Java</subfield><subfield code="g">Programmiersprache</subfield><subfield code="0">(DE-588)4401313-9</subfield><subfield code="D">s</subfield></datafield><datafield tag="689" ind1="0" ind2=" "><subfield code="5">DE-604</subfield></datafield><datafield tag="689" ind1="1" ind2="0"><subfield code="a">Softwareentwicklung</subfield><subfield code="0">(DE-588)4116522-6</subfield><subfield code="D">s</subfield></datafield><datafield tag="689" ind1="1" ind2=" "><subfield code="5">DE-604</subfield></datafield><datafield tag="689" ind1="2" ind2="0"><subfield code="a">Software</subfield><subfield code="0">(DE-588)4055382-6</subfield><subfield code="D">s</subfield></datafield><datafield tag="689" ind1="2" ind2="1"><subfield code="a">Design</subfield><subfield code="0">(DE-588)4011510-0</subfield><subfield code="D">s</subfield></datafield><datafield tag="689" ind1="2" ind2="2"><subfield code="a">Verbesserung</subfield><subfield code="0">(DE-588)4309013-8</subfield><subfield code="D">s</subfield></datafield><datafield tag="689" ind1="2" ind2=" "><subfield code="8">1\p</subfield><subfield code="5">DE-604</subfield></datafield><datafield tag="689" ind1="3" ind2="0"><subfield code="a">Programmtransformation</subfield><subfield code="0">(DE-588)4263654-1</subfield><subfield code="D">s</subfield></datafield><datafield tag="689" ind1="3" ind2="1"><subfield code="a">Programmoptimierung</subfield><subfield code="0">(DE-588)4191605-0</subfield><subfield code="D">s</subfield></datafield><datafield tag="689" ind1="3" ind2=" "><subfield code="8">2\p</subfield><subfield code="5">DE-604</subfield></datafield><datafield tag="689" ind1="4" ind2="0"><subfield code="a">Software</subfield><subfield code="0">(DE-588)4055382-6</subfield><subfield code="D">s</subfield></datafield><datafield tag="689" ind1="4" ind2="1"><subfield code="a">Reengineering</subfield><subfield code="0">(DE-588)4404560-8</subfield><subfield code="D">s</subfield></datafield><datafield tag="689" ind1="4" ind2=" "><subfield code="8">3\p</subfield><subfield code="5">DE-604</subfield></datafield><datafield tag="689" ind1="5" ind2="0"><subfield code="a">Refactoring</subfield><subfield code="0">(DE-588)4784343-3</subfield><subfield code="D">s</subfield></datafield><datafield tag="689" ind1="5" ind2=" "><subfield code="8">4\p</subfield><subfield code="5">DE-604</subfield></datafield><datafield tag="856" ind1="4" ind2="2"><subfield code="m">HBZ Datenaustausch</subfield><subfield code="q">application/pdf</subfield><subfield code="u">http://bvbr.bib-bvb.de:8991/F?func=service&doc_library=BVB01&local_base=BVB01&doc_number=018575808&sequence=000001&line_number=0001&func_code=DB_RECORDS&service_type=MEDIA</subfield><subfield code="3">Inhaltsverzeichnis</subfield></datafield><datafield tag="999" ind1=" " ind2=" "><subfield code="a">oai:aleph.bib-bvb.de:BVB01-018575808</subfield></datafield><datafield tag="883" ind1="1" ind2=" "><subfield code="8">1\p</subfield><subfield code="a">cgwrk</subfield><subfield code="d">20201028</subfield><subfield code="q">DE-101</subfield><subfield code="u">https://d-nb.info/provenance/plan#cgwrk</subfield></datafield><datafield tag="883" ind1="1" ind2=" "><subfield code="8">2\p</subfield><subfield code="a">cgwrk</subfield><subfield code="d">20201028</subfield><subfield code="q">DE-101</subfield><subfield code="u">https://d-nb.info/provenance/plan#cgwrk</subfield></datafield><datafield tag="883" ind1="1" ind2=" "><subfield code="8">3\p</subfield><subfield code="a">cgwrk</subfield><subfield code="d">20201028</subfield><subfield code="q">DE-101</subfield><subfield code="u">https://d-nb.info/provenance/plan#cgwrk</subfield></datafield><datafield tag="883" ind1="1" ind2=" "><subfield code="8">4\p</subfield><subfield code="a">cgwrk</subfield><subfield code="d">20201028</subfield><subfield code="q">DE-101</subfield><subfield code="u">https://d-nb.info/provenance/plan#cgwrk</subfield></datafield></record></collection> |
id | DE-604.BV024602545 |
illustrated | Illustrated |
indexdate | 2024-07-09T22:02:49Z |
institution | BVB |
isbn | 0201485672 |
language | English |
oai_aleph_id | oai:aleph.bib-bvb.de:BVB01-018575808 |
oclc_num | 249669394 |
open_access_boolean | |
owner | DE-83 |
owner_facet | DE-83 |
physical | XXI, 431 S. Ill., graph. Darst. |
publishDate | 2004 |
publishDateSearch | 2004 |
publishDateSort | 2004 |
publisher | Addison-Wesley |
record_format | marc |
series2 | The Addison-Wesley object technology series |
spelling | Fowler, Martin Verfasser aut Refactoring improving the design of existing code Martin Fowler 15. print. Boston <<[u.a.]>> Addison-Wesley 2004 XXI, 431 S. Ill., graph. Darst. txt rdacontent n rdamedia nc rdacarrier The Addison-Wesley object technology series Reengineering (DE-588)4404560-8 gnd rswk-swf Programmoptimierung (DE-588)4191605-0 gnd rswk-swf Software (DE-588)4055382-6 gnd rswk-swf Verbesserung (DE-588)4309013-8 gnd rswk-swf Java Programmiersprache (DE-588)4401313-9 gnd rswk-swf Softwareentwicklung (DE-588)4116522-6 gnd rswk-swf Design (DE-588)4011510-0 gnd rswk-swf Programmtransformation (DE-588)4263654-1 gnd rswk-swf Refactoring (DE-588)4784343-3 gnd rswk-swf Java Programmiersprache (DE-588)4401313-9 s DE-604 Softwareentwicklung (DE-588)4116522-6 s Software (DE-588)4055382-6 s Design (DE-588)4011510-0 s Verbesserung (DE-588)4309013-8 s 1\p DE-604 Programmtransformation (DE-588)4263654-1 s Programmoptimierung (DE-588)4191605-0 s 2\p DE-604 Reengineering (DE-588)4404560-8 s 3\p DE-604 Refactoring (DE-588)4784343-3 s 4\p DE-604 HBZ Datenaustausch application/pdf http://bvbr.bib-bvb.de:8991/F?func=service&doc_library=BVB01&local_base=BVB01&doc_number=018575808&sequence=000001&line_number=0001&func_code=DB_RECORDS&service_type=MEDIA Inhaltsverzeichnis 1\p cgwrk 20201028 DE-101 https://d-nb.info/provenance/plan#cgwrk 2\p cgwrk 20201028 DE-101 https://d-nb.info/provenance/plan#cgwrk 3\p cgwrk 20201028 DE-101 https://d-nb.info/provenance/plan#cgwrk 4\p cgwrk 20201028 DE-101 https://d-nb.info/provenance/plan#cgwrk |
spellingShingle | Fowler, Martin Refactoring improving the design of existing code Reengineering (DE-588)4404560-8 gnd Programmoptimierung (DE-588)4191605-0 gnd Software (DE-588)4055382-6 gnd Verbesserung (DE-588)4309013-8 gnd Java Programmiersprache (DE-588)4401313-9 gnd Softwareentwicklung (DE-588)4116522-6 gnd Design (DE-588)4011510-0 gnd Programmtransformation (DE-588)4263654-1 gnd Refactoring (DE-588)4784343-3 gnd |
subject_GND | (DE-588)4404560-8 (DE-588)4191605-0 (DE-588)4055382-6 (DE-588)4309013-8 (DE-588)4401313-9 (DE-588)4116522-6 (DE-588)4011510-0 (DE-588)4263654-1 (DE-588)4784343-3 |
title | Refactoring improving the design of existing code |
title_auth | Refactoring improving the design of existing code |
title_exact_search | Refactoring improving the design of existing code |
title_full | Refactoring improving the design of existing code Martin Fowler |
title_fullStr | Refactoring improving the design of existing code Martin Fowler |
title_full_unstemmed | Refactoring improving the design of existing code Martin Fowler |
title_short | Refactoring |
title_sort | refactoring improving the design of existing code |
title_sub | improving the design of existing code |
topic | Reengineering (DE-588)4404560-8 gnd Programmoptimierung (DE-588)4191605-0 gnd Software (DE-588)4055382-6 gnd Verbesserung (DE-588)4309013-8 gnd Java Programmiersprache (DE-588)4401313-9 gnd Softwareentwicklung (DE-588)4116522-6 gnd Design (DE-588)4011510-0 gnd Programmtransformation (DE-588)4263654-1 gnd Refactoring (DE-588)4784343-3 gnd |
topic_facet | Reengineering Programmoptimierung Software Verbesserung Java Programmiersprache Softwareentwicklung Design Programmtransformation Refactoring |
url | http://bvbr.bib-bvb.de:8991/F?func=service&doc_library=BVB01&local_base=BVB01&doc_number=018575808&sequence=000001&line_number=0001&func_code=DB_RECORDS&service_type=MEDIA |
work_keys_str_mv | AT fowlermartin refactoringimprovingthedesignofexistingcode |