In recent months, there have been at least three books published in English that helps users of MPS, TeamCity and RubyMine learn and extend their skills. There are more books on the horizon and we will highlight those when they become available. If you know of, or are working on, a JetBrains product related book, we would love to know about it.
Designing, Implementing and Using Domain Specific Languages
By Markus Voelter
Domain-Specific Languages are programming languages that are tailored to a particular application domain. By incorporating knowledge about that domain, DSLs lead to more concise and more analyzable programs, improved code quality, tighter stakeholder integration and faster development speed.
This book provides a thorough introduction to DSLs, relying on today’s state-of-the-art language workbenches: JetBrains MPS, Xtext and Spoofax. The book is divided into four parts: Introduction to DSL, DSL Design, DSL Implementation and DSLs in Software Engineering, and lends inspiration to readers of where and how to use DSLs.
DSL Engineering is highly relevant to developers, as well as architects, who want to consider employing DSLs on their projects. Of particular interest to JetBrains MPS users:
- Part II looks at DSL design strategies. It discusses seven design dimensions and explains a number of reusable language paradigms. Such a conception overview helps readers to build effective DSLs.
- Part III showcases DSL implementation techniques with different language workbenches. This part presents non-trivial examples and touches on all language and IDE implementation aspects supported by MPS, including syntax, projection, transformation, type systems, constraints, refactorings, debugging and dataflow. Since the book also contains examples for other language workbenches (Xtext and Spoofax), readers will see the broader context and understand how MPS works and how it differs.
- Part IV discusses the use of DSLs for requirements engineering, architecture, system implementation, product line engineering and implementing business logic, as well as their role as an effective developer.
DSL Engineering is available in print and as a PDF (donationware) from dslbook.org.
TeamCity 7 Continuous Integration Essentials
By Volodymyr Melymuka
TeamCity 7 Continuous Integration Essentials is what it claims to be: an introduction to basic TeamCity usage. It describes common concepts and has a set of step-by-step tutorials for generic tasks like installing TeamCity, creation of a simple Java/Maven project and then configuring the project in TeamCity, using IntelliJ IDEA and Eclipse to launch TeamCity remote run, etc. The tutorials have lots of screenshots to help a novice walk through the steps.
The book will be a good fit if you prefer reading through a guide instead of proceeding directly to hands-on experience and using trial-and-error approach. It can also be a saver for a novice looking at implementing CI in a small company. TeamCity 7 Continuous Integration Essentials is available as an eBook or Print + eBook combination from PACKT Publishing.
Cucumber and Cheese
A Testers Workshop
By Jeff “Cheezy” Morgan
In this book Jeff shares his experience using Cucumber and Ruby. He covers many patterns, practices, tools, and Ruby gems that make testing applications easier. It covers the proper way to structure and write your test automation code so that it is less brittle, simpler, better organized, more expressive, and therefore easier to change over the lifecycle of your application. The goal is to help you see and understand the benefits of Acceptance Test Driven Development (ATDD, also known as Behavior Driven Development) and learn how to use Cucumber and Ruby to adopt this practice.
Automated functional testing is a practice that many teams are trying to add to their development process. Behavior Driven Development (BDD) with Cucumber is even hotter. This book is the culmination of Jeff’s work over the past four years working with numerous teams to implement these practices. Readers will learn techniques that will help them build robust test suites and avoid many of the problems that teams often encounter when they implement these practices.
While the book does not specifically showcase RubyMine, Jeff is a user himself (recent interview with Jeff) and mentions RubyMine throughout the book, including several screenshots of the tool. Readers will certainly find a thing or two to treasure. Cucumber & Cheese is available as an eBook from Leanpub.