Email the Author
You can use this page to email David Sulc about Structuring Backbone Code with RequireJS and Marionette Modules.
About the Book
The book is up to date for Marionette 2.3. In addition, you also receive the book covering Marionette 1.7.4.
Due to popular demand from my well-received previous book on Marionette (Backbone.Marionette.js: A Gentle Introduction), I've taken the Contact Manager application developed in that book and rebuilt it using RequireJS to load dependencies. It has great feedback so far, and I hope you'll like it, too!
Who This Book is For
Essentially, this book is written as a sequel of sorts to my first book. If you want to learn about using RequireJS and AMD (Asynchronous Module Definition) to use in your own applications, you should be fine following along provided you're comfortable with Marionette and its modules, as well as the Contact Manager application (see its source code). In other words, this book does not cover how to develop a Marionette application, only how to use RequireJS to manage dependencies and optimization/minification. If you want to learn how to create a Marionette application, refer to my Backbone.Marionette.js: A Gentle Introduction book.
What You'll Learn
Rebuilding the existing Contact Manager application, but using RequireJS to load all dependencies (other modules, libraries, templates, etc.). Common errors and their likely cause will be discussed, so you can debug your own projects more easily. Running the r.js optimizer to generate a single, minified js file will be demonstrated. In addition, you will actually understand and learn how to "think AMD" and how to apply that mindset to your own projects.
Starting/stopping sub-applications to improve performance will be demonstrated, as well as loading libraries from a CDN, with a local fallback.
Although this book is focused on using RequireJS with Backbone and Marionette, once you're done with it you should be able to use RequireJS in other projects. This is because the book emphasizes the logic behind the implementation, and once you've understood how to use shims and load dependencies, applying this knowledge to your own projects should be straightforward.
How This Book is Structured
This book's goal is to make you independent and productive using RequireJS. As such, only the first chapter is written as a step-by-step guide. Subsequent chapters will be structured as exercises (with step-by-step solutions): each chapter will introduce the objective (e.g. implementing a new module), will point out various things to keep in mind (required libraries, dependencies, etc.), and will explain new concepts you'll need to use in the chapter.
After that, you're on your own: you will implement the new module by yourself. Of course, if at any time you get stuck, you can continue reading the chapter and you will see the step-by-step implementation explaining how the new module is implemented.
What Readers Are Saying
I've included some sample reader feedback below, but if you need more convincing take a look at the feedback page.
This book builds nicely on David's "Gentle Introduction". In my case I had used RequireJS and then needed to retrofit Marionette modules to my code, so the flow described in the book itself wasn't directly useful to me, however seeing how David had married the two was very useful. The initial material on best practice require.js configuration and the broader discussion on Marionette modules versus Require JS modules were also good. As I continue to work on my code I find myself flicking back through the book regularly to see how he has approached similar problems. -- Christo Fogelberg
I have read both of Sulc's books 3 times. I've spent the last 3 years in Objective-c land, so diving back in to JS has required a little brush up. He has provided me with a fantastic foundation. If you have wandered down the JS rabbit hole and found Marionette and company you are definitely in the deep end. But come on in the water is fine. I haven't had this much fun writing code in my life. Well done David! -- Chet Harrison
Structuring Backbone Code with RequireJS and Marionette Modules was a natural progression after reading David's first book on Marionette and very worthwhile. Being already comfortable with RequireJS I was more interested in how Marionette modules were tied in and these were explained really well. He explains the concepts clearly and makes weaving these two libraries together quite easy. -- Mark Coleman
This is another great book of yours that helped me a lot to get my head around Backbone + Marionette + RequireJS. And it came at a vary good time - just when I got into trouble while adding RequireJS to my Marionette project. -- Mickey Vashchinsky
About the Author
I spend most of my time applying technologies to business problems and like many, I acquire new technology skills in a self-taught manner. What I really enjoy is understanding subjects well enough to be able to teach others about them in a straightforward "this makes complete sense" style.