defense against the dark arts - fighting against magic in programming, hidden complexity and...

36

Upload: radu-iscu

Post on 07-Jul-2015

112 views

Category:

Software


1 download

DESCRIPTION

A talk about code complexity, code obscurity, magic in code, and a few more nefarious practices that one may encounter. We will also be discussing about dealing with these problems, management of technical knowledge and coding elegance.

TRANSCRIPT

Page 1: Defense against the dark arts - fighting against magic in programming, hidden complexity and obscurity
Page 2: Defense against the dark arts - fighting against magic in programming, hidden complexity and obscurity

Defense against the dark arts

How to fight black magic and other nefarious practices

Page 3: Defense against the dark arts - fighting against magic in programming, hidden complexity and obscurity

What is magic?

Page 4: Defense against the dark arts - fighting against magic in programming, hidden complexity and obscurity

Arthur C. Clarke

Any sufficiently advanced code is indistinguishable from magic. Or something to that effect.

Page 5: Defense against the dark arts - fighting against magic in programming, hidden complexity and obscurity

Complexity/statement

Page 6: Defense against the dark arts - fighting against magic in programming, hidden complexity and obscurity

Straight from google.com

Page 7: Defense against the dark arts - fighting against magic in programming, hidden complexity and obscurity

Or this little gem

Page 8: Defense against the dark arts - fighting against magic in programming, hidden complexity and obscurity

Ok, big gem

Page 9: Defense against the dark arts - fighting against magic in programming, hidden complexity and obscurity

Obscurity/code block

Page 10: Defense against the dark arts - fighting against magic in programming, hidden complexity and obscurity

Sample code

Page 11: Defense against the dark arts - fighting against magic in programming, hidden complexity and obscurity

How do you call this and why?

Page 12: Defense against the dark arts - fighting against magic in programming, hidden complexity and obscurity

Why is this bad?

Page 13: Defense against the dark arts - fighting against magic in programming, hidden complexity and obscurity

The magic community frowns on your shenanigans

Page 14: Defense against the dark arts - fighting against magic in programming, hidden complexity and obscurity

What is magical thinking?

Page 15: Defense against the dark arts - fighting against magic in programming, hidden complexity and obscurity

Paradigm opacity

Page 16: Defense against the dark arts - fighting against magic in programming, hidden complexity and obscurity

StackOverflow copy-pasta

Page 17: Defense against the dark arts - fighting against magic in programming, hidden complexity and obscurity

Test your assumptions

Page 18: Defense against the dark arts - fighting against magic in programming, hidden complexity and obscurity

Examples and paraphrasing

Page 19: Defense against the dark arts - fighting against magic in programming, hidden complexity and obscurity

Heavy wizardry examples

Page 20: Defense against the dark arts - fighting against magic in programming, hidden complexity and obscurity

Inheritance vs composition

Page 21: Defense against the dark arts - fighting against magic in programming, hidden complexity and obscurity

Security practices

Page 22: Defense against the dark arts - fighting against magic in programming, hidden complexity and obscurity

Security practices

Page 23: Defense against the dark arts - fighting against magic in programming, hidden complexity and obscurity

Garbage collection

Page 24: Defense against the dark arts - fighting against magic in programming, hidden complexity and obscurity

Garbage collection

Page 25: Defense against the dark arts - fighting against magic in programming, hidden complexity and obscurity

Design patterns

Page 26: Defense against the dark arts - fighting against magic in programming, hidden complexity and obscurity

Design patterns

Page 27: Defense against the dark arts - fighting against magic in programming, hidden complexity and obscurity

Functional programming

Page 28: Defense against the dark arts - fighting against magic in programming, hidden complexity and obscurity

To wrap it up

Page 29: Defense against the dark arts - fighting against magic in programming, hidden complexity and obscurity

Magic is a part of our lives

Page 30: Defense against the dark arts - fighting against magic in programming, hidden complexity and obscurity

Manage it, don’t pretend it doesn’t exist

Page 31: Defense against the dark arts - fighting against magic in programming, hidden complexity and obscurity

Educate yourself

Page 32: Defense against the dark arts - fighting against magic in programming, hidden complexity and obscurity

Educate others

Page 33: Defense against the dark arts - fighting against magic in programming, hidden complexity and obscurity

Hang around the wizards

Page 34: Defense against the dark arts - fighting against magic in programming, hidden complexity and obscurity

Q & A

Page 35: Defense against the dark arts - fighting against magic in programming, hidden complexity and obscurity

Fill the feedback form

Page 36: Defense against the dark arts - fighting against magic in programming, hidden complexity and obscurity

May you grow a long beard