15 lines
1.3 KiB
Text
15 lines
1.3 KiB
Text
Code Complete by Steve McConnell is a practical guide to software construction.
|
|
Variable naming is crucial: a name should describe what the variable represents not the programmer.
|
|
Good names are specific pronounceable and searchable avoiding ambiguous abbreviations.
|
|
The primary goal of the software designer is to minimize complexity for human understanding.
|
|
Structured programming uses sequence selection and iteration as the fundamental control flow constructs.
|
|
Information hiding is the principle of encapsulating design decisions that are likely to change.
|
|
Design patterns are recurring solutions to common software design problems.
|
|
Coupling measures how dependent modules are on each other low coupling is desirable.
|
|
Cohesion measures how related the elements within a module are high cohesion is desirable.
|
|
Defensive programming anticipates errors and handles them gracefully rather than crashing.
|
|
Assertions document assumptions in code and catch bugs during development.
|
|
The cost of fixing defects increases exponentially the later in the development cycle they are found.
|
|
Code reviews are one of the most cost effective methods for finding defects.
|
|
Testing can reveal the presence of bugs but not their absence as Dijkstra noted.
|
|
Refactoring improves code structure without changing its external behavior performed in small steps.
|