Structuring Backbone Code with RequireJS and Marionette Modules cover page
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


Structuring Backbone Code with RequireJS and Marionette Modules Edit
This book is 100% Complete
  • $20.00

    Minimum

  • $25.00

    Suggested

Bundles

Building Backbone Plugins
Backbone.Marionette.js: A Gentle Introduction
Structuring Backbone Code with RequireJS and Marionette Modules

Build A Better Backbone App

  • $74.00

    Regular Price

  • $69.95

    Suggested

3 Books

Learn more
Backbone.Marionette.js: A Gentle Introduction
Structuring Backbone Code with RequireJS and Marionette Modules
Backbone.Marionette.js: A Serious Progression

Marionette.js A to Z

  • $85.00

    Regular Price

  • $69.99

    Suggested

3 Books

Learn more

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

Read More

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-Apppplication
    • 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

Read More

About the Author

The Leanpub Unconditional, No Risk, 100% Happiness Guarantee

Within 45 days of purchase you can get a 100% refund on any Leanpub purchase, in two clicks. We process the refunds manually, so they may take a few days to show up.
See full terms