@@ -6,6 +6,81 @@ Author: Robert C. Martin
66
77![ clean_code] ( clean_code.jpeg )
88
9+ - [ Clean Code: A Handbook of Agile Software Craftsmanship] ( #clean-code-a-handbook-of-agile-software-craftsmanship )
10+ - [ Ch1. Clean Code] ( #ch1-clean-code )
11+ - [ Reading vs. Writing] ( #reading-vs-writing )
12+ - [ Ch2. Meaningful Names] ( #ch2-meaningful-names )
13+ - [ Use intention-revealing names] ( #use-intention-revealing-names )
14+ - [ Avoid disinformation] ( #avoid-disinformation )
15+ - [ Make meaningful distinctions] ( #make-meaningful-distinctions )
16+ - [ Use pronounceable names] ( #use-pronounceable-names )
17+ - [ Use searchable names] ( #use-searchable-names )
18+ - [ Avoid encodings] ( #avoid-encodings )
19+ - [ Avoid mental mapping] ( #avoid-mental-mapping )
20+ - [ Class names] ( #class-names )
21+ - [ Method names] ( #method-names )
22+ - [ Don't be cute] ( #dont-be-cute )
23+ - [ Pick one word per concept] ( #pick-one-word-per-concept )
24+ - [ Don't pun] ( #dont-pun )
25+ - [ Use solution domain names] ( #use-solution-domain-names )
26+ - [ Use problem domain names] ( #use-problem-domain-names )
27+ - [ Add meaningful context] ( #add-meaningful-context )
28+ - [ Don't add gratuitous context] ( #dont-add-gratuitous-context )
29+ - [ Ch3. Functions] ( #ch3-functions )
30+ - [ Small] ( #small )
31+ - [ Blocks and Indenting] ( #blocks-and-indenting )
32+ - [ Do one thing] ( #do-one-thing )
33+ - [ One level of abstraction per function] ( #one-level-of-abstraction-per-function )
34+ - [ The Stepdown rule] ( #the-stepdown-rule )
35+ - [ Use descriptive names] ( #use-descriptive-names )
36+ - [ Function arguments] ( #function-arguments )
37+ - [ How do you write functions like this?] ( #how-do-you-write-functions-like-this )
38+ - [ Ch4. Comments] ( #ch4-comments )
39+ - [ Ch5. Formatting] ( #ch5-formatting )
40+ - [ The newspaper metaphor] ( #the-newspaper-metaphor )
41+ - [ Vertical formatting] ( #vertical-formatting )
42+ - [ Horizontal formatting] ( #horizontal-formatting )
43+ - [ Ch6. Objects and Data Structures] ( #ch6-objects-and-data-structures )
44+ - [ Data/Object anti-symmetry] ( #dataobject-anti-symmetry )
45+ - [ Data transfer objects (DTO)] ( #data-transfer-objects-dto )
46+ - [ Active records] ( #active-records )
47+ - [ Objects] ( #objects )
48+ - [ Data Structures] ( #data-structures )
49+ - [ Ch7. Error Handling] ( #ch7-error-handling )
50+ - [ Write your ` Try-Catch-Finally ` statement first] ( #write-your-try-catch-finally-statement-first )
51+ - [ Provide context with exceptions] ( #provide-context-with-exceptions )
52+ - [ Define the normal flow] ( #define-the-normal-flow )
53+ - [ Ch8. Boundaries] ( #ch8-boundaries )
54+ - [ Ch9. Unit Tests] ( #ch9-unit-tests )
55+ - [ The three laws of TDD] ( #the-three-laws-of-tdd )
56+ - [ Keeping tests clean] ( #keeping-tests-clean )
57+ - [ Clean tests] ( #clean-tests )
58+ - [ F.I.R.S.T.] ( #first )
59+ - [ Ch10. Classes] ( #ch10-classes )
60+ - [ The Single Responsibility Principle] ( #the-single-responsibility-principle )
61+ - [ Cohesion] ( #cohesion )
62+ - [ Organizing for change] ( #organizing-for-change )
63+ - [ Ch11. Systems] ( #ch11-systems )
64+ - [ Separate constructing a system from using it] ( #separate-constructing-a-system-from-using-it )
65+ - [ Separation of main] ( #separation-of-main )
66+ - [ Factories] ( #factories )
67+ - [ Dependency injection (DI)] ( #dependency-injection-di )
68+ - [ Scaling up] ( #scaling-up )
69+ - [ Test drive the system architecture] ( #test-drive-the-system-architecture )
70+ - [ Optimize decision making] ( #optimize-decision-making )
71+ - [ Ch12. Emergence] ( #ch12-emergence )
72+ - [ Simple design rule 1: runs all the tests] ( #simple-design-rule-1-runs-all-the-tests )
73+ - [ Simple design rule 2-4: refactoring] ( #simple-design-rule-2-4-refactoring )
74+ - [ No duplication] ( #no-duplication )
75+ - [ Expressive] ( #expressive )
76+ - [ Minimal classes and methods] ( #minimal-classes-and-methods )
77+ - [ Ch13. Concurrency] ( #ch13-concurrency )
78+ - [ Why concurrency?] ( #why-concurrency )
79+ - [ Myths and misconceptions] ( #myths-and-misconceptions )
80+ - [ Concurrency defense principles] ( #concurrency-defense-principles )
81+ - [ Know your execution models] ( #know-your-execution-models )
82+ - [ Others] ( #others )
83+
984# Ch1. Clean Code
1085> "Most managers want good code, even when they are obsessing about the schedule (...) It's * your* job to defend the code with equal passion"
1186
@@ -394,5 +469,3 @@ For each few lines of code we add, we pause and reflect on the new design
394469- Run your threaded code on all target platforms early and often
395470
396471> Code that is simple to follow can become nightmarish when multiple threads and shared data get into the mix -> you need to write clean code with rigor or else face subtle and infrequent failures
397-
398- # Ch14. Successive Refinement
0 commit comments