Jerry's blog

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