Scala in practice

Consulting Engineer at Substrate Software Services
May. 4, 2012
Scala in practice
Scala in practice
Scala in practice
Scala in practice
Scala in practice
Scala in practice
Scala in practice
Scala in practice
Scala in practice
Scala in practice
Scala in practice
Scala in practice
Scala in practice
Scala in practice
Scala in practice
Scala in practice
Scala in practice
Scala in practice
Scala in practice
Scala in practice
Scala in practice
Scala in practice
Scala in practice
Scala in practice
Scala in practice
Scala in practice
Scala in practice
Scala in practice
Scala in practice
Scala in practice
Scala in practice
Scala in practice
Scala in practice
Scala in practice
Scala in practice
Scala in practice
Scala in practice
Scala in practice
Scala in practice
Scala in practice
Scala in practice
1 of 41

More Related Content

What's hot

Scala for C# DevelopersScala for C# Developers
Scala for C# DevelopersOmer van Kloeten
Scala Days NYC 2016Scala Days NYC 2016
Scala Days NYC 2016Martin Odersky
An Introduction to ScalaAn Introduction to Scala
An Introduction to ScalaBrent Lemons
Composable Futures with Akka 2.0Composable Futures with Akka 2.0
Composable Futures with Akka 2.0Mike Slinn
Introduction to Scala | Big Data Hadoop Spark Tutorial | CloudxLabIntroduction to Scala | Big Data Hadoop Spark Tutorial | CloudxLab
Introduction to Scala | Big Data Hadoop Spark Tutorial | CloudxLabCloudxLab
Weaving Dataflows with Silk - ScalaMatsuri 2014, TokyoWeaving Dataflows with Silk - ScalaMatsuri 2014, Tokyo
Weaving Dataflows with Silk - ScalaMatsuri 2014, TokyoTaro L. Saito

Viewers also liked

Scala Talk at FOSDEM 2009Scala Talk at FOSDEM 2009
Scala Talk at FOSDEM 2009Martin Odersky
Scala testScala test
Scala testInphina Technologies
Metaprogramming  in Scala 2.10, Eugene Burmako, Metaprogramming  in Scala 2.10, Eugene Burmako,
Metaprogramming in Scala 2.10, Eugene Burmako, Vasil Remeniuk
Scalding: Twitter's Scala DSL for Hadoop/CascadingScalding: Twitter's Scala DSL for Hadoop/Cascading
Scalding: Twitter's Scala DSL for Hadoop/Cascadingjohnynek
Scala Back to Basics: Type ClassesScala Back to Basics: Type Classes
Scala Back to Basics: Type ClassesTomer Gabel
Procedure Typing for ScalaProcedure Typing for Scala
Procedure Typing for Scalaakuklev

Similar to Scala in practice

Introducing Scala to your Ruby/Java Shop : My experiences at IGNIntroducing Scala to your Ruby/Java Shop : My experiences at IGN
Introducing Scala to your Ruby/Java Shop : My experiences at IGNManish Pandit
From java to scala at crowd mixFrom java to scala at crowd mix
From java to scala at crowd mixStefano Galarraga
Clojure in real life 17.10.2014Clojure in real life 17.10.2014
Clojure in real life 17.10.2014Metosin Oy
 Evolving IGN’s New APIs with Scala Evolving IGN’s New APIs with Scala
Evolving IGN’s New APIs with ScalaManish Pandit
Polyglot Plugin ProgrammingPolyglot Plugin Programming
Polyglot Plugin ProgrammingAtlassian
Scala and Spark are Ideal for Big DataScala and Spark are Ideal for Big Data
Scala and Spark are Ideal for Big DataJohn Nestor

More from Tomer Gabel

How shit works: TimeHow shit works: Time
How shit works: TimeTomer Gabel
Nondeterministic Software for the Rest of UsNondeterministic Software for the Rest of Us
Nondeterministic Software for the Rest of UsTomer Gabel
Slaying Sacred Cows: Deconstructing Dependency InjectionSlaying Sacred Cows: Deconstructing Dependency Injection
Slaying Sacred Cows: Deconstructing Dependency InjectionTomer Gabel
An Abridged Guide to Event SourcingAn Abridged Guide to Event Sourcing
An Abridged Guide to Event SourcingTomer Gabel
How Shit Works: StorageHow Shit Works: Storage
How Shit Works: StorageTomer Gabel
The Wix Microservice StackThe Wix Microservice Stack
The Wix Microservice StackTomer Gabel

Recently uploaded

GIT AND GITHUB (1).pptxGIT AND GITHUB (1).pptx
GIT AND GITHUB (1).pptxGDSCCVRGUPoweredbyGo
Scaling out with WordPressScaling out with WordPress
Scaling out with WordPressKonstantin Kovshenin
Netwitness RT - Don’t scratch that patch.pptxNetwitness RT - Don’t scratch that patch.pptx
Netwitness RT - Don’t scratch that patch.pptxStefano Maccaglia
How resolve Gem dependencies in your code?How resolve Gem dependencies in your code?
How resolve Gem dependencies in your code?Hiroshi SHIBATA
"Architecture assessment from classics to details",  Dmytro Ovcharenko"Architecture assessment from classics to details",  Dmytro Ovcharenko
"Architecture assessment from classics to details", Dmytro OvcharenkoFwdays
Machine learning with quantum computersMachine learning with quantum computers
Machine learning with quantum computersSpeck&Tech

Scala in practice

Editor's Notes

  1. Evolve codebase (in other words, keep existing infrastructure and fix/extend as needed):Frustrating, legacy codebase written under tight time constraints is a maintenance nightmareNew engineering team needs a fresh start; keeping the team in maintenance mode is hazardous to team’s mental healthRefactor and extend (break down into smaller pieces; replace infrastructure incrementally, build extension points where needed):A highly practical solution. Existing code will continue to serve existing customers;Problematic bits can be replaced piecemeal, complex new functionality built separately and integrated at the lowest possible level (usually the database);A good compromise between risk mitigation and engineering sanitySupplant with new architecture (keep existing codebase in place and fix critical bugs only; where new functionality is required, interoperate with existing architecture):Impractical. Existing codebase had too many issues;In practice this is the same as evolving the codebase, because of the prohibitively high maintenance cost on the existing architecture.Complete rewrite: too risky, too slow. ‘nuff said.