Video description
"Enjoy the ride through the process of improving your development workflow."
Addy Osmani, Google
The fate of most applications is often sealed before a single line of code has been written. How is that possible? Simply, bad design assures bad results. Good design and effective processes are the foundation on which maintainable applications are built, scaled, and improved. For JavaScript developers, this means discovering the tooling, modern libraries, and architectural patterns that enable those improvements.
JavaScript Application Design: A Build First Approach introduces techniques to improve software quality and development workflow. You'll begin by learning how to establish processes designed to optimize the quality of your work. You'll execute tasks whenever your code changes, run tests on every commit, and deploy in an automated fashion. Then you'll focus on designing modular components and composing them together to build robust applications.
Inside:
- Automated development, testing, and deployment processes
- JavaScript fundamentals and modularity best practices
- Modular, maintainable, and well-tested applications
- Master asynchronous flows, embrace MVC, and design a REST API
This book/course assumes readers understand the basics of JavaScript.
Nicolas Bevacqua is a freelance developer with a focus on modular JavaScript, build processes, and sharp design. He maintains a blog at ponyfoo.com.
For JavaScript developers, a must-read!
Stephen Wakely, Thomson Reuters
An excellent guide through the maze of the modern JavaScript ecosystem.
Jonas Bandi, IvoryCode GmbH
The first-ever design book for developers.
Sandeep Kumar Patel, SAP Labs
A one-stop shop introducing JavaScript developers to modern practices and tools.
Matthew Merkes, MyNeighbor
NARRATED BY KEN FRICKLAS
Table of Contents
PART 1: BUILD PROCESS
Chapter 1. Introduction to Build First
Chapter 1. Build First
Chapter 1. Planning ahead with Build First
Chapter 1. Build processes
Chapter 1. Handling application complexity and design
Chapter 1. Diving into Build First
Chapter 1. Lint in the command line
Chapter 2. Composing build tasks and flows
Chapter 2. Setting up your first Grunt task
Chapter 2. Preprocessing and static asset optimization
Chapter 2. Doing LESS
Chapter 2. Static asset minification
Chapter 2. Setting up code integrity
Chapter 2. Writing your first build task
Chapter 3. Mastering environments and the development workflow
Chapter 3. Configuring build distributions
Chapter 3. Environment-level configuration
Chapter 3. Configuring environments
Chapter 3. Using encryption to harden environment configuration security
Chapter 3. Automating tedious first-time setup tasks
Chapter 3. A text editor that cares
Chapter 4. Release, deployment, and monitoring
Chapter 4. Static asset caching
Chapter 4. Predeployment operations
Chapter 4. Deploying to Heroku
Chapter 4. Continuous integration
Chapter 4. Monitoring and diagnostics
Chapter 4. Debugging Node applications
PART 2: MANAGING COMPLEXITY
Chapter 5. Embracing modularity and dependency management
Chapter 5. Information hiding and interfaces
Chapter 5. Strict mode
Chapter 5. JavaScript modules
Chapter 5. Using dependency management
Chapter 5. Browserify: CJS in the browser
Chapter 5. Understanding package management
Chapter 5. Choosing the right module system
Chapter 5. Harmony: a glimpse of ECMAScript 6
Chapter 6. Understanding asynchronous flow control methods in JavaScript
Chapter 6. Requests upon requests
Chapter 6. Using the async library
Chapter 6. Asynchronous task queues
Chapter 6. Making Promises
Chapter 6. Controlling the flow
Chapter 6. Understanding events
Chapter 6. Glimpse of the future: ES6 generators
Chapter 7. Leveraging the Model-View-Controller
Chapter 7. Model-View-Controller in JavaScript
Chapter 7. Introduction to Backbone
Chapter 7. Organizing models with Backbone collections
Chapter 7. Case study: the shopping list
Chapter 7. Adding items to your cart
Chapter 7. Using inline editing
Chapter 7. A service layer and view routing
Chapter 7. Backbone and Rendr: server/client shared rendering
Chapter 7. A simple Rendr application
Chapter 8. Testing JavaScript components
Chapter 8. Tape in the browser
Chapter 8. Mocks, spies, and proxies
Chapter 8. Testing in the browser
Chapter 8. Case study: testing DOM interaction
Chapter 8. Application definition
Chapter 8. Case study: unit testing the MVC shopping list
Chapter 8. Automating Tape tests
Chapter 8. Integration, visual, and performance testing
Chapter 9. REST API design and layered service architectures
Chapter 9. Learning REST API design
Chapter 9. Endpoints, HTTP verbs, and versioning
Chapter 9. Requests, responses, and status codes
Chapter 9. Paging, caching, and throttling
Chapter 9. Implementing layered service architectures
Chapter 9. Consuming a REST API on the client side