9
25-05-2013 – Scala Italy

Scala in pratica - Stefano Rocco (MoneyFarm)

Embed Size (px)

Citation preview

Page 1: Scala in pratica - Stefano Rocco (MoneyFarm)

25-05-2013 – Scala Italy

Page 2: Scala in pratica - Stefano Rocco (MoneyFarm)

Background

Chi siamo: Società che opera nel mercato della gestione del risparmio tramite un servizio di consulenza indipendente e personalizzato. Con una piattaforma web, MoneyFarm aiuta il piccolo medio investitore nella gestione delle proprie finanze, rendendo semplici e accessibili soluzioni finanziarie solitamente complesse.Progetto:- Sviluppo back-end piattaforma di trading e order

routing (ETF)- Durata: 6 mesi- Team: 2/3 persone

Page 3: Scala in pratica - Stefano Rocco (MoneyFarm)

Il Nostro Stack

- Programming language => Scala 2.9

- Web server => Play Framework 2 con Tomcat 7

- Cache server => Redis

- ORM => Squeryl

- Database => MySQL

Page 4: Scala in pratica - Stefano Rocco (MoneyFarm)

Perchè Scala? => Principi

- Produttivo (less boilerplate, type inference, unchecked exceptions, ecc.)

- Iteroperabile con Java o altri linguaggi (JVM)

- Scalabile

- Performante

- Mantenibile

- Supportato (Tools, Community, TypeSafe)

Page 5: Scala in pratica - Stefano Rocco (MoneyFarm)

Perchè Scala? => Completo

- Functional- Immutable values- Object Oriented- Type Safe- Type inference- Optional objects (null pointer exception)- Traits- Implicit conversions- Closures- Pattern matching- Higher order functions- Operator overloading- Actors Concurrency Model

Page 6: Scala in pratica - Stefano Rocco (MoneyFarm)

La nostra esperienza

- Produttivo?(+) Sintassi concisa(+) Type inference(+) Monads(+) Closures(+) Views, Transformers(-) Complesso(-) Tempo compilazione

- Performante? No benchmarks (+) Essendo più produttivo abbiamo più tempo da dedicare all’ottimizzazione degli algoritmi.

Page 7: Scala in pratica - Stefano Rocco (MoneyFarm)

La nostra esperienza

- Mantenibile? No benchmarks (+) Produttivo(-) Complesso (tanti concetti)(-) Talvolta criptico (currying, implicts, operator overloading, ecc.)(-) Diversi stili da intepretare(-) Backwards compatibility(-) Qos Tools

- Scalabile?(+) In teoria si…. (?) In pratica lo scopriremo solo vivendo

Page 8: Scala in pratica - Stefano Rocco (MoneyFarm)

Considerazioni

Cons- Richiede personale mediamente più preparato.- Richiede un maggior livello di comunicazione e

iterazione nel team

Pros- Produttivo- Elegante, divertente, stimolante- Istruttivo

Page 9: Scala in pratica - Stefano Rocco (MoneyFarm)

Conclusioni

Scala è il nostro presente e… sarà ancor di più il nostro futuro!

MF@ScalaDay => 3 mesi gratis al servizio One Click Advice

Grazie