Changes between Version 2 and Version 3 of ControlSystems/SoftwareTeam/CodingConventions


Ignore:
Timestamp:
Oct 31, 2019, 9:01:59 PM (6 years ago)
Author:
David Albert
Comment:

--

Legend:

Unmodified
Added
Removed
Modified
  • ControlSystems/SoftwareTeam/CodingConventions

    v2 v3  
    1 = Coding Conventions =
    2  * shift-ctrl-F (auto-format)
     1  * Design from the top down, build from the bottom up
     2
     3== Coding Conventions ==
     4 * Never put cleverness before clarity
     5     * when choosing between a clever algorithm and one that will do the job and is easier to understand, use the latter.
     6 * Understand [https://www.agile-code.com/blog/cohesion-vs-coupling-separate-concerns/ coupling vs. cohesion] deeply.  These are the two most important concepts in software engineering, everything else is an attempt to increase cohesion and reduce coupling.  Every block of code (class or function) should be a stand-alone black box with cleanly defined inputs and outputs.  You should not need several files open to understand how one method works.
     7 * Shift-Alt-F (auto-format)
    38 * Make comments often about WHY, not what, you are doing
    49 * Javadocs for EVERY SINGLE METHOD you have made
     
    611   * Why it is happening
    712   * Define each parameter
     13 * document your code thoroughly so someone else can read and understand it.  Good code contains at least as many lines of ''good'' comments as of executable code...no matter how readable you think your code is.
     14 * clean up your code before you check it in. 
     15   * Don't leave gobs of test code and debug print statements in your code.  When you make your code available to others, that should all be removed and the code
     16should be clean and readable.
     17
     18== Software Culture ==
     19  * Read [https://www.joelonsoftware.com/ Joel on Software]
     20  * Tool wars are for noobs
     21  * Appreciate [https://stackoverflow.com/questions/84556/whats-your-favorite-programmer-cartoon programmer humor]