“Essential Slick” is a book by Richard Dallaway and Jonathan Ferguson, published on underscore.io. It’s designed to be a compact guide to Slick, a database-access library for Scala, and succeeds admirably in its goal, even in early-access form.
The book is very easy to read; it’s published in multiple forms (epub, HTML, and PDF). I chose to read the HTML version, as I’m reading it on a Macbook, and HTML just seemed the most generic.
However, the content is the most important part.
I’ve tried to play with database access in Scala; I usually end up working with a model written in Java, accessed via Hibernate, because of familiarity with Hibernate and, more importantly, because the documentation for various Scala database access mechanisms is simply inaccessible to me – generally being unclear or simply not working.
I have tried Slick tutorials, for example, and the Hello, Slick example projects – only to have them fail out of the box or simply not working, without clear explanations.
I’m pleased to report that this has not been the case with Essential Slick – the code has worked very well, and been explained clearly.
While in early access, there are a few minor problems – for example, in the book’s source code they use durations early on without specifically including them or describing them. (The example project, however, does include all required types.) Likewise, the output from the example project is slightly different (being far less verbose) than the book’s project code.
These are not real problems, at all; durations are fairly obvious, and the debug output is actually very informative. It just wasn’t entirely expected.
The exercises are useful, and are accompanied by explanations of various problems you might encounter; this is very newbie-friendly (as one would hope from an introductory text) and therefore targets its audience perfectly.
Topics proceeding through the book include selection, modeling, and combining actions (i.e., building complex transactions). Along the way, some assumption of Scala knowledge is expected, but it’s not written arrogantly – Scala beginners can expect to understand the content.
By the end of the book, even in early access form, readers can expect to have functional and useful knowledge on Slick, and can expect to be able to write workable applications leveraging relational databases and Scala.
I’ve found the book to be highly informative – and, if you’re using Slick, necessary, compared to the other Slick resources out there. Highly recommended.