Clean code: a handbook of agile software craftsmanship
Gespeichert in:
1. Verfasser: | |
---|---|
Format: | Buch |
Sprache: | English |
Veröffentlicht: |
Upper Saddle River, NJ [u.a.]
Prentice Hall
2009
|
Schriftenreihe: | Robert C. Martin series
|
Schlagworte: | |
Online-Zugang: | Inhaltsverzeichnis |
Beschreibung: | Hier auch später erschienene unveränderte Nachdrucke |
Beschreibung: | XXIX, 431 S. Illustrationen, Diagramme |
ISBN: | 9780132350884 0132350882 |
Internformat
MARC
LEADER | 00000nam a2200000 c 4500 | ||
---|---|---|---|
001 | BV036612495 | ||
003 | DE-604 | ||
005 | 20220811 | ||
007 | t | ||
008 | 100811s2009 a||| |||| 00||| eng d | ||
020 | |a 9780132350884 |9 978-0-13-235088-4 | ||
020 | |a 0132350882 |c pbk. : alk. paper |9 0-13-235088-2 | ||
035 | |a (OCoLC)605917912 | ||
035 | |a (DE-599)BVBBV036612495 | ||
040 | |a DE-604 |b ger |e aacr | ||
041 | 0 | |a eng | |
049 | |a DE-83 |a DE-703 |a DE-863 |a DE-859 |a DE-739 |a DE-473 |a DE-91G |a DE-Aug4 |a DE-706 |a DE-861 |a DE-91 |a DE-384 |a DE-523 |a DE-355 |a DE-M347 |a DE-862 |a DE-898 |a DE-188 |a DE-20 |a DE-29T |a DE-1050 |a DE-19 |a DE-Po75 | ||
050 | 0 | |a QA76.76.D47 | |
082 | 0 | |a 005.1 | |
082 | 0 | |a 005.1 |2 22 | |
084 | |a ST 230 |0 (DE-625)143617: |2 rvk | ||
084 | |a ST 233 |0 (DE-625)143620: |2 rvk | ||
084 | |a DAT 320f |2 stub | ||
100 | 1 | |a Martin, Robert C. |d 1952- |e Verfasser |0 (DE-588)114440964 |4 aut | |
245 | 1 | 0 | |a Clean code |b a handbook of agile software craftsmanship |c Robert C. Martin. Michael C. Feathers ... |
264 | 1 | |a Upper Saddle River, NJ [u.a.] |b Prentice Hall |c 2009 | |
300 | |a XXIX, 431 S. |b Illustrationen, Diagramme | ||
336 | |b txt |2 rdacontent | ||
337 | |b n |2 rdamedia | ||
338 | |b nc |2 rdacarrier | ||
490 | 0 | |a Robert C. Martin series | |
500 | |a Hier auch später erschienene unveränderte Nachdrucke | ||
650 | 4 | |a Agile software development | |
650 | 4 | |a Computer software |x Reliability | |
650 | 0 | 7 | |a Fehlerbehandlung |0 (DE-588)4153834-1 |2 gnd |9 rswk-swf |
650 | 0 | 7 | |a Agile Softwareentwicklung |0 (DE-588)4806620-5 |2 gnd |9 rswk-swf |
650 | 0 | 7 | |a Zuverlässigkeit |0 (DE-588)4059245-5 |2 gnd |9 rswk-swf |
650 | 0 | 7 | |a Softwaretest |0 (DE-588)4132652-0 |2 gnd |9 rswk-swf |
650 | 0 | 7 | |a Testen |0 (DE-588)4367264-4 |2 gnd |9 rswk-swf |
650 | 0 | 7 | |a Programmcode |0 (DE-588)4734701-6 |2 gnd |9 rswk-swf |
689 | 0 | 0 | |a Programmcode |0 (DE-588)4734701-6 |D s |
689 | 0 | 1 | |a Testen |0 (DE-588)4367264-4 |D s |
689 | 0 | |5 DE-604 | |
689 | 1 | 0 | |a Agile Softwareentwicklung |0 (DE-588)4806620-5 |D s |
689 | 1 | 1 | |a Zuverlässigkeit |0 (DE-588)4059245-5 |D s |
689 | 1 | 2 | |a Fehlerbehandlung |0 (DE-588)4153834-1 |D s |
689 | 1 | 3 | |a Programmcode |0 (DE-588)4734701-6 |D s |
689 | 1 | 4 | |a Softwaretest |0 (DE-588)4132652-0 |D s |
689 | 1 | |8 1\p |5 DE-604 | |
689 | 2 | 0 | |a Programmcode |0 (DE-588)4734701-6 |D s |
689 | 2 | 1 | |a Fehlerbehandlung |0 (DE-588)4153834-1 |D s |
689 | 2 | |5 DE-604 | |
689 | 3 | 0 | |a Programmcode |0 (DE-588)4734701-6 |D s |
689 | 3 | 1 | |a Testen |0 (DE-588)4367264-4 |D s |
689 | 3 | |5 DE-604 | |
700 | 1 | |a Feathers, Michael C. |e Sonstige |0 (DE-588)135594901 |4 oth | |
856 | 4 | 2 | |m Digitalisierung UB Bayreuth |q application/pdf |u http://bvbr.bib-bvb.de:8991/F?func=service&doc_library=BVB01&local_base=BVB01&doc_number=020532719&sequence=000002&line_number=0001&func_code=DB_RECORDS&service_type=MEDIA |3 Inhaltsverzeichnis |
999 | |a oai:aleph.bib-bvb.de:BVB01-020532719 | ||
883 | 1 | |8 1\p |a cgwrk |d 20201028 |q DE-101 |u https://d-nb.info/provenance/plan#cgwrk |
Datensatz im Suchindex
DE-BY-862_location | 2000 |
---|---|
DE-BY-863_location | 1000 |
DE-BY-FWS_call_number | 2000/ST 230 M382 C6 1000/ST 233 M382 C6 |
DE-BY-FWS_katkey | 416141 |
DE-BY-FWS_media_number | 083000513872 083101284141 083101151287 |
_version_ | 1816752347068497920 |
adam_text | Contents
Foreword
................................................................................................xix
Introduction
..........................................................................................xxv
On the Cover
.......................................................................................xxix
Chapter
1:
Clean Code
........................................................................1
There Will Be Code
...............................................................................2
Bad Code
................................................................................................3
The Total Cost of Owning a Mess
........................................................4
The Grand Redesign in the Sky
..........................................................5
Attitude
...............................................................................................5
The Primal Conundrum
......................................................................6
The Art of Clean Code?
......................................................................6
What Is Clean Code?
..........................................................................7
Schools of Thought
..............................................................................12
We Are Authors
....................................................................................13
The Boy Scout Rule
.............................................................................14
Prequel
and Principles
........................................................................15
Conclusion
............................................................................................15
Bibliography
.........................................................................................15
Chapter
2:
Meaningful Names
.......................................................17
Introduction
.........................................................................................17
Use Intention-Revealing Names
.........................................................18
Avoid Disinformation
..........................................................................19
Make Meaningful Distinctions
...........................................................20
Use Pronounceable Names
..................................................................21
Use Searchable Names
........................................................................22
VII
viii Contents
Avoid Encodings
..................................................................................23
Hungarian Notation
..........................................................................23
Member Prefixes
...............................................................................24
Interfaces and Implementations
.......................................................24
Avoid Mental Mapping
.......................................................................25
Class Names
.........................................................................................25
Method Names
.....................................................................................25
Don t Be Cute
......................................................................................26
Pick One Word per Concept
...............................................................26
Don t Pun
.............................................................................................26
Use Solution Domain Names
..............................................................27
Use Problem Domain Names
..............................................................27
Add Meaningful Context
....................................................................27
Don t Add Gratuitous Context
...........................................................29
Final Words
..........................................................................................30
Chapter
3:
Functions
.........................................................................31
Small!
....................................................................................................34
Blocks and Indenting
........................................................................35
Do One Thing
.......................................................................................35
Sections within Functions
................................................................36
One Level of Abstraction per Function
.............................................36
Reading Code from Top to Bottom: The Stepdown Rule
..................37
Switch Statements
...............................................................................37
Use Descriptive Names
........................................................................39
Function Arguments
............................................................................40
Common Monadic Forms
.................................................................41
Flag Arguments
................................................................................41
Dyadic Functions
..............................................................................42
Triads
................................................................................................42
Argument Objects
.............................................................................43
Argument Lists
.................................................................................43
Verbs and Keywords
.........................................................................43
Have No Side Effects
...........................................................................44
Output Arguments
............................................................................45
Command Query Separation
.............................................................45
Contents ix
Prefer
Exceptions
to Returning Error Codes
...................................46
Extract Try/Catch Blocks
.................................................................46
Error Handling Is One Thing
............................................................47
The Error,
java
Dependency Magnet
.............................................47
Don t Repeat Yourself
.........................................................................48
Structured Programming
...................................................................48
How Do You Write Functions Like This?
..........................................49
Conclusion
............................................................................................49
SetupTeardownlncluder
.....................................................................50
Bibliography
.........................................................................................52
Chapter
4:
Comments
.......................................................................53
Comments Do Not Make Up for Bad Code
.......................................55
Explain Yourself in Code
....................................................................55
Good Comments
..................................................................................55
Legal Comments
...............................................................................55
Informative Comments
.....................................................................56
Explanation of Intent
........................................................................56
Clarification
......................................................................................57
Warning of Consequences
................................................................58
TODO
Comments
.............................................................................58
Amplification
....................................................................................59
Javadocs in Public APIs
....................................................................59
Bad Comments
....................................................................................59
Mumbling
.........................................................................................59
Redundant Comments
......................................................................60
Misleading Comments
......................................................................63
Mandated Comments
........................................................................63
Journal Comments
............................................................................63
Noise Comments
..............................................................................64
Scary Noise
......................................................................................66
Don t Use a Comment When You Can Use a
Function or a Variable
.......................................................................67
Position Markers
...............................................................................67
Closing Brace Comments
.................................................................67
Attributions and Bylines
...................................................................68
x
Contents
Commented-Out Code......................................................................68
HTML
Comments
............................................................................69
Nonlocal
Information.......................................................................69
Too Much
Information.....................................................................70
Inobvious Connection
.......................................................................70
Function Headers
..............................................................................70
Javadocs in Nonpublic Code
............................................................71
Example
............................................................................................71
Bibliography
.........................................................................................74
Chapter
5:
Formatting
......................................................................75
The Purpose of Formatting
................................................................76
Vertical Formatting
.............................................................................76
The Newspaper Metaphor
................................................................77
Vertical Openness Between Concepts
..............................................78
Vertical Density
................................................................................79
Vertical Distance
..............................................................................80
Vertical Ordering
..............................................................................84
Horizontal Formatting
........................................................................85
Horizontal Openness and Density
....................................................86
Horizontal Alignment
.......................................................................87
Indentation
........................................................................................88
Dummy Scopes
.................................................................................90
Team Rules
...........................................................................................90
Uncle Bob s Formatting Rules
............................................................90
Chapter
6:
Objects and Data Structures
....................................93
Data Abstraction
..................................................................................93
Data/Object Anti-Symmetry
..............................................................95
The Law of
Demeter............................................................................97
Train Wrecks
....................................................................................98
Hybrids
.............................................................................................99
Hiding Structure
...............................................................................99
Data Transfer Objects
.......................................................................100
Active Record
.................................................................................101
Conclusion
..........................................................................................101
Bibliography
.......................................................................................101
Contents xi
ι
Chapter
7:
Error Handling
...........................................................103
Use Exceptions Rather Than Return Codes
...................................104
Write Your Try-Catch-Finally Statement First
.......................105
Use Unchecked Exceptions
...............................................................106
Provide Context with Exceptions
.....................................................107
Define Exception Classes in Terms of a Caller s Needs
..................107
Define the Normal Flow
....................................................................109
Don t Return Null
..............................................................................110
Don t Pass Null
..................................................................................
Ill
Conclusion
..........................................................................................112
Bibliography
.......................................................................................112
Chapter
8:
Boundaries
....................................................................113
Using Third-Party Code
....................................................................114
Exploring and Learning Boundaries
...............................................116
Learning Iog4j
.................................................................................116
Learning Tests Are Better Than Free
...............................................118
Using Code That Does Not Yet Exist
................................................118
Clean Boundaries
..............................................................................120
Bibliography
.......................................................................................120
Chapter
9:
Unit Tests
.......................................................................121
The Three Laws of TDD
...................................................................122
Keeping Tests Clean
..........................................................................123
Tests Enable the -ilities
...................................................................124
Clean Tests
.........................................................................................124
Domain-Specific Testing Language
................................................127
A Dual Standard
.............................................................................127
One Assert per Test
...........................................................................130
Single Concept per Test
..................................................................131
F.I.R.S.T.
.............................................................................................132
Conclusion
..........................................................................................133
Bibliography
.......................................................................................133
Chapter
10:
Classes
..........................................................................135
Class Organization
............................................................................136
Encapsulation
.................................................................................136
xii Contents
Classes
Should Be Small!
..................................................................136
The Single Responsibility Principle
...............................................138
Cohesion
.........................................................................................140
Maintaining Cohesion Results in Many Small Classes
..................141
Organizing for Change
.....................................................................147
Isolating from Change
....................................................................149
Bibliography
.......................................................................................151
Chapter
11:
Systems
........................................................................153
How Would You Build a City?
..........................................................154
Separate Constructing a System from Using It
..............................154
Separation of Main
.........................................................................155
Factories
.........................................................................................155
Dependency Injection
.....................................................................157
Scaling Up
..........................................................................................157
Cross-Cutting Concerns
.................................................................160
Java Proxies
........................................................................................161
Pure Java AOP Frameworks
.............................................................163
Aspect
J
Aspects
.................................................................................166
Test Drive the System Architecture
..................................................166
Optimize Decision Making
...............................................................167
Use Standards Wisely, When They Add Demonstrable Value
.........168
Systems Need Domain-Specific Languages
.....................................168
Conclusion
..........................................................................................169
Bibliography
.......................................................................................169
Chapter
12:
Emergence
..................................................................171
Getting Clean via Emergent Design
................................................171
Simple Design Rule
1:
Runs All the Tests
........................................172
Simple Design Rules
2-4:
Refactoring
............................................172
No Duplication
...................................................................................173
Expressive
...........................................................................................175
Minimal Classes and Methods
.........................................................176
Conclusion
..........................................................................................176
Bibliography
.......................................................................................176
Chapter
13:
Concurrency
..............................................................177
Why Concurrency?
...........................................................................178
Myths and Misconceptions
.............................................................179
Contents xiii
Challenges
..........................................................................................180
Concurrency Defense Principles
......................................................180
Single Responsibility Principle
......................................................181
Corollary: Limit the Scope of Data
................................................181
Corollary: Use Copies of Data
.......................................................181
Corollary: Threads Should Be as Independent as Possible
............182
Know Your Library
...........................................................................182
Thread-Safe Collections
.................................................................182
Know Your Execution Models
..........................................................183
Producer-Consumer
........................................................................184
Readers-Writers
..............................................................................184
Dining Philosophers
.......................................................................184
Beware Dependencies Between Synchronized Methods
................185
Keep Synchronized Sections Small
..................................................185
Writing Correct Shut-Down Code Is Hard
.....................................186
Testing Threaded Code
.....................................................................186
Treat Spurious Failures as Candidate Threading Issues
.................187
Get Your Nonthreaded Code Working First
....................................187
Make Your Threaded Code Pluggable
............................................187
Make Your Threaded Code Tunable
................................................187
Run with More Threads Than Processors
.......................................188
Run on Different Platforms
............................................................188
Instrument Your Code to Try and Force Failures
............................188
Hand-Coded
...................................................................................189
Automated
......................................................................................189
Conclusion
..........................................................................................190
Bibliography
.......................................................................................191
Chapter
14:
Successive Refinement
............................................193
Args
Implementation
........................................................................194
How Did I Do This?
.......................................................................200
Args:
The Rough Draft
.....................................................................201
So I Stopped
...................................................................................212
On Incrementalism
.........................................................................212
String Arguments
..............................................................................214
Conclusion
.........................................................................................250
xiv Contents
Chapter
15: JUnit
Internals
..........................................................251
The JUnit
Framework
.......................................................................252
Conclusion
..........................................................................................265
Chapter
16:
Refactoring SerialDate
.........................................267
First,
Make It Work
...........................................................................268
Then Make It Right
...........................................................................270
Conclusion
..........................................................................................284
Bibliography
.......................................................................................284
Chapter
17:
Smells and Heuristics
.............................................285
Comments
..........................................................................................286
Cl: Inappropriate Information
.......................................................286
C2: Obsolete Comment
...................................................................286
C3: Redundant Comment
...............................................................286
C4: Poorly Written Comment
..........................................................287
C5: Commented-Out Code
.............................................................287
Environment
......................................................................................287
El: Build Requires More Than One Step
........................................287
E2: Tests Require More Than One Step
..........................................287
Functions
............................................................................................288
Fl: Too Many Arguments
................................................................288
F2: Output Arguments
....................................................................288
F3: Flag Arguments
........................................................................288
F4: Dead Function
.........................................................................288
General
...............................................................................................288
Gl: Multiple Languages in One Source File
..................................288
G2: Obvious Behavior Is Unimplemented
......................................288
Gì:
Incorrect Behavior at the Boundaries
.....................................289
G4: Overridden Safeties
.................................................................289
G5: Duplication
..............................................................................289
G6: Code at Wrong Level of Abstraction
........................................290
G7: Base Classes Depending on Their Derivatives
.......................291
G8: Too Much Information
.............................................................291
G9: Dead Code....
...........................................................................292
GIO: Vertical Separation
................................................................292
Gil: Inconsistency
.........................................................................292
GH:
Clutter
....................................................................................293
Contents xv
G13:
Artificial
Coupling
.................................................................293
GU:
Feature Envy
..........................................................................293
GÌ
5:
Selector Arguments
................................................................294
G16: Obscured Intent
.....................................................................295
G17: Misplaced Responsibility
.......................................................295
G18: Inappropriate Static
...............................................................296
G19: Use Explanatory Variables
....................................................296
G20: Function Names Should Say What They Do
..........................297
G21: Understand the Algorithm
.....................................................297
G22: Make Logical Dependencies Physical
...................................298
G23: Prefer Polymorphism to If/Else or Switch/Case
....................299
G24: Follow Standard Conventions
................................................299
G25: Replace Magic Numbers with Named Constants
..................300
G26: Be Precise
..............................................................................301
G27: Structure over Convention
.....................................................301
G28: Encapsulate Conditionals
.....................................................301
G29: Avoid Negative Conditionals
.................................................302
G30: Functions Should Do One Thing
...........................................302
G31: Hidden Temporal Couplings
..................................................302
G32: Don t Be Arbitrary
.................................................................303
G33: Encapsulate Boundary Conditions
........................................304
G34: Functions Should Descend Only
One Level of Abstraction
................................................................304
G35: Keep Configurable Data at High Levels
................................306
G36: Avoid Transitive Navigation
...................................................306
Java
.....................................................................................................307
Jl: Avoid Long Import Lists by Using Wildcards
............................307
J2: Don t Inherit Constants
............................................................307
J3: Constants versus Enums
...........................................................308
Names
.................................................................................................309
N1:
Choose Descriptive Names
......................................................309
N2:
Choose Names at the Appropriate Level of Abstraction
..........311
N3:
Use Standard Nomenclature Where Possible
...........................311
N4:
Unambiguous Names
...............................................................312
N5:
Use Long Names for Long Scopes
...........................................312
N6:
Avoid Encodings
......................................................................312
N7:
Names Should Describe Side-Effects
......................................313
xvi Contents
Tests....................................................................................................313
Tl:
Insufficient
Tests.......................................................................313
Т2:
Use a Coverage Tool!
...............................................................313
T3: Don t Skip Trivial Tests
............................................................313
Ύ4:Αη
Ignored Test Is a Question about an Ambiguity
..................313
T5: Test Boundary Conditions
........................................................314
Τ
6:
Exhaustively Test Near Bugs
....................................................314
T7: Patterns of Failure Are Revealing
............................................314
T8: Test Coverage Patterns Can Be Revealing
...............................314
T9: Tests Should Be Fast
.................................................................314
Conclusion
..........................................................................................314
Bibliography
.......................................................................................315
Appendix A: Concurrency II
.........................................................317
Client/Server Example
......................................................................317
The Server
......................................................................................317
Adding Threading
...........................................................................319
Server Observations
.......................................................................319
Conclusion
......................................................................................321
Possible Paths of Execution
..............................................................321
Number of Paths
.............................................................................322
Digging Deeper
..............................................................................323
Conclusion
......................................................................................326
Knowing Your Library
......................................................................326
Executor Framework
......................................................................326
Nonblocking Solutions
...................................................................327
Nonthread-Safe Classes
..................................................................328
Dependencies Between Methods
Can Break Concurrent Code
...........................................................329
Tolerate the Failure
.........................................................................330
Client-Based Locking
.....................................................................330
Server-Based Locking
....................................................................332
Increasing Throughput
.....................................................................333
Single-Thread Calculation of Throughput
......................................334
Multithread Calculation of Throughput
..........................................335
Deadlock
.............................................................................................335
Mutual Exclusion
...........................................................................336
Lock
&
Wait
...................................................................................337
Contents xvii
No Preemption
................................................................................337
Circular Wait
..................................................................................337
Breaking Mutual Exclusion
............................................................337
Breaking Lock
&
Wait
....................................................................338
Breaking Preemption
......................................................................338
Breaking Circular Wait
...................................................................338
Testing Multithreaded Code
.............................................................339
Tool Support for Testing Thread-Based Code
................................342
Conclusion
..........................................................................................342
Tutorial: Full Code Examples
..........................................................343
Client/Server Nonthreaded
.............................................................343
Client/Server Using Threads
..........................................................346
Appendix B: org.jfree.date.SerialDate
......................................349
Appendix C: Cross References of Heuristics
...........................409
Epilogue
................................................................................................411
Index
......................................................................................................413
|
any_adam_object | 1 |
author | Martin, Robert C. 1952- |
author_GND | (DE-588)114440964 (DE-588)135594901 |
author_facet | Martin, Robert C. 1952- |
author_role | aut |
author_sort | Martin, Robert C. 1952- |
author_variant | r c m rc rcm |
building | Verbundindex |
bvnumber | BV036612495 |
callnumber-first | Q - Science |
callnumber-label | QA76 |
callnumber-raw | QA76.76.D47 |
callnumber-search | QA76.76.D47 |
callnumber-sort | QA 276.76 D47 |
callnumber-subject | QA - Mathematics |
classification_rvk | ST 230 ST 233 |
classification_tum | DAT 320f |
ctrlnum | (OCoLC)605917912 (DE-599)BVBBV036612495 |
dewey-full | 005.1 |
dewey-hundreds | 000 - Computer science, information, general works |
dewey-ones | 005 - Computer programming, programs, data, security |
dewey-raw | 005.1 |
dewey-search | 005.1 |
dewey-sort | 15.1 |
dewey-tens | 000 - Computer science, information, general works |
discipline | Informatik |
format | Book |
fullrecord | <?xml version="1.0" encoding="UTF-8"?><collection xmlns="http://www.loc.gov/MARC21/slim"><record><leader>02930nam a2200673 c 4500</leader><controlfield tag="001">BV036612495</controlfield><controlfield tag="003">DE-604</controlfield><controlfield tag="005">20220811 </controlfield><controlfield tag="007">t</controlfield><controlfield tag="008">100811s2009 a||| |||| 00||| eng d</controlfield><datafield tag="020" ind1=" " ind2=" "><subfield code="a">9780132350884</subfield><subfield code="9">978-0-13-235088-4</subfield></datafield><datafield tag="020" ind1=" " ind2=" "><subfield code="a">0132350882</subfield><subfield code="c">pbk. : alk. paper</subfield><subfield code="9">0-13-235088-2</subfield></datafield><datafield tag="035" ind1=" " ind2=" "><subfield code="a">(OCoLC)605917912</subfield></datafield><datafield tag="035" ind1=" " ind2=" "><subfield code="a">(DE-599)BVBBV036612495</subfield></datafield><datafield tag="040" ind1=" " ind2=" "><subfield code="a">DE-604</subfield><subfield code="b">ger</subfield><subfield code="e">aacr</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><subfield code="a">DE-703</subfield><subfield code="a">DE-863</subfield><subfield code="a">DE-859</subfield><subfield code="a">DE-739</subfield><subfield code="a">DE-473</subfield><subfield code="a">DE-91G</subfield><subfield code="a">DE-Aug4</subfield><subfield code="a">DE-706</subfield><subfield code="a">DE-861</subfield><subfield code="a">DE-91</subfield><subfield code="a">DE-384</subfield><subfield code="a">DE-523</subfield><subfield code="a">DE-355</subfield><subfield code="a">DE-M347</subfield><subfield code="a">DE-862</subfield><subfield code="a">DE-898</subfield><subfield code="a">DE-188</subfield><subfield code="a">DE-20</subfield><subfield code="a">DE-29T</subfield><subfield code="a">DE-1050</subfield><subfield code="a">DE-19</subfield><subfield code="a">DE-Po75</subfield></datafield><datafield tag="050" ind1=" " ind2="0"><subfield code="a">QA76.76.D47</subfield></datafield><datafield tag="082" ind1="0" ind2=" "><subfield code="a">005.1</subfield></datafield><datafield tag="082" ind1="0" ind2=" "><subfield code="a">005.1</subfield><subfield code="2">22</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="084" ind1=" " ind2=" "><subfield code="a">ST 233</subfield><subfield code="0">(DE-625)143620:</subfield><subfield code="2">rvk</subfield></datafield><datafield tag="084" ind1=" " ind2=" "><subfield code="a">DAT 320f</subfield><subfield code="2">stub</subfield></datafield><datafield tag="100" ind1="1" ind2=" "><subfield code="a">Martin, Robert C.</subfield><subfield code="d">1952-</subfield><subfield code="e">Verfasser</subfield><subfield code="0">(DE-588)114440964</subfield><subfield code="4">aut</subfield></datafield><datafield tag="245" ind1="1" ind2="0"><subfield code="a">Clean code</subfield><subfield code="b">a handbook of agile software craftsmanship</subfield><subfield code="c">Robert C. Martin. Michael C. Feathers ...</subfield></datafield><datafield tag="264" ind1=" " ind2="1"><subfield code="a">Upper Saddle River, NJ [u.a.]</subfield><subfield code="b">Prentice Hall</subfield><subfield code="c">2009</subfield></datafield><datafield tag="300" ind1=" " ind2=" "><subfield code="a">XXIX, 431 S.</subfield><subfield code="b">Illustrationen, Diagramme</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">Robert C. Martin series</subfield></datafield><datafield tag="500" ind1=" " ind2=" "><subfield code="a">Hier auch später erschienene unveränderte Nachdrucke</subfield></datafield><datafield tag="650" ind1=" " ind2="4"><subfield code="a">Agile software development</subfield></datafield><datafield tag="650" ind1=" " ind2="4"><subfield code="a">Computer software</subfield><subfield code="x">Reliability</subfield></datafield><datafield tag="650" ind1="0" ind2="7"><subfield code="a">Fehlerbehandlung</subfield><subfield code="0">(DE-588)4153834-1</subfield><subfield code="2">gnd</subfield><subfield code="9">rswk-swf</subfield></datafield><datafield tag="650" ind1="0" ind2="7"><subfield code="a">Agile Softwareentwicklung</subfield><subfield code="0">(DE-588)4806620-5</subfield><subfield code="2">gnd</subfield><subfield code="9">rswk-swf</subfield></datafield><datafield tag="650" ind1="0" ind2="7"><subfield code="a">Zuverlässigkeit</subfield><subfield code="0">(DE-588)4059245-5</subfield><subfield code="2">gnd</subfield><subfield code="9">rswk-swf</subfield></datafield><datafield tag="650" ind1="0" ind2="7"><subfield code="a">Softwaretest</subfield><subfield code="0">(DE-588)4132652-0</subfield><subfield code="2">gnd</subfield><subfield code="9">rswk-swf</subfield></datafield><datafield tag="650" ind1="0" ind2="7"><subfield code="a">Testen</subfield><subfield code="0">(DE-588)4367264-4</subfield><subfield code="2">gnd</subfield><subfield code="9">rswk-swf</subfield></datafield><datafield tag="650" ind1="0" ind2="7"><subfield code="a">Programmcode</subfield><subfield code="0">(DE-588)4734701-6</subfield><subfield code="2">gnd</subfield><subfield code="9">rswk-swf</subfield></datafield><datafield tag="689" ind1="0" ind2="0"><subfield code="a">Programmcode</subfield><subfield code="0">(DE-588)4734701-6</subfield><subfield code="D">s</subfield></datafield><datafield tag="689" ind1="0" ind2="1"><subfield code="a">Testen</subfield><subfield code="0">(DE-588)4367264-4</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">Agile Softwareentwicklung</subfield><subfield code="0">(DE-588)4806620-5</subfield><subfield code="D">s</subfield></datafield><datafield tag="689" ind1="1" ind2="1"><subfield code="a">Zuverlässigkeit</subfield><subfield code="0">(DE-588)4059245-5</subfield><subfield code="D">s</subfield></datafield><datafield tag="689" ind1="1" ind2="2"><subfield code="a">Fehlerbehandlung</subfield><subfield code="0">(DE-588)4153834-1</subfield><subfield code="D">s</subfield></datafield><datafield tag="689" ind1="1" ind2="3"><subfield code="a">Programmcode</subfield><subfield code="0">(DE-588)4734701-6</subfield><subfield code="D">s</subfield></datafield><datafield tag="689" ind1="1" ind2="4"><subfield code="a">Softwaretest</subfield><subfield code="0">(DE-588)4132652-0</subfield><subfield code="D">s</subfield></datafield><datafield tag="689" ind1="1" ind2=" "><subfield code="8">1\p</subfield><subfield code="5">DE-604</subfield></datafield><datafield tag="689" ind1="2" ind2="0"><subfield code="a">Programmcode</subfield><subfield code="0">(DE-588)4734701-6</subfield><subfield code="D">s</subfield></datafield><datafield tag="689" ind1="2" ind2="1"><subfield code="a">Fehlerbehandlung</subfield><subfield code="0">(DE-588)4153834-1</subfield><subfield code="D">s</subfield></datafield><datafield tag="689" ind1="2" ind2=" "><subfield code="5">DE-604</subfield></datafield><datafield tag="689" ind1="3" ind2="0"><subfield code="a">Programmcode</subfield><subfield code="0">(DE-588)4734701-6</subfield><subfield code="D">s</subfield></datafield><datafield tag="689" ind1="3" ind2="1"><subfield code="a">Testen</subfield><subfield code="0">(DE-588)4367264-4</subfield><subfield code="D">s</subfield></datafield><datafield tag="689" ind1="3" ind2=" "><subfield code="5">DE-604</subfield></datafield><datafield tag="700" ind1="1" ind2=" "><subfield code="a">Feathers, Michael C.</subfield><subfield code="e">Sonstige</subfield><subfield code="0">(DE-588)135594901</subfield><subfield code="4">oth</subfield></datafield><datafield tag="856" ind1="4" ind2="2"><subfield code="m">Digitalisierung UB Bayreuth</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=020532719&sequence=000002&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-020532719</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></record></collection> |
id | DE-604.BV036612495 |
illustrated | Illustrated |
indexdate | 2024-11-26T04:00:52Z |
institution | BVB |
isbn | 9780132350884 0132350882 |
language | English |
oai_aleph_id | oai:aleph.bib-bvb.de:BVB01-020532719 |
oclc_num | 605917912 |
open_access_boolean | |
owner | DE-83 DE-703 DE-863 DE-BY-FWS DE-859 DE-739 DE-473 DE-BY-UBG DE-91G DE-BY-TUM DE-Aug4 DE-706 DE-861 DE-91 DE-BY-TUM DE-384 DE-523 DE-355 DE-BY-UBR DE-M347 DE-862 DE-BY-FWS DE-898 DE-BY-UBR DE-188 DE-20 DE-29T DE-1050 DE-19 DE-BY-UBM DE-Po75 |
owner_facet | DE-83 DE-703 DE-863 DE-BY-FWS DE-859 DE-739 DE-473 DE-BY-UBG DE-91G DE-BY-TUM DE-Aug4 DE-706 DE-861 DE-91 DE-BY-TUM DE-384 DE-523 DE-355 DE-BY-UBR DE-M347 DE-862 DE-BY-FWS DE-898 DE-BY-UBR DE-188 DE-20 DE-29T DE-1050 DE-19 DE-BY-UBM DE-Po75 |
physical | XXIX, 431 S. Illustrationen, Diagramme |
publishDate | 2009 |
publishDateSearch | 2009 |
publishDateSort | 2009 |
publisher | Prentice Hall |
record_format | marc |
series2 | Robert C. Martin series |
spellingShingle | Martin, Robert C. 1952- Clean code a handbook of agile software craftsmanship Agile software development Computer software Reliability Fehlerbehandlung (DE-588)4153834-1 gnd Agile Softwareentwicklung (DE-588)4806620-5 gnd Zuverlässigkeit (DE-588)4059245-5 gnd Softwaretest (DE-588)4132652-0 gnd Testen (DE-588)4367264-4 gnd Programmcode (DE-588)4734701-6 gnd |
subject_GND | (DE-588)4153834-1 (DE-588)4806620-5 (DE-588)4059245-5 (DE-588)4132652-0 (DE-588)4367264-4 (DE-588)4734701-6 |
title | Clean code a handbook of agile software craftsmanship |
title_auth | Clean code a handbook of agile software craftsmanship |
title_exact_search | Clean code a handbook of agile software craftsmanship |
title_full | Clean code a handbook of agile software craftsmanship Robert C. Martin. Michael C. Feathers ... |
title_fullStr | Clean code a handbook of agile software craftsmanship Robert C. Martin. Michael C. Feathers ... |
title_full_unstemmed | Clean code a handbook of agile software craftsmanship Robert C. Martin. Michael C. Feathers ... |
title_short | Clean code |
title_sort | clean code a handbook of agile software craftsmanship |
title_sub | a handbook of agile software craftsmanship |
topic | Agile software development Computer software Reliability Fehlerbehandlung (DE-588)4153834-1 gnd Agile Softwareentwicklung (DE-588)4806620-5 gnd Zuverlässigkeit (DE-588)4059245-5 gnd Softwaretest (DE-588)4132652-0 gnd Testen (DE-588)4367264-4 gnd Programmcode (DE-588)4734701-6 gnd |
topic_facet | Agile software development Computer software Reliability Fehlerbehandlung Agile Softwareentwicklung Zuverlässigkeit Softwaretest Testen Programmcode |
url | http://bvbr.bib-bvb.de:8991/F?func=service&doc_library=BVB01&local_base=BVB01&doc_number=020532719&sequence=000002&line_number=0001&func_code=DB_RECORDS&service_type=MEDIA |
work_keys_str_mv | AT martinrobertc cleancodeahandbookofagilesoftwarecraftsmanship AT feathersmichaelc cleancodeahandbookofagilesoftwarecraftsmanship |
Inhaltsverzeichnis
Sonderstandort Fakultät
Signatur: |
2000 ST 230 M382 C6 |
---|---|
Exemplar 1 | nicht ausleihbar Checked out – Rückgabe bis: 31.12.2099 Vormerken |
THWS Würzburg Zentralbibliothek Lesesaal
Signatur: |
1000 ST 233 M382 C6 |
---|---|
Exemplar 1 | ausleihbar Checked out – Rückgabe bis: 07.11.2025 Vormerken |
Exemplar 2 | ausleihbar Checked out – Rückgabe bis: 26.06.2025 Vormerken |