Difference between revisions of "Best Coding Practices"
From Coder Merlin
Line 1: | Line 1: | ||
{{BestPractice| | {{BestPractice|249| | ||
Flowcharts are your friend}} | Flowcharts are your friend}} | ||
Line 28: | Line 28: | ||
}} | }} | ||
{{BestPractice|057| | |||
* | No global variables | ||
* Global variables are evil | |||
}} | |||
{{BestPractice|207| | |||
Always use appropriate and descriptive variable names | |||
* ''nouns'' are usually most appropriate | |||
}} | |||
{{BestPractice|208| | |||
Always use appropriate and descriptive function names | |||
* ''verbs'' are usually most appropriate | |||
}} | |||
{{BestPractice|394| | |||
Orderly exits from functions | |||
* In general, avoid mid-function exits | |||
}} | |||
{{BestPractice|444| | |||
Avoid repetition | |||
* DRY: Do Not Repeat Yourself | |||
* DIE: Duplication is Evil | |||
}} | |||
{{BestPractice|502| | |||
Scope appropriately | |||
* Scope is no wider than absolutely necessary | |||
}} | |||
{{BestPractice|523| | |||
Loop appropriately | |||
* Correct loop type | |||
* In general, avoid mid-loop exits | |||
}} | |||
{{BestPractice|029| | |||
Always use appropriate indentation | |||
* Helpful whitespace | * Helpful whitespace | ||
* Appropriate placement of closing braces and parentheses | * Appropriate placement of closing braces and parentheses | ||
}} | |||
{{BestPractice|074| | |||
Use comments to advantage others | |||
* Deliberate and helpful comments | * Deliberate and helpful comments | ||
* Avoid "obvious" comments | |||
}} | |||
{{BestPractice|617| | |||
Nest appropriately | |||
* Avoid deep nesting | * Avoid deep nesting | ||
* Avoid inappropriate nesting of functions | * Avoid inappropriate nesting of functions | ||
* Limit line length | * Indent correctly according to nested level | ||
}} | |||
* | {{BestPractice|831| | ||
Limit line length | |||
}} | |||
{{BestPractice|907| | |||
Organize files appropriately | |||
* Generally one class per file | |||
}} | |||
{{BestPractice|947| | |||
Hardcode only when there is no other choice | |||
* All other values should be: | |||
** calculated, or | |||
** retrieved from configuration | |||
}} | |||
== Exercises == | == Exercises == |
Revision as of 18:17, 13 November 2022
Within these castle walls be forged Mavens of Computer Science ...
— Merlin, The Coder
Best Practice
👍 #249
Flowcharts are your friend
Best Practice
👍 #657
Use appropriate capitalization
- Names of types and protocols are UpperCamelCase (Pascal case)
- Everything else is lowerCamelCase
Best Practice
👍 #359
Clarity is more important than brevity
Best Practice
👍 #563
Preconditions are your friend
- Include sufficient information for the message to be useful
Best Practice
👍 #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
Best Practice
👍 #057
No global variables
- Global variables are evil
Best Practice
👍 #207
Always use appropriate and descriptive variable names
- nouns are usually most appropriate
Best Practice
👍 #208
Always use appropriate and descriptive function names
- verbs are usually most appropriate
Best Practice
👍 #394
Orderly exits from functions
- In general, avoid mid-function exits
Best Practice
👍 #444
Avoid repetition
- DRY: Do Not Repeat Yourself
- DIE: Duplication is Evil
Best Practice
👍 #502
Scope appropriately
- Scope is no wider than absolutely necessary
Best Practice
👍 #523
Loop appropriately
- Correct loop type
- In general, avoid mid-loop exits
Best Practice
👍 #029
Always use appropriate indentation
- Helpful whitespace
- Appropriate placement of closing braces and parentheses
Best Practice
👍 #074
Use comments to advantage others
- Deliberate and helpful comments
- Avoid "obvious" comments
Best Practice
👍 #617
Nest appropriately
- Avoid deep nesting
- Avoid inappropriate nesting of functions
- Indent correctly according to nested level
Best Practice
👍 #831
Limit line length
Best Practice
👍 #907
Organize files appropriately
- Generally one class per file
Best Practice
👍 #947
Hardcode only when there is no other choice
- All other values should be:
- calculated, or
- retrieved from configuration
Exercises[edit]
Exercises
- M1297-28 Complete Merlin Mission Manager Mission M1297-28.
References[edit]
- API Design Guidelines (Swift Documentation)
- API Style Guidelines (Google Documentation)