Code Complete Study Note Part One
Code Complete study notes.
question-definition prerequisites
- production vision
- vision statement
- mission statement
- production definition
- problem definition
requirements prerequisites
- requirement development
- requirements analysis
- analysis
- requirements definition
- software requirements
- specification
- functional specification
handle requirements change
- recheck the quality of specification
- make sure the costs of change requirements known by everyone
- try evolutionary prototyping method
- drop the project
check list of specification
for functions
- inputs and outputs: format, accuracy,
- Interface
- protocols
- data
for quality
- speed
- security
- cost
- reliability
- maintainability
- memory or disk minimum
- definition of success and failure
Architecture prerequisites
- system Architecture
- high-level design
- top-level design
- Architecture specification
Typical Architecture Components
- Program Organization : building blocks
- Major Classes
- Data Design
- Business Rules
- User interface design
- Resource Management
- Security
- Performance
- Scalability
- Interoperability
- Internationalisation/ Localisation
- IO - reading scheme: look-ahead vs look-behind vs just-in-time
- Error Processing
- Fault Tolerance
Good habits
- modularization
- unit test TDD
- planning before coding
- search before ask, ask questions
- record everything after a task finished
- do one thing and do it well
- KISS, DRY
- Single Level of Abstraction Principle
- Always leave the code cleaner than you found it
- Easy to read