Reading for lazy people*.

Clean Code

A Handbook of Agile Software Craftmanship

*people who lie they have no time for reading

Robert C.  Martin wants YOU to write CLEAN code

Chapter 1.

Meaningful names

Use Intention-Revealing Names

const d; // elapsed time in days

const elapsedTimeInDays;
const daysSinceCreation;

Avoid Disinformation

const accountList;
const accounts;

only when it's actually List structure.

const XYZControllerForEfficientHandlingOfString;
const XYZControllerForEfficientStorageOfString;
int a = 1;
if ( O === l)
    a = 01;
else 
    l = 01;

Use Pronounceable Names

class DtaRcrd102 {
    statis genymdhms;
    statis modymdhms;
}

Use Searchable Names

for (const j = 0; i < 42; j++) {
    sum += (t[j] * 4) / 5;
}

Interfaces and Implementations

IShapeFactory -> ShapeFactory
ShapeFactoryImp / CShapeFactory

Avoid Mental Mapping

Smart people sometimes like to show off their smarts by demonstrating their mental juggling abilities.

Example

const r*;

*the lower-case version of URL with host and scheme removed

Class Names

Prefer noun and noun phrases like

Customer, WikiPage, Account, AddressParser

Avoid words like

Calculate, Visit, Parse

Method Names

Prefer verb and verb phrases like

postPayment, deletePage,  set*, get*, is*

Don't Be Cute

eatMyShorts() === abort()

Don't Pun

Follow the "one word per concept" rule.

Use CS Names.

Don't Add Gratuitous Context

"Gas Station Deluxe"

const GSDAccountAddress;

Chapter 2.1*

Functions

*chapter 2.2 should probably be next time

Small!

Rule 2

SMALLER!

Pro Tip:

Try to write code on small screen (like 13-15') with 20pt font.

Do One Thing

FUNCTIONS SHOULD DO ONE THING.

 

THEY SHOULD DO IT WELL.

 

THEY SHOULD DO IT ONLY.

To be continued...

Next episodes

  • Functions 2.2
  • Comments
  • Formatting
  • Objects and Data Structures
  • Classes
  • and many many more...

Stay tuned

and

make code clean again

Made with Slides.com