It is always cool to do anything which is related to web / touch application development and specially when ExtJS and Sencha Touch is involved then energy level goes high as well. The book, Ext JS Data-driven Application Design by Kazuhiro Kotsutsumi (Founder of Xenophy, Japan) is intended to be a practical hands-on guide for developing application using Sencha’s Ext JS 4.x framework. I always thought that someone should write a good step-by-step book on application development. I am happy to see a book on this topic. The book uses typical LAMP based architecture to build application for demonstration purpose and it expects you to have following software in place:
- Java Runtime Environment
- Sencha Cmd
- XAMPP or Similar suite
This book is kind of tutorial for intermediates level Sencha Ext JS developers and it explains the process of building a UI that deals with an existing database. The ultimate purpose of this book is to give you a sample application, which has been built step-by-step, to act as a reference for you so that whenever you are not sure about certain part of the application design and development you can review that specific aspect in this book. In this book the author has talked about creating database structure, UI forms, reading / writing data using Ext Direct and visualizing data using the powerful charting capability of ExtJS. As you would see in any commercial application that there is often a need for import / export capability, the author has provided that capability as well. So, in the end you will be able to create an application which will give you a concrete idea about how to approach an application development using ExtJS 4.x.
Of course it doesn’t cover all the aspects of application development for the data driven application, however, it does seem to be taking care of the commonly needed aspects.
This book seems to be the first book which attempts to explain step-by-step process to create the whole application using ExtJS. Most of the book often talks about the concept, which at times leaves some of the key aspects of application development and support. After following the book very closely, eventually you get an application and that should give confidence to first timers who want to build their own application.
While I had a bit high expectation from the book, I must say that the overall presentation is pretty average. I found that words used in the book were often the synonyms which I am not very used to. So, it took some time to have appropriate mapping of words with the concept. At times I felt as if the author has put some incorrect word. However, after reading couple of chapter it was clear that instead of creating a class the author is making a class. Also, I wanted to build the application incrementally and it took time to understand the incremental changes and put them into main project.
Some of the statements were so casual that I was wondering what was the need for putting that statement. For example in one of the place the author says “It has been a while since we saw an image, so we’ve displayed a column for now; however, let’s start to create the necessary objects for this list.”.
Of course I am passionate about Sencha ExtJS and after going through this book at times I felt that the reader will get an impression that the ExtJS is something difficult to grasp and master. The presentation of content could have been much better. I would have liked to see the basic concepts of an application being explained and then make use of that concept to give the readers the step-by-step process for creating an application. I felt that there was too much to-and-fro and reference to Component Testing again and again was a killer.
What I liked?
- It explains step-by-step process for creating a project using Sencha Command
- The concept of Component Testing is a cool way of emphasizing on unit testing and I definitely appreciated this
- Usage of different controllers for different views and emphasis on separate controller is much appreciated
- Also, the book emphasizes on usage of history for navigation, which may be helpful in many situations. However, I would have preferred to see a separate chapter on history management and that too towards the end of the book. Putting it upfront actually makes the reader wait longer for interaction with the database.
- Finally, it gives an application which covers many of the commonly needed aspects of an application
Things I couldn’t appreciate?
- I found the table of contents a bit too detailed. For example breaking Bill & Bills section further into two subsections (Bill and Bills) without much content in those sections look like a bit over doing
- The chapter names could have been better. For example the first chapter has been named “Data Structure”, while the goal is to prepare database for easing into the application design process. Further this chapter starts talking about “Support for history”, “efficient screen management”, “Ext.Direct” and Charts, which appears to be breaking the focus on specific topic.
- At times, some of the content in the book look unnecessary or at best it should have been part of notes instead of being part of the main body. For example
- The statement “Do not delete the user data and physically manage it with a flag. It is connected to other data structures with joint ownership, recording the date and time when it was created along with the updated date and time.” could have been a “notes” – if at all it is required
- Similarly, the statement “After having carried out MD5, we perform SHA1. Then, we will have 40 characters and can store the password.” look out of the place. In this section we should have just given the DB table and if at all certain specific things need to be mentioned then it should have been indicated explicitly instead of mixing with the table definition
- Similarly, the statement “The sections under the Name column are the fields that need to be filled in for each customer.” is partially correct, because you often don’t enter the value of ID, Created Date and Modification Time
- While explaining some of the tables I see a statement “so let’s go ahead and fill this out”, as a reader I feel as if I have to do something, while there do not seem to be any action required
- I didn’t understand the purpose of first showing all the the DB tables in tabular structures, then giving SQLs for some of them and for others asking the reader to get the SQL files from the source file (e.g. 04_bill_table.sql)
- I am not sure about the need for superficially explaining Sencha Command. The document on Sencha’s website ( http://docs.sencha.com/extjs/4.2.2/#!/guide/command_reference, http://docs.sencha.com/extjs/4.2.2/#!/guide/command) is a great resource and very detailed.
- There are certain incorrect references to file names for example instead of app.js it talks about Application.js. Similarly, the text talk about adding code into config.php, while the app_edit.js has been mentioned in bracket.
- Working with the downloaded files were extremely difficult. First of all there was issue while unzipping and eventually navigating to the files referred in the chapters were very tricky. The file names could have been kept shorter.
- Many times it gives path too long error.
- The number of files (more than 90000) and size of unzipped folder (more than 700 MB) was overwhelming in the beginning. Later I could see that whole application code is being incrementally stored in various folders, which kind of justifies the size and number of files.
Overall, I see a huge scope for improving consistency of the content in this book. At times some of the sentences are difficult to understand. If you are new to ExtJS then this cannot be your first book. However, once you have gained required familiarity with ExtJS, you can apply the concepts learned in this book to create any Database Driven application from scratch.
Where can I buy this book?
You can buy this book by visiting below URL:
I hope you find this review useful and it helps you to take better advantage of this book. In case you are familiar with ExtJS and you are struggling to put your thoughts together then you may like to take a look at this book.
Along with Sencha, Walking Tree does endeavour to make application development as easy as possible. I am encouraged to see more and more people joining hands in this endeavour. Thank you Kazuhiro Kotsutsumi for writing this book.