About the Book
- A look into the obscure object internals and meta-programming with the new Reflect API, Proxies and Symbols
- A thorough introduction to TypeScript and how it can boost your developer productivity
- A breathtaking story of EPIC proportions and awkward sense of humor...
We, programmers, sadly do not live in such a world. But we do have a measure of magic in ourselves, we have the skills and power to create things out of nothingness. And even if we cannot throw fireballs or levitate (yet), we can definitely change/improve/enhance reality and the universe around us with our little creations. Ain't that freaking awesome?
Artur is a passionate software developer who has built various web applications for small as well as enterprise companies.
Sometimes he recollects the good, old times when jQuery was in beta, just about to be released as 1.0 and nobody even knew what SPA stood for... Everyday he tries to get better with modern front- end development and software craftsmanship.
Currently he works as Senior Applications Developer at Oracle. When he gets home he plays around with side projects, open source or gets outside and does some running.
Principal Software Engineer at Bluestem Brands, Inc.
Kári Tristan Helgason
Software Engineer at Google and Technical Reviewer for this book
- About The Author
- About the Technical Reviewers
- A Story About Why I Wrote This Book
- What is the Goal of This Book?
- Is This Book For You?
- How is The Book Organized?
- Understanding the Code Samples in This Book
- A Note About ECMAScript 5 (ES5) and ES6, ES7, ES8 and ESnext within The Book
A Note Regarding the Use of
- A Note About the Use of Generalizations in This Book
- Do You Have Any Feedback? Found Any Error?
- A Final Word From the Author
- Once Upon a Time…
Introduction to the Path of Summoning and Commanding Objects (aka OOP)
- OOP Beyond Classes
- Combining Classes with Object Composition
- The Path of the Object Summoner Step by Step
Summoning Fundamentals: Encapsulation and Information Hiding
- Let’s get Started With The Basics of OOP!
- Object Initializers
- Constructor Functions and the New Operator
- Object Initializers vs Constructor Functions
- Object Factories vs Constructor Functions
Summoning Fundamentals: Prototypical Inheritance
- You Don’t Repeat Yourself. Inheritance!
- Classical Inheritance vs Prototypical Inheritance
- Object Prototypes
- Object Prototypes with Object.Create or OLOO
- Defining Prototypes with Constructor Functions
- Creating Longer Prototype Chains
- What About Concatenative Protypical Inheritance?
- Object Initializers vs Object.create vs Constructor Functions
Summoning Fundamentals: Polymorphism
- Polymorphism Means Many Forms
- Polymorphism in C#
- Ever Heard of Classical Inheritance?
- Constructor Function + Prototype = Class
- Simplifying Classical Inheritance in ES5
White Tower Summoning Enhanced: The Marvels of ES6 Classes
- Create These Units Faster with ES6 Classes!
- From ES5 “Classes” to ES6 Classes
- Prototypical Inheritance via Extends
- Overriding Methods in ES6 Classes
- Static Members and Methods
- ES6 Classes and Information Hiding
- ES6 Classes Behind the Curtain
Black Tower Summoning: Objects Interweaving Objects with Mixins
- The Problem With Classes and Classical Inheritance…
- Free Yourself From Classes With Object Composition and Mixins
- Limitations of Mixins as Objects
- Functional Mixins
- Combining Mixins with ES6 Classes
- Object.assign in Depth
Black Tower Summoning: Safer Object Composition with Traits
- An Improvement Over Mixins
- Traits with traits.js
- Composing Traits
- What Happens When You Miss Required Properties?
- Resolving Name Conflicts
- Traits and Data Privacy
- High Integrity Objects With Immutable Traits
- Traits vs Mixins
Black Tower Summoning: Next Level Object Composition With Stamps
- I Call Them Stamps
- What are Stamps?
- Stamps By Example
- Stamp Composition
- Stamp Fluent API
- Concluding: Stamps vs Mixins vs Traits
Object Internals: The Secrets of Objects
- A Nifty Trick… Object Internals
All your Objects Are Belong to
- Defining Properties with Object.defineProperty
- Defining Multiple Properties with Object.defineProperties
- Beautiful Property Manipulation with ESnext Decorators
- Class And Method Decorators
- Create Objects With Object.create And Property Descriptors
- Other Useful Object Methods
More Metaprogramming with Reflect, Proxies and Symbols
- How Good Are You at Reflection?
- ES6 Reflect
- Reflection? What is reflection?
- ES6 Proxies
- ES6 Symbols and Meta-programming
- You Shall Only Use Types!
- So, What Are The Advantages and Disadvantages of TypeScript?
- Setting up a Simple TypeScript project
- Cool TypeScript Features
- Type Annotations In TypeScript
- Working with TypeScript in Real World Applications
- Introduction to the Path of Summoning and Commanding Objects (aka OOP)
Tome II. Epilogue
- Thank you!
References and Appendix
- An Army of Objects
- Object Initializers (a.k.a. Object Literals)
- Creating Objects With Factories
- ES6 Improves Object Initializers
- ES6 Symbols and Data Privacy
- This, Your Most Dangerous Foe
- Type Coercion Madness
Appendix C. More Useful Function Patterns: Function Overloading
- Have you Heard About The Marvels Of Overloading?
- How Do We Do Function Overloading Then?
- Function Overloading by Inspecting Arguments
- Using an Options Object
- Relying on ES6 Defaults
- Taking Advantage of Polymorphic Functions
Appendix D. Setting Up Your Developing Environment For ES6
- Using ES6 with Node.js
- ES6 and Modern Browsers
- Real-World ES6 Development Environments
- Appendix E. Fantasy Glossary
- White papers
The Leanpub 45-day 100% Happiness Guarantee
Within 45 days of purchase you can get a 100% refund on any Leanpub purchase, in two clicks.
See full terms
Free Updates. DRM Free.
If you buy a Leanpub book, you get free updates for as long as the author updates the book! Many authors use Leanpub to publish their books in-progress, while they are writing them. All readers get free updates, regardless of when they bought the book or how much they paid (including free).
Most Leanpub books are available in PDF (for computers), EPUB (for phones and tablets) and MOBI (for Kindle). The formats that a book includes are shown at the top right corner of this page.
Finally, Leanpub books don't have any DRM copy-protection nonsense, so you can easily read them on any supported device.
C++ Best PracticesJason Turner
Level up your C++, get the tools working for you, eliminate common problems, and move on to more exciting things!
OpenIntro StatisticsDavid Diez, Christopher Barr, Mine Cetinkaya-Rundel, and OpenIntro
A complete foundation for Statistics, also serving as a foundation for Data Science.
Leanpub revenue supports OpenIntro (US-based nonprofit) so we can provide free desk copies to teachers interested in using OpenIntro Statistics in the classroom and expand the project to support free textbooks in other subjects.
More resources: openintro.org.
Functional Design and ArchitectureAlexander Granin
Software Design in Functional Programming, Design Patterns and Practices, Methodologies and Application Architectures. How to build real software in Haskell with less efforts and low risks. The first complete source of knowledge.
Atomic KotlinBruce Eckel and Svetlana Isakova
For both beginning and experienced programmers! From the author of the multi-award-winning Thinking in C++ and Thinking in Java together with a member of the Kotlin language team comes a book that breaks the concepts into small, easy-to-digest "atoms," along with exercises supported by hints and solutions directly inside IntelliJ IDEA!
C++20 is the next big C++ standard after C++11. As C++11 did it, C++20 changes the way we program modern C++. This change is, in particular, due to the big four of C++20: ranges, coroutines, concepts, and modules.
The book is almost daily updated. These incremental updates ease my interaction with the proofreaders.
Introductory Statistics with Randomization and SimulationMine Cetinkaya-Rundel, Christopher Barr, OpenIntro, and David Diez
A complete foundation for Statistics, also serving as a foundation for Data Science, that introduces inference using randomization and simulation while covering traditional methods.
Leanpub revenue supports OpenIntro, so we can provide free desk copies to teachers interested in using our books in the classroom.
More resources: openintro.org.
Java OOP Done RightAlan Mellor
Object Oriented Programming is still a great way to create clean, maintainable code. But only if you use it right.
This book gives you 25 years of OO best practice, ready to use.
You'll learn to design objects behaviour-first, use TDD to help, then confidently apply Design Patterns, SOLID principles and Refactoring to make clean, crafted code.
Ansible for DevOpsJeff Geerling
Ansible is a simple, but powerful, server and configuration management tool. Learn to use Ansible effectively, whether you manage one server—or thousands.
Composing SoftwareEric 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.
Cloud StrategyGregor Hohpe
“Strategy is the difference between making a wish and making it come true.” A successful migration to the cloud shouldn’t be driven by wishes, but guided by a sound strategy, frameworks, and decision models. This book tells you how—without becoming superficial nor getting lost in technology and product details.
Software Architecture for Developers: Volumes 1 & 2 - Technical leadership and communication
2 Books"Software Architecture for Developers" is a practical and pragmatic guide to modern, lightweight software architecture, specifically aimed at developers. You'll learn:The essence of software architecture.Why the software architecture role should include coding, coaching and collaboration.The things that you really need to think about before...
CCIE Service Provider Ultimate Study Bundle
2 BooksPiotr Jablonski, Lukasz Bromirski, and Nick Russo have joined forces to deliver the only CCIE Service Provider training resource you'll ever need. This bundle contains a detailed and challenging collection of workbook labs, plus an extensively detailed technical reference guide. All of us have earned the CCIE Service Provider certification...
Cisco CCNA 200-301 Complet
4 BooksCe lot comprend les quatre volumes du guide préparation à l'examen de certification Cisco CCNA 200-301.
CCDE Practical Studies (All labs)
3 BooksCCDE lab
Modern Management Made Easy
3 BooksRead all three Modern Management Made Easy books. Learn to manage yourself, lead and serve others, and lead the organization.
The Future of Digital Health
6 BooksWe put together the most popular books from The Medical Futurist to provide a clear picture about the major trends shaping the future of medicine and healthcare. Digital health technologies, artificial intelligence, the future of 20 medical specialties, big pharma, data privacy and how technology giants such as Amazon or Google want to conquer...
Modern C++ by Nicolai Josuttis
Django for Beginners/APIs/Professionals
"The C++ Standard Library" and "Concurrency with Modern C++"
2 BooksGet my books "The C++ Standard Library" and "Concurrency with Modern C++" in a bundle. The first book gives you the details you should know about the C++ standard library; the second one dives deeper into concurrency with modern C++. In sum, you get more than 600 pages full of modern C++ and about 250 source files presenting the standard library...
Linux Administration Complet
4 BooksCe lot comprend les quatre volumes du Guide Linux Administration :Linux Administration, Volume 1, Administration fondamentale : Guide pratique de préparation aux examens de certification LPIC 1, Linux Essentials, RHCSA et LFCS. Administration fondamentale. Introduction à Linux. Le Shell. Traitement du texte. Arborescence de fichiers. Sécurité...