Characteristics of GREAT Engineering (Software and Hardware)

 

  1. Original (not derivative)
  2. Opening documentation: Purpose, Author, Reference, Date, Version, Notes, etc. (edit Bareminimum.ino sketch for efficiency)
  3. Formatted
  4. Modularity: highly cohesive; loosely coupled
  5. Hieracrchical Design (Scalable): highly-leveragd code, threaded from global/class constants and variables, ensures a robust response to changing project task size
  6. Scope: priority for local variable declarations over global
  7. Well-named, consistent, identifiers
  8. Data types: memory sizes (byte, int, long, single, float, etc.), primitive vs composite (arrays, structs, etc.), all correctly initialized
  9. Efficient
  10. Application Specific: In this case: external interrupt
  11. Well-documented throughout
  12. Easy to read (no attempt to be cryptic aka, show off)
  13. Keep statements lengths to the width of your IDE (JG)
  14. Any others ?

Why Everyone Should Learn to Code