0% found this document useful (0 votes)
41 views4 pages

Book Review:Build Your Own Angularjs: O C T O B E R 3 1, 2 0 1 6

This book review summarizes the key lessons and concepts learned from reading the book "Build your own AngularJS". Some of the main ideas covered in the book include foundational Angular concepts like transclusion and element transclusion, the benefits of test-driven development, how Angular is designed to be easily configured and extended, and simplified tooling using npm and browserify. The reviewer gave the book an overall rating of 3.9 out of 5 and recommended it for those interested in deeply learning the Angular 1 framework.

Uploaded by

monsterspy
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
41 views4 pages

Book Review:Build Your Own Angularjs: O C T O B E R 3 1, 2 0 1 6

This book review summarizes the key lessons and concepts learned from reading the book "Build your own AngularJS". Some of the main ideas covered in the book include foundational Angular concepts like transclusion and element transclusion, the benefits of test-driven development, how Angular is designed to be easily configured and extended, and simplified tooling using npm and browserify. The reviewer gave the book an overall rating of 3.9 out of 5 and recommended it for those interested in deeply learning the Angular 1 framework.

Uploaded by

monsterspy
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
You are on page 1/ 4

Book Review:Build your own AngularJS

OCTOBER 31, 2016

As part of my continuous learning; I started reading Tero Parviainen‘s ‘Build your


own AngularJS‘ about 6 months ago. After 6 months and 127 commits, I am grateful
I completed the book.

While I didn’t take notes while reading, some ideas stood out. Thus, this
post describes some of the concepts I have picked up from the book.

THE GOOD

1. Get the foundational concepts right

This appears to be a recurring theme as I learn more about software engineering.


Just as I discovered while reading the SICP classic, nailing the right abstractions for
the building bricks makes software easy to build and extend.

Angular has support for transclusion which allows directives to do whatever they
want with some piece of DOM structure. A tricky concept but very powerful since it
allows you to clone and manage the scope in transcluded content.

There is also support for element transclusion. Unlike the regular transclude which
will include some DOM structure in some new location; element transclusion
provides control over the element itself.

So why is this important? Imagine you can add this to some element to only show
up under certain conditions? Then you can use element transclusion to ensure that
the DOM structure is only created and linked when you need it. Need some DOM
content to be repeated x times? Just use element transclusion, clone and append it
the x times. These two examples are over-simplifications of ng-if and ng-
repeat respectively.

Such great fundamentals allow engineers to build complex things from simple
pieces – the whole is greater than the sum of parts.

2. Test Driven Development (TDD) works great

This was my first project built from the scratch using TDD and it was a pleasant
experience.

The array of about 863 tests helped identify critical regressions very early. It gave
me the freedom to rewrite sections whenever I disagreed with the style. And since
the tests were always running (and very fast too, thanks Karma!); the feedback was
immediate. Broken tests meant my ‘refactoring’ was actually a bug injection. I don’t
even want to imagine what would have happened if those tests didn’t exist.

Guided by the book – a testament to Tero’s excellent work and commitment to


detail – it was possible to build up the various components independently. The full
integration only happened in the last chapter (for me, about 6 months later). And it
ran beautifully on the first attempt! Well, all the tests were passing…

3. Easy to configure, easy to extend

This is a big lesson for me and something I’d like to replicate in more of my projects:
software should be easy to configure and extend.

The Angular team put a lot of thought into making the framework easy to configure
and extend. There are reasonable defaults for people who just want to use it out of
the box but as expected, there would be people who want a bit more power and
they can get desires met too.

The default digest cycle’s repeat count of 10 can be changed


The interpolation service allows you to change the expression symbols from their
default {{ and }}
Interceptors and transform hooks exist in the http module
Lots of hooks for directives and components

4. Simplified tooling

I have used grunt and gulp extensively in the past however the book used npm in
conjunction with browserify. The delivery pipeline was ultimately simpler and easier
to manage.

If tools are complex, then when things go wrong (bound to happen on any
reasonably large project), you’d have to spend a lot of time debugging or trying to
figure out what went wrong.

And yes, npm is powerful enough.

5. Engineering tricks, styles and a deeper knowledge of Angular

Recursion

The compile file which would allow two functions to pass references to each other
– an elegant way to handle state handovers while also allowing for recursive loops.

Functions to the extreme

1. As reference values: The other insightful trick was using function objects to
ensure reference value integrity. Create a function to use as the reference.
2. As dictionaries: functions are objects after all and while it is unusual to use them
as objects, there is nothing saying you can’t.

1 function a() {};


2
3 a.extraInfo = "extra"

Angular

Most of the component hooks will work for directives as well – in reality,
components are just a special class of directives. So you can use the $onInit,
$onDestroy and so on hooks. And that might even lead to better performance.

Issues

Tero did an awesome job writing the book – it is over a 1000 pages long! He really is
a pro and knows Angular deeply; by the way, you should check out his blog for
awesome deep dives.

My only issues had to do with issue resolution; there were a few issues with
outdated dependencies but nothing too difficult. If he writes an Angular 2 book, I’d
like to take a peek too.

CONCLUSION

I took a peek at the official AngularJS repository and was quite surprised by how
familiar the structure was and how it was easy to follow along based on the
concepts explained in the book.

I’ll rate the book about 3.9 / 5.0. A good read if you have the time, patience and
curiosity to dive deep into the Angular 1 framework. Alas Angular has moved on to
2 but Angular 1 is still around. Moreover, learning how software is built is a great
exercise always.

You might also like

pFad - Phonifier reborn

Pfad - The Proxy pFad of © 2024 Garber Painting. All rights reserved.

Note: This service is not intended for secure transactions such as banking, social media, email, or purchasing. Use at your own risk. We assume no liability whatsoever for broken pages.


Alternative Proxies:

Alternative Proxy

pFad Proxy

pFad v3 Proxy

pFad v4 Proxy