Structuring apps in Scala

Post on 16-May-2015

1.026 views 5 download

Tags:

Transcript of Structuring apps in Scala

Thursday, March 14, 13

Structuring apps in Scala a.k.a.

I have no idea what I’m doing

phil calçado@pcalcado

http://philcalcado.com

Scala User Group - Berlin BrandenburgThursday, March 14, 13

WHY BOTHER?

Thursday, March 14, 13

SOLVING INTERESTING PROBLEMS

Thursday, March 14, 13

SOLVING INTERESTING PROBLEMS

meh.

Thursday, March 14, 13

SOLVING BORING PROBLEMS IN A

INTERESTING WAY

Thursday, March 14, 13

SOLVING BORING PROBLEMS IN A

INTERESTING WAY

hell yeah!

Thursday, March 14, 13

SOUNDCLOUDDEVELOPER CHALLENGE’S

TEST SUITE

Thursday, March 14, 13

W(hy)TF?

Recruitment Challenge

Thursday, March 14, 13

Build me a file uploader

Old Challenge

Thursday, March 14, 13

Build me a file uploader

Old Challenge

Boring

Thursday, March 14, 13

Build me a file uploader

Old Challenge

BoringUse flash plugin

Thursday, March 14, 13

Build me a file uploader

Old Challenge

BoringUse flash pluginNot enough code

Thursday, March 14, 13

Given a series of events and a bunch of connected

clients, who should be notified of which events?

New Challenge

Thursday, March 14, 13

What I’m used to

Thursday, March 14, 13

What I’m used to

Thursday, March 14, 13

Combinators all the way down

Thursday, March 14, 13

a LOT of code

Thursday, March 14, 13

a LOT of wiring

Thursday, March 14, 13

not leveragingthe type system

Thursday, March 14, 13

I am pretty sure I’m doing it wrong.

Thursday, March 14, 13

TWITTER

Thursday, March 14, 13

Instance-Based Injection

Thursday, March 14, 13

Extremely thin, orthogonal, traits

Thursday, March 14, 13

Use method visibility

Thursday, March 14, 13

TYPESAFE/PRECOG

Thursday, March 14, 13

Modules are abstract

Thursday, March 14, 13

typesafe: self-types for dependencies

Thursday, March 14, 13

Precog: Instead of import, extends or with

Thursday, March 14, 13

SOUNDCLOUDAPPS

Thursday, March 14, 13

ACTUALLY, HOW ARE WE BUILDING APPS?

Thursday, March 14, 13

Legacy Application(Rails)

Database

internet

Thursday, March 14, 13

Stats

MessagingRecommenderSettingsNotifications

Sounds Users Stream

API

internet

Thursday, March 14, 13

SOUNDCLOUDAPPS

Thursday, March 14, 13

A LOT LIKETYPESAFE’S

Thursday, March 14, 13

Controllers define dependency on components

Thursday, March 14, 13

Components are abstract

Thursday, March 14, 13

One flat instance

Thursday, March 14, 13

I was pretty sure I was doing it wrong.

Thursday, March 14, 13

I am pretty sure I’m still doing it wrong.

Thursday, March 14, 13

I am pretty sure I’m still doing it wrong.

what do you use?

Thursday, March 14, 13

phil calçado

http://philcalcado.com@pcalcado

www.soundcloud.com

Thursday, March 14, 13