|
4 | 4 |
|
5 | 5 | 1. [Introduction](#introduction)
|
6 | 6 | 2. [Variables](#variables)
|
| 7 | + * [Use meaningful and pronounceable variable names](#use-meaningful-and-pronounceable-variable-names) |
| 8 | + * [Use the same vocabulary for the same type of variable](#use-the-same-vocabulary-for-the-same-type-of-variable) |
| 9 | + * [Use searchable names (part 1)](#use-searchable-names-part-1) |
| 10 | + * [Use searchable names (part 2)](#use-searchable-names-part-2) |
| 11 | + * [Use explanatory variables](#use-explanatory-variables) |
| 12 | + * [Avoid Mental Mapping](#avoid-mental-mapping) |
| 13 | + * [Don't add unneeded context](#dont-add-unneeded-context) |
| 14 | + * [Use default arguments instead of short circuiting or conditionals](#use-default-arguments-instead-of-short-circuiting-or-conditionals) |
7 | 15 | 3. [Functions](#functions)
|
| 16 | + * [Function arguments (2 or fewer ideally)](#function-arguments-2-or-fewer-ideally) |
| 17 | + * [Functions should do one thing](#functions-should-do-one-thing) |
| 18 | + * [Function names should say what they do](#function-names-should-say-what-they-do) |
| 19 | + * [Functions should only be one level of abstraction](#functions-should-only-be-one-level-of-abstraction) |
| 20 | + * [Don't use flags as function parameters](#dont-use-flags-as-function-parameters) |
| 21 | + * [Avoid Side Effects](#avoid-side-effects) |
| 22 | + * [Don't write to global functions](#dont-write-to-global-functions) |
| 23 | + * [Don't use a Singleton pattern](#dont-use-a-singleton-pattern) |
| 24 | + * [Encapsulate conditionals](#encapsulate-conditionals) |
| 25 | + * [Avoid negative conditionals](#avoid-negative-conditionals) |
| 26 | + * [Avoid conditionals](#avoid-conditionals) |
| 27 | + * [Avoid type-checking (part 1)](#avoid-type-checking-part-1) |
| 28 | + * [Avoid type-checking (part 2)](#avoid-type-checking-part-2) |
| 29 | + * [Remove dead code](#remove-dead-code) |
8 | 30 | 4. [Objects and Data Structures](#objects-and-data-structures)
|
| 31 | + * [Use getters and setters](#use-getters-and-setters) |
| 32 | + * [Make objects have private/protected members](#make-objects-have-privateprotected-members) |
9 | 33 | 5. [Classes](#classes)
|
10 |
| - 1. [S: Single Responsibility Principle (SRP)](#single-responsibility-principle-srp) |
11 |
| - 2. [O: Open/Closed Principle (OCP)](#openclosed-principle-ocp) |
12 |
| - 3. [L: Liskov Substitution Principle (LSP)](#liskov-substitution-principle-lsp) |
13 |
| - 4. [I: Interface Segregation Principle (ISP)](#interface-segregation-principle-isp) |
14 |
| - 5. [D: Dependency Inversion Principle (DIP)](#dependency-inversion-principle-dip) |
| 34 | + * [S: Single Responsibility Principle (SRP)](#single-responsibility-principle-srp) |
| 35 | + * [O: Open/Closed Principle (OCP)](#openclosed-principle-ocp) |
| 36 | + * [L: Liskov Substitution Principle (LSP)](#liskov-substitution-principle-lsp) |
| 37 | + * [I: Interface Segregation Principle (ISP)](#interface-segregation-principle-isp) |
| 38 | + * [D: Dependency Inversion Principle (DIP)](#dependency-inversion-principle-dip) |
| 39 | + * [Use method chaining](#use-method-chaining) |
| 40 | + * [Prefer composition over inheritance](#prefer-composition-over-inheritance) |
15 | 41 | 6. [Don’t repeat yourself (DRY)](#dont-repeat-yourself-dry)
|
16 | 42 | 7. [Translations](#translations)
|
17 | 43 |
|
|
0 commit comments