O'Reilly logo

Building Isomorphic JavaScript Apps by Maxime Najim, Jason Strimpel

Stay ahead with the world's most comprehensive technology and business learning platform.

With Safari, you learn the way you learn best. Get unlimited access to videos, live online training, learning paths, books, tutorials, and more.

Start Free Trial

No credit card required

Part II. Building Our First App

Knowing what, when, and where to abstract is key to good software design. If you abstract too much and too soon, then you add layers of complexity that add little value, if any. If you do not abstract enough and in the right places, then you end up with a solution that is brittle and won’t scale. When you have the perfect balance, it is truly beautiful. This is the art of software design, and engineers appreciate it like an art critic appreciates a good Picasso or Rembrandt.

In this part of the book we will attempt to create something of beauty. Many others have blazed the path ahead of us. Some have gotten it right and some have gotten it wrong. I have had experiences in both categories, with many more failures than successes, but with each failure I have learned a lesson or two. Armed with the knowledge gained from these lessons I will lead us through the precarious process of designing and implementing a lightweight isomorphic JavaScript application framework.

This will not be an easy process—most people get the form, structure, and abstractions wrong—but I am up for the challenge if you are. In the end, we may not have achieved perfection, but we will have learned lessons that we can apply to our future isomorphic JavaScript endeavors and we will have a nice base from which we can expand. After all, this is just a step in the evolution of software and us. Are you with me? Well then, let’s push forward and blaze our own path from the ground ...

With Safari, you learn the way you learn best. Get unlimited access to videos, live online training, learning paths, books, interactive tutorials, and more.

Start Free Trial

No credit card required