In order to defend and preserve the honor of the profession of computer programmers, I Promise that, to the best of my ability and judgement:
- I will not produce harmful code.
- The code that I produce will always be my best work. I will not knowingly allow code that is defective either in behavior or structure to accumulate.
- I will produce, with each release, a quick, sure, and repeatable proof that every element of the code works as it should.
- I will make frequent, small, releases so that I do not impede the progress of others.
- I will fearlessly and relentlessly improve my creations at every opportunity. I will never degrade them.
- I will do all that I can to keep the productivity of myself, and others, as high as possible. I will do nothing that decreases that productivity.
- I will continuously ensure that others can cover for me, and that I can cover for them.
- I will produce estimates that are honest both in magnitude and precision. I will not make promises without certainty.
- I will never stop learning and improving my craft.
-
Stefano has summarized the video explanations from Uncle Bob's Clean Code videos on his Page here.
-
Juan Carlos Ruiz González maintains notes for Clean Code book at Github Repo
- first tear of organization
- first place where we write code
- how to do them well
- classes hiding in your code
- classes tend to hide in large functions
- function should do one thing, do it well and do it only
- They should be small
- They should be smalled than that
- 90s * screenfull
- about 20 lines
- now screens 120 chars and 100 lines * does not apply now
- four lines, maybe five, six ok, 10 way too big
- how will the bodies of if, while, try blocks look like in 4 line fun
- they will need to be function calls themselves right
- they have names
- well chosen names
- well descriptive intent revealing
- function in small scope should have long descriptive names
- functions in large scope should have small names
- extract predicates of if and while into nicely named boolean functions
- so many functions
- so many classes
- we will get lost in the forest of functions and classes
- what about the function call overhead?
- With current power of computers this is very less overhead
- We will not be lost
- We will be naming our functions and classes with intention
- They act as flag posts in the forest
- We will not be lost
- Not right for the team member
- Does not promote new members
- Creates bottlenecks and silos
- Living alone your room can be dirty but comfortable for you
- Sharing with others needs management and modularization
- It is a scope which shares common variables
- It shares blocks of logic using those variables
- Actually this is a class hiding there
Clean Coders Episode 3 has the detailed explanation of how to refactor the classes in this project into clean code.