Wednesday , December 13 2017
Home / IT Books / Functional Programming for JavaScript Developers

Functional Programming for JavaScript Developers

Unlock the powers of functional programming hidden within JavaScript to build smarter, cleaner, and more reliable web apps

About This Book

  • Write powerful code with the high-level functions that JavaScript offers
  • Discover what functional programming is, why it’s effective, and how it’s used in JavaScript
  • Understand and optimize JavaScript’s hidden potential as a true functional language

Who This Book Is For

If you are a JavaScript developer interested in learning functional programming, looking for the quantum leap toward mastering the JavaScript language, or just want to become a better programmer in general, then this book is ideal for you. This guide is aimed at programmers, involved in developing reactive frontend apps, server-side apps that wrangle with reliability and concurrency, and everything in between.

What You Will Learn

  • Get a run through of the basic JavaScript language constructs
  • Code using the powerful object-oriented feature in JavaScript
  • Master DOM manipulation, cross-browser strategies, and ES6
  • Understand the basic concurrency constructs in Javascript and best performance strategies
  • Harness the power of patterns for tasks ranging from application building to code testing
  • Build large-scale apps seamlessly with the help of reactive patterns
  • Explore advanced design patterns, including dependency injection
  • Develop more powerful applications with currying and function composition
  • Create more reliable code with closures and immutable data

In Detail

JavaScript is a high-level, dynamic, untyped, lightweight, and interpreted programming language and functional programming is a style that emphasizes and enables smarter code that minimizes complexity and increases modularity. It’s a way of writing cleaner code through clever ways of mutating, combining, and using functions. And JavaScript provides an excellent medium for this approach. By learning how to expose JavaScript’s true identity as a functional language, we can implement web apps that are more powerful, easier to maintain and more reliable.

The java script: Functional Programming for JavaScript Developers course will take you on a journey to show how functional programming when combined with other techniques makes JavaScript programming more efficient.

The first module Mastering JavaScript, stress on practical aspects of Javascript development like—Functions and Closures, Runtime debugging techniques, project layout, events and DOM processing, build tools, Object-oriented patterns, isomorphism—everything that a modern Javascript project would need.

The second module, Mastering JavaScript Design Patterns – Second Edition, will explore how design patterns can help you improve and organize your JavaScript code. You’ll get to grips with creational, structural, and behavioral patterns as you discover how to put them to work in different scenarios. This updated edition will also delve into reactive design patterns and microservices as they are a growing phenomenon in the world of web development. It will also show you some advanced patterns, including dependency injection and live post processing.

The third module, Functional Programming in JavaScript, will help you to write real-world applications by utilizing a wide range of functional techniques and styles. It explores the core concepts of functional programming common to all functional languages, with examples of their use in JavaScript.

Style and approach

This course will begin with providing insights and practical tips on advanced JavaScript features to build highly scalable web and mobile system and move on to some design patterns with JavaScript. Finally, the course ends with presenting the functional programming techniques and styles in JavaScript.

Module 1: Mastering JavaScript
Chapter 1: JavaScript Primer
A little bit of history
How to use this book
Hello World
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
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
Chapter 4: Object-Oriented JavaScript
Understanding objects
Instance properties versus prototype properties
Inheritance
Getters and setters
Chapter 5: Testing and Debugging
Unit testing
JavaScript debugging
Chapter 6: ECMAScript 6
Shims or polyfills
Transpilers
ES6 syntax changes
Chapter 7: DOM Manipulation and Events
DOM
Chaining
Traversal and manipulation
Working with browser events
Propagation
jQuery event handling and propagation
Event delegation
The event object
Chapter 8: Server-Side JavaScript
An asynchronous evented-model in a browser
Callbacks
Timers
EventEmitters
Modules
npm
JavaScript performance

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
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
Chapter 3: Creational Patterns
Abstract factory
Builder
Factory method
Singleton
Prototype
Chapter 4: Structural Patterns
Adapter
Bridge
Composite
Decorator
Façade
Flyweight
Proxy
Chapter 5: Behavioral Patterns
Chain of responsibility
Command
Interpreter
Iterator
Mediator
Memento
Observer
State
Strategy
Template method
Visitor
Hints and tips
Chapter 6: Functional Programming
Functional functions are side-effect-free
Function passing
Filters and pipes
Accumulators
Memoization
Immutability
Lazy instantiation
Chapter 7: Reactive Programming
Application state changes
Streams
Filtering streams
Merging streams
Streams for multiplexing
Chapter 8: Application Patterns
First, some history
Model View Controller
Model View Presenter
Model View ViewModel
Chapter 9: Web Patterns
Sending JavaScript
Plugins
Doing two things at once – multithreading
Circuit breaker pattern
Promise pattern
Chapter 10: Messaging Patterns
What’s a message anyway?
Request-reply
Publish-subscribe
Dead letter queues
Chapter 11: Microservices
Façade
Service selector
Aggregate services
Pipeline
Message upgrader
Failure patterns
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
Chapter 13: Advanced Patterns
Dependency injection
Live post processing
Aspect oriented programming
Mixins
Macros
Chapter 14: ECMAScript-2015/2016 Solutions Today
TypeScript
BabelJS 459

Module 3: Functional Programming in JavaScript
Chapter 1: The Powers of JavaScript’s Functional Side – a Demonstration
The demonstration
The application – an e-commerce website
Functional programming
Chapter 2: Fundamentals of Functional Programming
Functional programming languages
Working with functions
The functional programmer’s toolkit
Chapter 3: Setting Up the Functional Programming Environment
Functional libraries for JavaScript
Development and production environments
Chapter 4: Implementing Functional Programming Techniques in JavaScript
Partial function application and currying
Function composition
Mostly functional programming
Functional reactive programming
Chapter 5: Category Theory
Category theory
Functors
Monads
Implementing categories
Chapter 6: Advanced Topics and Pitfalls in JavaScript
Recursion
Variable scope
Function declarations versus function expressions versus the function constructor
Chapter 7: Functional and Object-oriented Programming in JavaScript
JavaScript – the multi-paradigm language
JavaScript’s object-oriented implementation – using prototypes
Mixing functional and object-oriented programming in JavaScript

Functional Programming for JavaScript Developers

About huydam

Check Also

Data Science For Dummies 2nd Edition

Get Free Books is a personal website, which shares all my books (used books or …

Leave a Reply

Your email address will not be published. Required fields are marked *