- Paperback: 278 pages
- Publisher: Packt Publishing Limited (27 April 2015)
- Language: English
- ISBN-10: 1784398489
- ISBN-13: 978-1784398484
- Product Dimensions: 19 x 1.6 x 23.5 cm
- Average Customer Review: 3 customer reviews
- Amazon Bestsellers Rank: #2,76,889 in Books (See Top 100 in Books)
Data Visualization with D3 and AngularJS Paperback – Import, 27 Apr 2015
Customers who bought this item also bought
About the Author
Christoph Korner is the CTO of GESIM, a Swiss startup company, where he is responsible for its simulation software and web interface that is built using AngularJS and D3. He studied electrical engineering and information technology at Vienna University of Technology, including a 1-year exchange program at the Swiss Federal Institute of Technology, Lausanne. Christoph is a passionate, self-taught software developer, coworker, and web enthusiast with more than 7 years of experience in designing, developing, and implementing customer-oriented web-based IT solutions. He has always been enthusiastic and curious about new technologies and started to use AngularJS and D3 since the very first version. Christoph is not only fascinated by technology, but he also aims to push cutting-edge technologies to production services.
Enter your mobile number or email address below and we'll send you a link to download the free Kindle App. Then you can start reading Kindle books on your smartphone, tablet, or computer - no Kindle device required.
To get the free app, enter mobile phone number.
Top customer reviews
There was a problem filtering reviews right now. Please try again later.
Despite the book's outstandingly inclusive approach to each and every language and protocol involved, the writer confides early in the fouth chapter that:
"To get started, I assume that you feel comfortable with the main concepts of AngularJS ' the application structure, controllers, directives, services, dependency injection and scopes."
Next we move on to the Angular framework itself...at the outset the writer outlines the goal of the entire book. Beat this for an undertaking:
"We will see a typical directory structure for an AngularJS project and initialize a controller...the controller will generate random data that we want to display in an auto-updating chart.Next, we will wrap D3.js into a Factory and create a directive for the visualization and we will learn how to encapsulate the components from each other. We will create a simple AngularJS directive and write a custom compile function to create and update the chart. At the end, we will learn about unit tests and integration tests and set them up and implement them for the visualization components."
Scared yet? Don't be. A quick glance at the dynamic data loading in the book's main application is typical of the book's comprehensive approach - the author never glosses over any aspect that the reader might be expected to know; from the most basic of AJAX calls written in plain text, right through to a d3 wrapper function itself encapsulated in an AngularJS module, implemented as a service, all kept nicely abstracted and fast enough for real-time depiction via the socket.io node implementation of Websockets...and in case anyone was wondering, the author helpfully reminds us that the AJAX content is written in JSON, though could equally have been implemented in XML, CSV/TSV - native or d3 versions(!)...etc, etc, etc.
The Angular Chapter is another object lesson in teaching - step-by-step walkthroughs of difficult modules, and even a mid-chapter summary of what's been learnt so far to keep the reader feeling in control of the enormous amount of knowledge he's taking on board, all the while building up a sophisticated model, every part of which he or she knows and understands implicitly...and finally the example takes in Karma's testing framework to keep the project manageable, maintainable, and extendible. Woah!
This is a writer who does everything right - as he succinctly states in passing elsewhere, the final application is constructed so as to be 'maintainable, reusable and testable' - fine guiding principles indeed. The combination of strict adherence to best practice and the fact that every single component of the final project is built from the ground up - and every last snippet of code lucidly commented - means that once the reader reaches the end of the book he or should feel confident enough to modify any part of the full application to suit his or her own needs, and for such a formidable undertaking that's no mean feat.
So am I cooing like a fanboy? Do I have any criticism of the book whatsoever? Well, the writer's first language isn't English and in parts the grammar jars slightly, but the meaning is always clear. I will say one thing however. I wasn't keen on the subject of the book's application - server logs, which I though a bit esoteric for the general(ish) reader. On the other hand, what else could have been used to convey high-volume multi-faceted data streams? Only stock market data or medical equipment readouts spring to mind, so the writer escapes on this charge.
I'm sure in years to come this book will go down as a classic, not so much for the finished product, which is neat whilst being highly complex under the hood, but for the brilliance with which the writer inspires the reader to attack the subject, and the suaveness of his style as a mentor, the clarity and elegance of his explanations and code examples.
Target audience? Anyone with an interest in Angular.js who can't yet build a real-time server log graphing application using Angular and d3.js in a long afternoon. Better still, anyone who isn't yet supremely confident using any of the technologies covered. It's that good. Majestic is a fair epithet. Miss this at your peril.
Most helpful customer reviews on Amazon.com
Edit : After exploring many sources. I found that there are quite good sources are available with nvd3. The books is still worthy to read for more advanced components.
For me the really important part of the book started with chapter 4 and went to the end. The author's description of how to build directives containing D3 and how to do unit testing with it, I found really valuable. A previous reviewer found the unit testing (Karma and Protractor) to be distracting. I thought it good to have it described at length and easy to read around if you are already familiar with the unit testing approaches and how to set them up.
In some ways you can view the entire book as a commentary on the code base being built up to the very end. I like this way of structuring a code-book, since you can see into and understand the final product with greater precision and have something that you can build on at the end. I've many books that teach small snippets and/or give the theory, but leave the larger code examples to someone else. The final project, described in sufficient detail to understand how to move data into the system, how to process the data, how to manage animations, and how to make the interactions dynamic is the visual understanding of a server log. This example can be easily extended to other domains, and so I felt was both transparent and one with real 'legs' for use in other settings.
So, in sum, if you have been looking for a good book, or some type of code-based tutorial, on how to use D3 in Angular to get something non-trivial done, this is the one to get.
I like the style in which the book is written: For every topic the theoretical approach is briefly explained at the beginning, followed by step-by-step discussions of the practical usage with code samples. This makes the book easy to read and allows you to skip sections if you are already familiar with the content.
In my opinion most of the content has an appropriate length and depth, but Chapter 4 covers unit and E2E testing basics with too much details. This makes the chapter a little bit hard to read. The author assumes that the reader is familiar with AngularJS basics, and in my opinion these fundamentals include proper testing.
Another point of criticism is the focus on the mouse as input device and a layout that is primarily designed for desktop views. I missed some touch examples with responsive design. But maybe this exceeds the scope of the book.
I recommend the book for every web developer who is familiar with AngularJS and wants to add data visualization to their projects. One do not necessarily need to know D3.js, the book will help you get started with the library. If you already use D3.js, you can use the basic sections to refresh your knowledge.