socrates15 - clean code
TRANSCRIPT
![Page 1: Socrates15 - Clean Code](https://reader034.vdocuments.mx/reader034/viewer/2022052418/5a66f6807f8b9a59088b480f/html5/thumbnails/1.jpg)
Clean Code
![Page 2: Socrates15 - Clean Code](https://reader034.vdocuments.mx/reader034/viewer/2022052418/5a66f6807f8b9a59088b480f/html5/thumbnails/2.jpg)
*all examples were taken from this book
*
![Page 3: Socrates15 - Clean Code](https://reader034.vdocuments.mx/reader034/viewer/2022052418/5a66f6807f8b9a59088b480f/html5/thumbnails/3.jpg)
• Naming • Designing methods • Code formatting • Commenting code
Let’s talk about…
![Page 4: Socrates15 - Clean Code](https://reader034.vdocuments.mx/reader034/viewer/2022052418/5a66f6807f8b9a59088b480f/html5/thumbnails/4.jpg)
Naming
![Page 5: Socrates15 - Clean Code](https://reader034.vdocuments.mx/reader034/viewer/2022052418/5a66f6807f8b9a59088b480f/html5/thumbnails/5.jpg)
Intention-revealing names
Bad
int d; // elapsed time in days
Good
int elapsedTimeInDays;
Good
![Page 6: Socrates15 - Clean Code](https://reader034.vdocuments.mx/reader034/viewer/2022052418/5a66f6807f8b9a59088b480f/html5/thumbnails/6.jpg)
Avoid disinformation
Bad
int a = l; if ( O == l )
a=O1;else
l=01;
![Page 7: Socrates15 - Clean Code](https://reader034.vdocuments.mx/reader034/viewer/2022052418/5a66f6807f8b9a59088b480f/html5/thumbnails/7.jpg)
Don’t use noise words (1)
Bad
getActiveAccount(); getActiveAccounts(); getActiveAccountInfo();
![Page 8: Socrates15 - Clean Code](https://reader034.vdocuments.mx/reader034/viewer/2022052418/5a66f6807f8b9a59088b480f/html5/thumbnails/8.jpg)
Use nouns when naming classesBad
class Manager { … }
class Processor { … }
class Provider { … }
GoodGoodclass UserManager { … }
class PaymentProcessor { … }
class LogParser { … }
![Page 9: Socrates15 - Clean Code](https://reader034.vdocuments.mx/reader034/viewer/2022052418/5a66f6807f8b9a59088b480f/html5/thumbnails/9.jpg)
Use verbs when naming methodsBad
public int sum(){ … }
public void valid() { … }
private void value() { … }
GoodGood
public int calculateSum() { … }
public boolean isValid() { … }
private setValue() { … }
![Page 10: Socrates15 - Clean Code](https://reader034.vdocuments.mx/reader034/viewer/2022052418/5a66f6807f8b9a59088b480f/html5/thumbnails/10.jpg)
Designingfunctions/methods
![Page 11: Socrates15 - Clean Code](https://reader034.vdocuments.mx/reader034/viewer/2022052418/5a66f6807f8b9a59088b480f/html5/thumbnails/11.jpg)
Bad
Do one thing at a time
…
if (isTestPage(pageData)) include(pageData, isSuite); return pageData.getHtml(); …
![Page 12: Socrates15 - Clean Code](https://reader034.vdocuments.mx/reader034/viewer/2022052418/5a66f6807f8b9a59088b480f/html5/thumbnails/12.jpg)
Bad
Use exceptions over control flow (1)
![Page 13: Socrates15 - Clean Code](https://reader034.vdocuments.mx/reader034/viewer/2022052418/5a66f6807f8b9a59088b480f/html5/thumbnails/13.jpg)
Good
Use exceptions over control flow (2)
![Page 14: Socrates15 - Clean Code](https://reader034.vdocuments.mx/reader034/viewer/2022052418/5a66f6807f8b9a59088b480f/html5/thumbnails/14.jpg)
Code formatting
![Page 15: Socrates15 - Clean Code](https://reader034.vdocuments.mx/reader034/viewer/2022052418/5a66f6807f8b9a59088b480f/html5/thumbnails/15.jpg)
Vertical space between concepts (1)
Bad
![Page 16: Socrates15 - Clean Code](https://reader034.vdocuments.mx/reader034/viewer/2022052418/5a66f6807f8b9a59088b480f/html5/thumbnails/16.jpg)
Good
Vertical space between concepts (2)
![Page 17: Socrates15 - Clean Code](https://reader034.vdocuments.mx/reader034/viewer/2022052418/5a66f6807f8b9a59088b480f/html5/thumbnails/17.jpg)
Optimal line length
• Python: <79 • Java: <80 • C++ (Google, GCC): <80 • Javascript: <80 • PHP: 75-85, <120
![Page 18: Socrates15 - Clean Code](https://reader034.vdocuments.mx/reader034/viewer/2022052418/5a66f6807f8b9a59088b480f/html5/thumbnails/18.jpg)
Use clear naming instead of comments
Bad
GoodGood
![Page 19: Socrates15 - Clean Code](https://reader034.vdocuments.mx/reader034/viewer/2022052418/5a66f6807f8b9a59088b480f/html5/thumbnails/19.jpg)
Good
Informative comments
![Page 20: Socrates15 - Clean Code](https://reader034.vdocuments.mx/reader034/viewer/2022052418/5a66f6807f8b9a59088b480f/html5/thumbnails/20.jpg)
Do you really need TODOs?
![Page 21: Socrates15 - Clean Code](https://reader034.vdocuments.mx/reader034/viewer/2022052418/5a66f6807f8b9a59088b480f/html5/thumbnails/21.jpg)
Javadoc for each function?
Bad
![Page 22: Socrates15 - Clean Code](https://reader034.vdocuments.mx/reader034/viewer/2022052418/5a66f6807f8b9a59088b480f/html5/thumbnails/22.jpg)
Noise comments
![Page 23: Socrates15 - Clean Code](https://reader034.vdocuments.mx/reader034/viewer/2022052418/5a66f6807f8b9a59088b480f/html5/thumbnails/23.jpg)
Comments are dangerous!
![Page 24: Socrates15 - Clean Code](https://reader034.vdocuments.mx/reader034/viewer/2022052418/5a66f6807f8b9a59088b480f/html5/thumbnails/24.jpg)
Comments are dangerous!