Structuring Backbone Code with RequireJS and Marionette Modules
Structuring Backbone Code with RequireJS and Marionette Modules
Learn to use javascript AMD in your apps the easy way
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
Bundles that include this book
Table of Contents
- Who This Book is For
-
Following Along with Git
- Jumping in for Advanced Readers
- Why Use AMD?
-
Getting Started
- Adding RequireJS to the Mix
- Using Shims
-
Loading the Main App
- Discovering Modules
- Turning ContactManager into a RequireJS Module
-
Listing Contacts
- Modularizing the Contact Entity
- Using the Contact Entity from the Main App
- Listing Contacts from the List Sub-Application
- Requiring Views and Templates
-
Editing Contacts with a Modal
- Including the jQuery UI Dialog Dependency
- Expliciting Dependencies
-
Creating Contacts with a Modal
- Exercise Solution
- Further Decoupling of the Contact Module
-
Filtering Contacts
- Exercise Solution
-
Adding the Loading View
- Exercise Solution
-
Showing Contacts
- Exercise Solution
-
Editing Contacts
- Exercise Solution
-
Reimplementing the About Sub-Application
- Exercise Solution
-
Reimplementing the Header Sub-Application
- Exercise Solution
-
Marionette Modules VS Plain RequireJS Modules
- Converting the Contact Entity to Plain RequireJS Modules
- Using a Separate Module as the Event Aggregator
- Converting the Collection
- Rewriting the Show View
- Rewriting the Show Action
-
Start/Stop Modules According to Routes
- Implementation Strategy
- Modifying the AboutApp
-
Mixing and Matching Modules
- Converting the About Sub-Application to Plain RequireJS Modules
- Managing Start/Stop with Mixed Module Types
-
Optimizing the Application with r.js
- Loading with Almond.js
-
Closing Thoughts
- Keeping in Touch
- Other Books I’ve Written
The Leanpub 60 Day 100% Happiness Guarantee
Within 60 days of purchase you can get a 100% refund on any Leanpub purchase, in two clicks.
Now, this is technically risky for us, since you'll have the book or course files either way. But we're so confident in our products and services, and in our authors and readers, that we're happy to offer a full money back guarantee for everything we sell.
You can only find out how good something is by trying it, and because of our 100% money back guarantee there's literally no risk to do so!
So, there's no reason not to click the Add to Cart button, is there?
See full terms...
Earn $8 on a $10 Purchase, and $16 on a $20 Purchase
We pay 80% royalties on purchases of $7.99 or more, and 80% royalties minus a 50 cent flat fee on purchases between $0.99 and $7.98. You earn $8 on a $10 sale, and $16 on a $20 sale. So, if we sell 5000 non-refunded copies of your book for $20, you'll earn $80,000.
(Yes, some authors have already earned much more than that on Leanpub.)
In fact, authors have earnedover $13 millionwriting, publishing and selling on Leanpub.
Learn more about writing on Leanpub
Free Updates. DRM Free.
If you buy a Leanpub book, you get free updates for as long as the author updates the book! Many authors use Leanpub to publish their books in-progress, while they are writing them. All readers get free updates, regardless of when they bought the book or how much they paid (including free).
Most Leanpub books are available in PDF (for computers) and EPUB (for phones, tablets and Kindle). The formats that a book includes are shown at the top right corner of this page.
Finally, Leanpub books don't have any DRM copy-protection nonsense, so you can easily read them on any supported device.
Learn more about Leanpub's ebook formats and where to read them