Berlin-Brandenburg Scala User Group: objects can still teach us one or two things.

Post on 09-May-2015

1.286 views 1 download

description

it’s not because you are not in object-land that you can drop minimally good practices

Transcript of Berlin-Brandenburg Scala User Group: objects can still teach us one or two things.

Phil Calçado - SoundCloud@pcalcado

http://philcalcado.com

objects can still teach us one or two things.

Sunday, January 29, 12

http://bit.ly/work-at-soundcloud

Sunday, January 29, 12

(I will not talk about monads, scalaz, bifunctors or burritos)

Sunday, January 29, 12

with

Sunday, January 29, 12

we thought we would...

Sunday, January 29, 12

more like...

Sunday, January 29, 12

and then...

Sunday, January 29, 12

Sunday, January 29, 12

with

Sunday, January 29, 12

we think we can...

Sunday, January 29, 12

but what I see in the wild...

Sunday, January 29, 12

but what I see in the wild...

Sunday, January 29, 12

coupling

“cyclomatic complexity”no single responsibility

Sunday, January 29, 12

coupling

“cyclomatic complexity”no single responsibility

it’s just (bad) procedural code, really

Sunday, January 29, 12

that code was replaced by something like this

Sunday, January 29, 12

coupling

“cyclomatic complexity”no single responsibility

Sunday, January 29, 12

all old problems.

Sunday, January 29, 12

all old problems.

?Sunday, January 29, 12

coupling

“cyclomatic complexity”no single responsibility

composition!Sunday, January 29, 12

Sunday, January 29, 12

higher-order functionscombinators

partial applicationfunction composition

building blocks you need:

Sunday, January 29, 12

(I kinda lied)

Sunday, January 29, 12

all old problems.

?Sunday, January 29, 12

much older than we thought...

Sunday, January 29, 12

tl;dr

=> it’s not because you are not in object-land that you can drop minimally good practices=> just using the basic blocks of functional programming gives you a lot=> after a while using these you see patterns emerging. and you understand why monads and friends exist. promise :)

Sunday, January 29, 12

Basic Category Theory for Computer Scientists: http://amzn.to/xxeVUC

Theorems for free!: http://bit.ly/Theorems-for-free

The Essence of Functional Programming: http://bit.ly/the-essence-of-FP

Functional Programming with Bananas, Lenses, Envelopes and Barbed Wire: http://bit.ly/FP-with-Bananas-Lenses-Envelopes-and-Barbed-Wire

Sunday, January 29, 12