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

36

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 of Defense against the dark arts - fighting against magic in programming, hidden complexity and...

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