Composing Software: An Exploration of Functional Programming and Object Composition in JavaScript (Eric Elliott)

0.0 (0)
Composing Software: An Exploration of Functional Programming and Object Composition in JavaScript (Eric Elliott)

All software design is composition: the process of dissecting larger problems into smaller ones and then constructing solutions to those smaller problems.

Compositional techniques are not well understood by the majority of developers. It's high time that changed.

The author examines the principles of composition in the context of JavaScript, including both function composition and object composition. The principles of both functional and object-oriented programming are covered in the book to help the reader better grasp how to construct and organize sophisticated applications from basic building pieces.

  • Functional programming
  • Object composition
  • How to work with composite data structures
  • Closures
  • Higher order functions
  • Functors (e.g., array. map)
  • Monads (e.g., promises)
  • Transducers
  • Lensese

All of this is done within the framework of JavaScript, the most popular programming language worldwide. However, learning does not end with JavaScript. You can use these lessons in any language. This book's lessons on software composition are ageless, and they will hold true regardless of how popular today's languages and frameworks may be. This programming book, in contrast to most others, might still be relevant in 20 years.

Ebook Details

About the Authors
Eric Elliott is the Founder of Mentor of mentors.
Published Date / Year
(December 27, 2018); eBook (, 2019)
Creative Commons (CC BY-NC-SA 3.0 US)
254 pages
eBook Format

Similar Programming & Computer Books

JavaScript Éloquent : Une introduction moderne à la programmation - Eloquent JavaScript: A Modern Introduction to Programming (Marijn Haverbeke)
In the book Eloquent JavaScript, the JavaScript programming language and programming in general are introduced.  
UML For The IT Business Analyst (Howard Podeswa)
Information technology business analysts are frequently involved in OO and UML projects nowadays, but they still have a ways to go before fully utilizing the technology beyond use cases...
UML Process (Sharam Hekmat)
Using object technology, the UML Procedure is a standardized process for creating software systems. This document's goal is to define the UML Process at a level appropriate for practitioners...
Applying UML and Patterns: An Introduction to Object-Oriented Analysis and Design (Craig Larman)
This book provides a clear and useful introduction to using objects to think about and build systems that are well-built, reliable, and maintained. ...
UML Tutorial (Tutorialspoint)
Essential competencies for beginning programmers! Unified Modeling Language principles are explained in this user-friendly book (UML).  
Hacking Kubernetes: Threat-Driven Analysis and Defense (Andrew Martin, et al)
To operate your Kubernetes workloads in a secure and reliable manner, A threat-based overview of Kubernetes security is provided in this useful open-source book. ...
Game Programming in Haskell (Elise Huard, et al)
Predictably, Game Programming in Haskell provides an introduction to creating games in the language.  
Learning Processing: A Beginner's Guide to Programming Images, Animation, and Interaction (Daniel Shiffman)
This free programming book shows you how to use Processing to build the fundamental programming building blocks required to develop cutting-edge graphics applications, such as interactive art, live video...
Cascading Style Sheets: The Definitive Guide (Eric A. Meyer)
The Web Design CD Bookshelf, Version 1.0, includes this book. To put it simply, CSS is a method for separating a document's structure from its presentation. The...
Learn HTML and CSS in One Easy to Use Guide (Shay Howe)
This free programming book serves as a clear and thorough tutorial for those just learning HTML and CSS. This manual covers all typical components of front-end design and development...

Others Programming Books by Eric Elliott

Programming JavaScript Applications: Robust Web Architecture With Node, HTML5, and Modern JS Libraries (Eric Elliott)
Develop your current JavaScript skills further by learning how to create a comprehensive enterprise or web-scale applications that are simple to grow and maintain.

Others Programming Books by Independently published

Operational Amplifiers and Linear Integrated Circuits: Theory and Application (James M. Fiore)
This free programming book provides a thorough and in-depth analysis of the contemporary op amp and related specialized linear integrated circuits. The differential amplifier serves as the foundational building...
Number Theory: In Context and Interactive (Karl-Dieter Crisman)
This free programming textbook has a stated goal of exposing students to the relationships between all disciplines of mathematics for an upper-level (US) number theory course. ...
Introduction to Compilers and Language Design (Douglas Thain)
A program written in a high-level language is converted into a program written in a lower-level language by a compiler.
Visual Basic 2017 Made Easy (Liew Voon Kiong)
Dr. Liew, the webmaster of the well-known online Visual Basic Tutorial,, is the author of this book.
A Treatise on Systems (Mark Burgess)
Typically, the terms "network and system administration" simply relates to the conventional techniques and procedures for maintaining the optimal operation of computers and networks.
Lecture Notes for the Algorithms (Jeff Erickson)
The heart and soul of computer science are algorithms. They are the tools that programmers use to create machines and play music. Their background predates mathematics itself. ...
JavaScript for Impatient Programmers (Axel Rauschmayer)
This book offers a contemporary perspective that is as consistent as possible, making JavaScript less difficult for beginners to learn.
Interpretable Machine Learning: A Guide for Making Black Box Models Explainable (Christoph Molnar)
You will learn how to understand (supervised) machine-learning models from this book. In comparison to the first edition, the second edition of Interpretable Machine Learning provides a...
Book of Vaadin (Vaadin Team)
This is Vaadin's reference guide. It will serve as both an introduction and a manual for creating web applications that look amazing and operate well. An open-source web framework...
Aircraft Weight and Balance Handbook (FAA)
Pilots and Aviation Maintenance Technicians (AMTs) who read this book will receive the knowledge they need on the subject of aircraft weight and balance in order to pass the...
First Contact with Deep Learning: Practical Introduction with Keras (Jordi Torres)
Our lives are transforming as a result of artificial intelligence, and Deep Learning-based solutions are driving this change. Since deep learning may be used in many different fields of...
Free and Open Machine Learning (Maikel Mardjan)
An open machine-learning architecture is described in this book. including important elements needed for practical business use. It emphasizes open datasets and free and open source software (FOSS) machine...
Euclidean Plane and its Relatives: A Minimalist Introduction (Anton Petrunin)
The book is intended to be rigorous, conservative, simple, and minimalist for a semester-long Foundations of Geometry course.
The Road to React (Robin Wieruch)
There are numerous road maps available for learning React. The implementation of an app is woven throughout this book using the common sense of these roads. ...
Real Time Forth (Tim Hendtlass)
This book's purpose is to educate readers on how to use computers in the real world so that they can collaborate.
You Don't Know JS Yet: Get Started - 2nd Edition (Kyle Simpson)
Whether you're new to the language or have used it for a while, learning JavaScript completely or even enough is tougher than learning only a portion of it. ...
You Don't Know JS Yet: Scope and Closures, 2nd Edition (Kyle Simpson)
It's likely that you don't fully understand JavaScript, regardless of how much experience you have with it.
So You Want to Learn to Program? - Programming with BASIC-256 (James Reneau)
This introduction to computer programming was made specifically for the open-source BASIC-256 dialect. Anyone (from the young to the old) may learn to make useful programs and have a...
Beej's Guide to Network Programming manual to network Programming has been one of the pinnacle socket programming guides on the internet for the last 15 years, and it's now...

User reviews

There are no user reviews for this listing.
Rate this Book