Socrates15 - Clean Code

24
Clean Code

Transcript of Socrates15 - Clean Code

Page 1: Socrates15 - Clean Code

Clean Code

Page 2: Socrates15 - Clean Code

*all examples were taken from this book

*

Page 3: Socrates15 - Clean Code

• Naming • Designing methods • Code formatting • Commenting code

Let’s talk about…

Page 4: Socrates15 - Clean Code

Naming

Page 5: Socrates15 - Clean Code

Intention-revealing names

Bad

int d; // elapsed time in days

Good

int elapsedTimeInDays;

Good

Page 6: Socrates15 - Clean Code

Avoid disinformation

Bad

int a = l; if ( O == l )

a=O1;else

l=01;

Page 7: Socrates15 - Clean Code

Don’t use noise words (1)

Bad

getActiveAccount(); getActiveAccounts(); getActiveAccountInfo();

Page 8: Socrates15 - Clean Code

Use nouns when naming classesBad

class Manager { … }

class Processor { … }

class Provider { … }

GoodGoodclass UserManager { … }

class PaymentProcessor { … }

class LogParser { … }

Page 9: Socrates15 - Clean Code

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

Designingfunctions/methods

Page 11: Socrates15 - Clean Code

Bad

Do one thing at a time

if (isTestPage(pageData)) include(pageData, isSuite); return pageData.getHtml(); …

Page 12: Socrates15 - Clean Code

Bad

Use exceptions over control flow (1)

Page 13: Socrates15 - Clean Code

Good

Use exceptions over control flow (2)

Page 14: Socrates15 - Clean Code

Code formatting

Page 15: Socrates15 - Clean Code

Vertical space between concepts (1)

Bad

Page 16: Socrates15 - Clean Code

Good

Vertical space between concepts (2)

Page 17: Socrates15 - Clean Code

Optimal line length

• Python: <79 • Java: <80 • C++ (Google, GCC): <80 • Javascript: <80 • PHP: 75-85, <120

Page 18: Socrates15 - Clean Code

Use clear naming instead of comments

Bad

GoodGood

Page 19: Socrates15 - Clean Code

Good

Informative comments

Page 20: Socrates15 - Clean Code

Do you really need TODOs?

Page 21: Socrates15 - Clean Code

Javadoc for each function?

Bad

Page 22: Socrates15 - Clean Code

Noise comments

Page 23: Socrates15 - Clean Code

Comments are dangerous!

Page 24: Socrates15 - Clean Code

Comments are dangerous!