Intro to Slick
Slick (part of the Typesafe stack) is a modern database query and access library for Scala, based on functional principles. It allows you to write queries as if you are working with regular Scala collections.
In this session we’ll have a deep dive into how you can use this library in real projects. How to map your tables and queries to structured objects, how to create more advanced queries with multiple joins, how to setup integration tests against an in-memory database and how you can integrate Slick with the Play Framework are all questions which will have been answered at the end of this session.
Slick in the field, learning to forget ORM
For many years developers on the JVM platform were used to ORM frameworks. Our code was filled with annotations (or worst XML configuration files). We learned how to map our classes to relational tables and deal with its peculiarities. We had big, sometimes huge graph of objects, mapped to relational tables. We brought them all to memory, changed them and let it be automagically persisted back at the end of our transactions.
In a Scala/Slick world we deal with data and persistence in a totally different way. Our model are immutable structures (case classes and tuples), nullable columns are mapped to Options (and that's cool), relations are expressed by id references instead of object associations (that's less cool). Instead of writing xml or filling our code with annotations, we write type-safe idiomatic Scala code. We compose queries in a functional style. We map and flatMap over it.
But is that good or bad? What brings Slick to the readability and maintainability of our code base? How do we test our business logic when a great deal of it is executed outside the JVM?
In this talk we'll share our experience in building real world applications with Slick. The lessons learned, the patterns and anti-patterns we went through in our journey to shift the way we were used to think about persistence.
Yennick Trevels (Intro to Slick)
Yennick is currently a Reactive Applications Developer and certified Typesafe trainer at Xplore Group, where he’s actively working with Scala, Slick and Play.
Before he started working with Scala and the Typesafe stack he had six years of experience in enterprise software development with Java and Flex. During his career, he has always been investigating best-practices and ways to broaden his development toolbox.
He is also the co-founder and project lead of the GradleFx open source project, a Gradle plugin to build Flex applications.
Renato Cavalcanti (Slick in the Field)
Renato Cavalcanti is an independent Scala developer based in Belgium. Coming from a totally different field (psychology), he discovered a passion for programming in 1999. Scala aficionado since 2007, he has been hacking in Scala and related technologies for fun and profit. He's the founder of BeScala and steering committee member of the BeJUG.