We may earn an affiliate commission when you visit our partners.

Composing Software

Eric Elliott

All software design is composition: the act of breaking complex problems down into smaller problems and composing those solutions. Most developers have a limited understanding of compositional techniques. It's time for that to change.

In "Composing Software", Eric Elliott shares the fundamentals of composition, including both function composition and object composition, and explores them in the context of JavaScript. The book covers the foundations of both functional programming and object oriented programming to help the reader better understand how to build and structure complex applications using simple building blocks.

You'll learn:

• 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

• Lenses

All of this in the context of JavaScript, the most used programming language in the world. But the learning doesn't stop at JavaScript. You'll be able to apply these lessons to any language. This book is about the timeless principles of software composition and its lessons will outlast the hot languages and frameworks of today. Unlike most programming books, this one may still be relevant 20 years from now.

This book began life as a popular blog post series that attracted hundreds of thousands of readers and influenced the way software is built at many high growth tech startups and fortune 500 companies.

Save this book

Create your own learning path. Save this book to your list so you can find it easily later.
Save

Share

Help others find this book page by sharing it with your friends and followers:

Amazon Buyer Protections & Purchase Guarantee

Protected by Amazon A-to-z Guarantee & generous return policies

Amazon A-to-z Guarantee
Buyer Protection

Amazon A-to-z Guarantee

Every book purchase is protected by the Amazon A-to-z Guarantee. This guarantee covers both the condition of your book and its timely delivery, providing full buyer protection whether you purchase directly from Amazon or from third-party marketplace sellers.

Return Policy

Generous 30-Day Returns & Free Shipping

Generous 30-day return policy on physical books. Amazon makes returns effortless with self-service return labels, drop-off at thousands of local locations (Kohl's, Whole Foods, UPS Stores), and free return shipping on eligible book purchases.

Savings & Discounts

Great Savings & Member Discounts

Maximize your savings with competitive pricing, deep discounts on new and used marketplace copies, bundled textbook rentals, and exclusive member savings through Amazon Prime with free fast delivery.

Formats & Programs

Kindle, Audible & Physical Formats

Read your way across versatile digital and physical formats: instant delivery via Kindle eBooks, unlimited reading with a Kindle Unlimited subscription, audiobook listening with Audible (often featuring a 30-day free trial), or traditional paperback and hardcover editions.

Amazon Purchase Protections & Benefits
Amazon A-to-z Guarantee covering third-party & direct purchases
Generous 30-day return policy with hassle-free drop-off options
Kindle eBook editions with instant delivery on any device
Kindle Unlimited program with access to over 4 million titles
Audible audiobooks with free trial eligibility
Competitive discounts across new, used, and rental copies
Amazon Affiliate Partner Protections Policy details last reviewed: 2026-10-22
Our mission

OpenCourser helps millions of learners each year. People visit us to learn workspace skills, ace their exams, and nurture their curiosity.

Our extensive catalog contains over 50,000 courses and twice as many books. Browse by search, by topic, or even by career interests. We'll match you to the right resources quickly.

Find this site helpful? Tell a friend about us.

Affiliate disclosure

We're supported by our community of learners. When you purchase or subscribe to courses and programs or purchase books, we may earn a commission from our partners.

Your purchases help us maintain our catalog and keep our servers humming without ads.

Thank you for supporting OpenCourser.

© 2016 - 2025 OpenCourser