
JavaScript : Moving to ES2015
Description
Alles über E-Books | Antworten auf Fragen rund um E-Books, Kopierschutz und Dateiformate finden Sie in unserem Info- & Hilfebereich.
More details
Persons
Ved Antani has been building scalable server and mobile platforms using JavaScript, Go, and Java since 2005. He is an associate vice president at Myntra and has previously worked at Electronic Arts and Oracle. He is an avid reader and author on several subjects. He has studied computer science and currently lives in Bangalore, India. Ved is passionate about classical music and loves to spend time with his son.Timms Simon :
Simon Timms is a developer who works in the oil and gas industry in Calgary, Alberta. He has a BSc in Computing Science from the University of Alberta and a Masters from Athabasca University. He is interested in distributed systems, visualization, and the acquisition of ice-cream. This is his first book, but he blogs frequently on diverse topics such as code contracts and cloud computing at blog.simontimms.com. He is involved in the local.NET and JavaScript community, and speaks frequently at conferences. Contacted by Shweta Pant on 28-8-2017 for the third edition of Mastering JavaScript Design Patterns bookPrusty Narayan :
Narayan Prusty is a full-stack developer. He works as a consultant for various start-ups around the world. He has worked on various technologies and programming languages but is very passionate about JavaScript, WordPress, Ethereum, Solr, React, Cordova, MongoDB, and AWS. Apart from consulting for various start-ups, he also runs a blog titled QNimate and a video tutorial site titled QScutter, where he shares information about a lot of the technologies he works on.
Content
- Cover
- Copyright
- Credits
- Preface
- Table of Contents
- Module 1: Mastering JavaScript
- Chapter 1: JavaScript Primer
- A little bit of history
- How to use this module
- Hello World
- Summary
- Chapter 2: Functions, Closures, and Modules
- A function literal
- Functions as data
- Scoping
- Function declarations versus function expressions
- The arguments parameter
- Anonymous functions
- Closures
- Timers and callbacks
- Private variables
- Loops and closures
- Modules
- Summary
- Chapter 3: Data Structures and Manipulation
- Regular expressions
- Exact match
- Match from a class of characters
- Repeated occurrences
- Beginning and end
- Backreferences
- Greedy and lazy quantifiers
- Arrays
- Maps
- Sets
- A matter of style
- Summary
- Chapter 4: Object-Oriented JavaScript
- Understanding objects
- Instance properties versus prototype properties
- Inheritance
- Getters and setters
- Summary
- Chapter 5: JavaScript Patterns
- Design patterns
- The namespace pattern
- The module pattern
- The factory pattern
- The mixin pattern
- The decorator pattern
- The observer pattern
- JavaScript Model-View-* patterns
- The Model-View-Presenter pattern
- Model-View-ViewModel
- Summary
- Chapter 6: Testing and Debugging
- Unit testing
- JavaScript debugging
- Summary
- Chapter 7: ECMAScript 6
- Shims or polyfills
- Transpilers
- ES6 syntax changes
- Summary
- Chapter 8: DOM Manipulation and Events
- DOM
- Chaining
- Traversal and manipulation
- Working with browser events
- Propagation
- jQuery event handling and propagation
- Event delegation
- The event object
- Summary
- Chapter 9: Server-Side JavaScript
- An asynchronous evented-model in a browser
- Callbacks
- Timers
- EventEmitters
- Modules
- npm
- JavaScript performance
- Summary
- Module 2: Mastering JavaScript Design Patterns, Second Edition
- Chapter 1: Designing for Fun and Profit
- The road to JavaScript
- What is a design pattern?
- Anti-patterns
- Summary
- Chapter 2: Organizing Code
- Chunks of code
- What's the matter with global scope anyway?
- Objects in JavaScript
- Build me a prototype
- Inheritance
- Modules
- ECMAScript 2015 classes and modules
- Best practices and troubleshooting
- Summary
- Chapter 3: Creational Patterns
- Abstract factory
- Builder
- Factory method
- Singleton
- Prototype
- Tips and tricks
- Summary
- Chapter 4: Structural Patterns
- Adapter
- Bridge
- Composite
- Decorator
- Façade
- Flyweight
- Proxy
- Hints and tips
- Summary
- Chapter 5: Behavioral Patterns
- Chain of responsibility
- Command
- Interpreter
- Iterator
- Mediator
- Memento
- Observer
- State
- Strategy
- Template method
- Visitor
- Hints and tips
- Summary
- Chapter 6: Functional Programming
- Functional functions are side-effect-free
- Function passing
- Filters and pipes
- Accumulators
- Memoization
- Immutability
- Lazy instantiation
- Hints and tips
- Summary
- Chapter 7: Reactive Programming
- Application state changes
- Streams
- Filtering streams
- Merging streams
- Streams for multiplexing
- Hints and tips
- Summary
- Chapter 8: Application Patterns
- First, some history
- Model View Controller
- Model View Presenter
- Model View ViewModel
- Tips and tricks
- Summary
- Chapter 9: Web Patterns
- Sending JavaScript
- Plugins
- Doing two things at once - multithreading
- Circuit breaker pattern
- Promise pattern
- Hints and tips
- Summary
- Chapter 10: Messaging Patterns
- What's a message anyway?
- Request-reply
- Publish-subscribe
- Dead letter queues
- Hints and tips
- Summary
- Chapter 11: Microservices
- Façade
- Service selector
- Aggregate services
- Pipeline
- Message upgrader
- Failure patterns
- Hints and tips
- Summary
- Chapter 12: Patterns for Testing
- The testing pyramid
- Testing in the small with unit tests
- Arrange-Act-Assert
- Fake objects
- Test spies
- Stubs
- Mock
- Monkey patching
- Interacting with the user interface
- Tips and tricks
- Summary
- Chapter 13: Advanced Patterns
- Dependency injection
- Live post processing
- Aspect oriented programming
- Mixins
- Macros
- Tips and tricks
- Summary
- Chapter 14: ECMAScript-2015/2016 Solutions Today
- TypeScript
- BabelJS
- Tips and tricks
- Summary
- Module 3: Modern JavaScript Applications
- Chapter 1: Breaking into Microservices Architecture
- What is monolithic architecture?
- Microservices architecture to the rescue
- Implementing microservices using Seneca
- Summary
- Chapter 2: Building a Coupon Site
- Getting started
- Architecture of our site
- Creating the services
- Creating the image upload server
- Creating the monolithic core
- Website walkthrough
- Further improvements to the site
- Summary
- Chapter 3: Communication between Browsers in Real Time
- Terminologies
- Introduction to WebRTC
- WebRTC applications using PeerJS
- Miscellaneous
- Summary
- Chapter 4: Building a Chatroulette
- Creating your own PeerServer
- Creating a chatroulette
- Summary
- Chapter 5: Bidirectional Communication in Real Time
- Introducing WebSocket
- Introduction to Socket.IO
- Summary
- Chapter 6: Building a Live Score Site
- Building the backend
- Building the frontend
- Testing the website
- Summary
- Chapter 7: Functional Reactive Programming
- Introduction to reactive programming
- Functional programming in a nutshell
- Getting started with FRP
- FRP using Bacon.js
- Summary
- Chapter 8: Building an Advanced Profile Search Widget
- Errors in Bacon.js
- Handling exceptions
- Constant properties
- An overview of buses
- Subscribing to the end of EventStreams and properties
- Unplugging subscribers
- Combining and zipping
- Lazy evaluation
- Building the profile search widget
- Summary
- Chapter 9: New Features of Bootstrap 4
- Downloading Bootstrap 4
- Browser and device support
- Understanding the rem and em CSS units
- The grid system
- Global margin reset
- Spacing utility classes
- Display headings
- Inverse tables
- The card component
- Outline buttons
- Moving from Less to Sass
- Text alignment and float utility classes
- Reboot
- Flexbox support
- JavaScript improvements
- Adding Tether
- The 21:9 aspect ratio class
- Customizing Bootstrap 4
- Glyphicons dropped
- Summary
- Chapter 10: Building User Interfaces Using React
- Introducing React
- Getting started with JSX
- Digging into components
- Reconciliation
- Default component property values
- Component life cycle methods
- Mixins
- Using Refs
- ReactDOMServer.renderToStaticMarkup
- Summary
- Chapter 11: Building an RSS Reader Using React and Flux
- Understanding Flux
- Using Flux.js
- Using MicroEvent.js
- Introduction to React Router
- Creating the RSS feed reader
- Summary
- Chapter 12: New Features of Angular 2
- The Angular 2 architecture
- Introducing web components
- Setting up an Angular 2 project
- Angular 2 fundamentals
- Styling components and shadow DOM
- Angular 2 change detection
- Understanding view children and content children
- Component lifecycle methods
- Writing templates
- Outputs
- Understanding providers
- The difference between providers and the viewProviders property
- Summary
- Chapter 13: Building a Search Engine Template Using AngularJS 2
- Setting up the project
- Configuring routes and bootstrapping the app
- Generating random search results
- Creating route components
- Testing the template
- Routing life cycle methods
- Production mode versus development mode
- Summary
- Chapter 14: Securing and Scaling Node.js Applications
- Common vulnerabilities in applications
- Non-vulnerability based attacks
- Using secure packages
- Scaling Node.js servers
- Summary
- Bibliography
System requirements
File format: PDF
Copy-Protection: Adobe-DRM (Digital Rights Management)
System requirements:
- Computer (Windows; MacOS X; Linux): Install the free reader Adobe Digital Editions prior to download (see eBook Help).
- Tablet/smartphone (Android; iOS): Install the free app Adobe Digital Editions or the app PocketBook before downloading (see eBook Help).
- E-reader: Bookeen, Kobo, Pocketbook, Sony, Tolino and many more (only limited: Kindle).
The file format PDF always displays a book page identically on any hardware. This makes PDF suitable for complex layouts such as those used in textbooks and reference books (images, tables, columns, footnotes). Unfortunately, on the small screens of e-readers or smartphones, PDFs are rather annoying, requiring too much scrolling.
This eBook uses Adobe-DRM, a „hard” copy protection. If the necessary requirements are not met, unfortunately you will not be able to open the eBook. You will therefore need to prepare your reading hardware before downloading.
Please note: We strongly recommend that you authorise using your personal Adobe ID after installation of any reading software.
For more information, see our eBook Help page.