Oreilly - JavaScript Application Design Video Edition
by Nicolas G. Bevacqua | Publisher: Manning Publications | Release Date: January 2015 | ISBN: 9781617291951VE
"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
- PART 1: BUILD PROCESS
- Chapter 1. Introduction to Build First 00:06:25
- Chapter 1. Build First 00:04:45
- Chapter 1. Planning ahead with Build First 00:05:24
- Chapter 1. Build processes 00:04:51
- Chapter 1. Handling application complexity and design 00:06:37
- Chapter 1. Diving into Build First 00:08:46
- Chapter 1. Lint in the command line 00:08:28
- Chapter 2. Composing build tasks and flows 00:08:42
- Chapter 2. Setting up your first Grunt task 00:05:52
- Chapter 2. Preprocessing and static asset optimization 00:06:06
- Chapter 2. Doing LESS 00:08:34
- Chapter 2. Static asset minification 00:09:52
- Chapter 2. Setting up code integrity 00:06:33
- Chapter 2. Writing your first build task 00:07:46
- Chapter 3. Mastering environments and the development workflow 00:03:24
- Chapter 3. Configuring build distributions 00:09:11
- Chapter 3. Environment-level configuration 00:04:36
- Chapter 3. Configuring environments 00:06:45
- Chapter 3. Using encryption to harden environment configuration security 00:08:14
- Chapter 3. Automating tedious first-time setup tasks 00:08:57
- Chapter 3. A text editor that cares 00:03:37
- Chapter 4. Release, deployment, and monitoring 00:09:02
- Chapter 4. Static asset caching 00:09:45
- Chapter 4. Predeployment operations 00:07:14
- Chapter 4. Deploying to Heroku 00:08:02
- Chapter 4. Continuous integration 00:06:01
- Chapter 4. Monitoring and diagnostics 00:07:21
- Chapter 4. Debugging Node applications 00:09:00
- PART 2: MANAGING COMPLEXITY
- Chapter 5. Embracing modularity and dependency management 00:09:00
- Chapter 5. Information hiding and interfaces 00:10:26
- Chapter 5. Strict mode 00:03:47
- Chapter 5. JavaScript modules 00:06:08
- Chapter 5. Using dependency management 00:10:21
- Chapter 5. Browserify: CJS in the browser 00:06:30
- Chapter 5. Understanding package management 00:05:35
- Chapter 5. Choosing the right module system 00:05:12
- Chapter 5. Harmony: a glimpse of ECMAScript 6 00:07:31
- Chapter 6. Understanding asynchronous flow control methods in JavaScript 00:08:04
- Chapter 6. Requests upon requests 00:06:41
- Chapter 6. Using the async library 00:09:17
- Chapter 6. Asynchronous task queues 00:05:04
- Chapter 6. Making Promises 00:07:19
- Chapter 6. Controlling the flow 00:04:09
- Chapter 6. Understanding events 00:06:43
- Chapter 6. Glimpse of the future: ES6 generators 00:07:54
- Chapter 7. Leveraging the Model-View-Controller 00:10:56
- Chapter 7. Model-View-Controller in JavaScript 00:08:49
- Chapter 7. Introduction to Backbone 00:10:32
- Chapter 7. Organizing models with Backbone collections 00:05:24
- Chapter 7. Case study: the shopping list 00:07:56
- Chapter 7. Adding items to your cart 00:05:12
- Chapter 7. Using inline editing 00:09:00
- Chapter 7. A service layer and view routing 00:03:31
- Chapter 7. Backbone and Rendr: server/client shared rendering 00:08:48
- Chapter 7. A simple Rendr application 00:09:02
- Chapter 8. Testing JavaScript components 00:08:06
- Chapter 8. Tape in the browser 00:09:20
- Chapter 8. Mocks, spies, and proxies 00:08:09
- Chapter 8. Testing in the browser 00:03:47
- Chapter 8. Case study: testing DOM interaction 00:05:56
- Chapter 8. Application definition 00:06:43
- Chapter 8. Case study: unit testing the MVC shopping list 00:06:54
- Chapter 8. Automating Tape tests 00:03:16
- Chapter 8. Integration, visual, and performance testing 00:07:42
- Chapter 9. REST API design and layered service architectures 00:05:01
- Chapter 9. Learning REST API design 00:07:01
- Chapter 9. Endpoints, HTTP verbs, and versioning 00:06:29
- Chapter 9. Requests, responses, and status codes 00:05:08
- Chapter 9. Paging, caching, and throttling 00:10:10
- Chapter 9. Implementing layered service architectures 00:08:19
- Chapter 9. Consuming a REST API on the client side 00:08:13