Best Coding Practices

From Coder Merlin
Within these castle walls be forged Mavens of Computer Science ...
— Merlin, The Coder


Best PracticeHintIcon.png
πŸ‘ #249

Flowcharts are your friend

Best PracticeHintIcon.png
πŸ‘ #657

Use appropriate capitalization

  • Names of types and protocols are UpperCamelCase (Pascal case)
  • Everything else is lowerCamelCase
Best PracticeHintIcon.png
πŸ‘ #359

Clarity is more important than brevity

Best PracticeHintIcon.png
πŸ‘ #563

Preconditions are your friend

  • Include sufficient information for the message to be useful
Best PracticeHintIcon.png
πŸ‘ #174

Great functions exhibit these three vital properties:

  • Easy to read and comprehend
  • Easy to debug
  • Easy to modify to solve a variation of the original task[1]
Best PracticeHintIcon.png
πŸ‘ #057

No global variables

  • Global variables are evil
Best PracticeHintIcon.png
πŸ‘ #207

Always use appropriate and descriptive variable names

  • nouns are usually most appropriate
Best PracticeHintIcon.png
πŸ‘ #208

Always use appropriate and descriptive function names

  • verbs are usually most appropriate
Best PracticeHintIcon.png
πŸ‘ #394

Orderly exits from functions

  • In general, avoid mid-function exits
Best PracticeHintIcon.png
πŸ‘ #444

Avoid repetition

  • DRY: Do Not Repeat Yourself
  • DIE: Duplication is Evil
Best PracticeHintIcon.png
πŸ‘ #502

Scope appropriately

  • Scope is no wider than absolutely necessary
Best PracticeHintIcon.png
πŸ‘ #523

Loop appropriately

  • Correct loop type
  • In general, avoid mid-loop exits
Best PracticeHintIcon.png
πŸ‘ #029

Always use appropriate indentation

  • Helpful whitespace
  • Appropriate placement of closing braces and parentheses
Best PracticeHintIcon.png
πŸ‘ #074

Use comments to advantage others

  • Deliberate and helpful comments
  • Avoid "obvious" comments
Best PracticeHintIcon.png
πŸ‘ #617

Nest appropriately

  • Avoid deep nesting
  • Avoid inappropriate nesting of functions
  • Indent correctly according to nested level
Best PracticeHintIcon.png
πŸ‘ #831

Limit line length

Best PracticeHintIcon.png
πŸ‘ #907

Organize files appropriately

  • Generally one class per file
Best PracticeHintIcon.png
πŸ‘ #947

Hardcode only when there is no other choice

  • All other values should be:
    • calculated, or
    • retrieved from configuration
Best PracticeHintIcon.png
πŸ‘ #959

Do not place extraneous files into source control

  • Exclude all build artifacts
  • Exclude any "backup" files (e.g. main.swift~)

Exercises[edit]

ExercisesExercisesIcon.png
  •  M1297-28  Complete  Merlin Mission Manager  Mission M1297-28.


References[edit]