Programminghappiness

57
Happy programming with Ruby on Rails David Heinemeier Hansson

description

Ruby On Rails

Transcript of Programminghappiness

Page 1: Programminghappiness

Happy programming with

Ruby on RailsDavid Heinemeier Hansson

Page 2: Programminghappiness

Introducing a silver bullet

Page 3: Programminghappiness

Motivation

Page 4: Programminghappiness

Motivation is undoubtedly the single greatest influence on how well people perform. Most productivity studies have found that motivation has a stronger influence on productivity than any other factor.

Steve McConnel, Rapid Development

Page 5: Programminghappiness

Motivation comes from happiness

Page 6: Programminghappiness

Optimize for happiness

Page 7: Programminghappiness

How?

Page 8: Programminghappiness

Beautiful code

Page 9: Programminghappiness
Page 10: Programminghappiness

Your application is nota unique snowflake

Page 11: Programminghappiness

What most people do the same most of the time

Page 12: Programminghappiness

Conventionover

Configuration

Page 13: Programminghappiness
Page 14: Programminghappiness
Page 15: Programminghappiness
Page 16: Programminghappiness
Page 17: Programminghappiness
Page 18: Programminghappiness
Page 19: Programminghappiness
Page 20: Programminghappiness
Page 21: Programminghappiness
Page 22: Programminghappiness
Page 23: Programminghappiness
Page 24: Programminghappiness

http://app/weblog/app/views/weblog

Page 25: Programminghappiness

http://app/weblog/show/5/app/views/weblog/show.rhtml

Page 26: Programminghappiness
Page 27: Programminghappiness

Flexibility is overrated

Page 28: Programminghappiness

Constraints are liberating

Page 29: Programminghappiness

Doing the right thing

Page 30: Programminghappiness
Page 31: Programminghappiness
Page 32: Programminghappiness

Conventions

Page 33: Programminghappiness

Conventions

Invitations

Page 34: Programminghappiness

Conventions

Invitations

Opportunities

Page 35: Programminghappiness

Conventions

Invitations

Opportunities

Expectations

Page 36: Programminghappiness

More beauty

Page 37: Programminghappiness
Page 38: Programminghappiness
Page 39: Programminghappiness
Page 40: Programminghappiness
Page 41: Programminghappiness
Page 42: Programminghappiness
Page 43: Programminghappiness
Page 44: Programminghappiness
Page 45: Programminghappiness
Page 46: Programminghappiness
Page 47: Programminghappiness
Page 48: Programminghappiness
Page 49: Programminghappiness

Finding the fit

Page 50: Programminghappiness

You feel the hurt

Lack of structure and consistencyDegrading productivity over timeOverburdened by complexity

Page 51: Programminghappiness

You appreciate agile

Unit and functional testingDomain modelsDatabase migrations

Page 52: Programminghappiness

You can skip the vendor

“I’m not here for you”Solutions to problems of contributors

Page 53: Programminghappiness

Questions?

Page 54: Programminghappiness

But does it scale?

Page 55: Programminghappiness

Yes

Page 56: Programminghappiness

Any other questions?