Showing posts with label Book reviews. Show all posts
Showing posts with label Book reviews. Show all posts

Wednesday, 14 October 2009

Zend Framework 1.8 Web Application Development book review

Zend Framework 1.8 Web Application DevelopmentAs the days are rapidly getting shorter, my reading appetite grows potentially and this evening I finished the 'Zend Framework 1.8 Web Application Development' book written by Keith Pope. While Keith worked on the book, I peeked several times at it's tutorial application, dubbed the Storefront, to get me going with the new Zend_Application component. Looking at it's code made me feel certain to get another great digest of the new features and components of version 1.8, and also a different practical perspective on web application development with the Zend Framework, once the book has been published. Therefor I got in touch with the publisher Packt and fortunately got a copy of which I'd like to share a personal review in this blog post.

What's in it?

The book opens with a quick run-through of the Model-View-Controller (MVC) architecture by creating a project structure via Zend_Tool and building a first very basic web application. While this introduction intentionally skips over a lot of details, the following chapter provides very detailed insights into the Zend Framework's MVC components by explaining the surrounded objects, the Design Patterns they are based upon and their interactions.

After laying out that hefty block of theory the aforementioned tutorial application is introduced and built incrementally over several chapters; each one going into more detail for the specific application aspect. The highlight content of these chapters reach from introducing the Fat Model Skinny Controller concept, thoughts on Model design strategies which are reflected in a custom Storefront Model design, to developing application specific Front Controller Plugins, Action-Helpers, and View-Helpers. The application walk-through is completed by looking at general techniques to optimize the Storefront application and by building an automated PHPUnit Test Suite of functional tests utilizing Zend_Test to keep the Zend Framework based application self-reliant and refactorable.

Conclusion

The book by Keith Pope provides any interested PHP developer, who's not already sold on a specific framework, a thorough introduction to the vivid Zend Framework and it's use in a MVC based web application development context. The content of the book is delivered in a fluent, very enthusiastic and 'knowledge-pillowed' writing tone. By implementing or working through the Storefront application seasoned web developers using older versions of the Framework will get a good blue sheet on new components like Zend_Application and it's implication in the bootstrapping process; while new developers tending towards picking up the Zend Framework will get a current and well compiled guide, which might first start off with a steep learning-curve but will turn into profund knowledge once hanging in there.

The only thing that seemed a bit odd to me, was the utilization of Ant instead of Phing as the build tool for the Storefront application to set the application environment, to remove all require_once statements from the framework library and to run the PHPUnit Test Suite; but this might also be inflicted by my Phing nuttiness.

Thursday, 13 November 2008

Rails for PHP Developers book review

Rails for PHP DevelopersThe e-book version of the Pragmatic Programmers release Rails for PHP Developers written by Derek DeVries and Mike Naberezny occupies now some of my scarce hard drive space for several months, and today I managed to hit the last page of it. In case you're interested in knowing if it's worthy to sacrifice some rare hard drive or bookshelf space for this book read on.

What's in it?

The book consists of three main parts which are addressing open-minded developers with a PHP background tempted to add the Ruby language and the thereupon built Rails 2.0 framework to their toolset.

The first part introduces the classic and nowadays omnipresent MVC pattern, the concepts and conventions of Rails by converting a simple PHP newsletter application into a Rails based one. The follow-up chapters of the first part are covering the basics of the Ruby language by looking at known PHP language features and constructs, and how they translate to their Ruby counterparts. Reading these chapters you will get a thorough understanding of the Ruby language and be able to apply unique features like blocks or the reopening of existing classes. The communicated knowledge builds the foundation to accelerate the use and understanding of the Rails framework which is covered in-depth through-out the book's second part.

While teaming up with their imaginary buddy Joe the authors walk you through building a Rails user group application. The chapters of the second part are covering a lot of ground reaching from domain modeling, putting the particular MVC parts to work, ensuring quality by utilizing the Test::Unit library to finally deploying the application into a productive production environment.

The first two chapters of the final and reference part cover the differences and similarities between PHP and Ruby data structures, operations and language constructs. The final chapter of the book closes with a web development specific comparision of PHP constructs and approaches to the ones used by the Rails framework. The book is accompanied by a dedicated blog and a PHP to Rails online reference to satisfy severe thirst for more knowledge.

Conclusion

The book provides interested PHP developers a thorough introduction to the Ruby language and the Rails framework in a fluent and enjoyable writing tone. By implementing the example application of the second book part any decent PHP developer will derive a solid understanding of the Rails framework, he can build upon and that puts him in the position to make reasonable judgments for using/flaming it or not. IMHO this book is so far one of the best PHP related book releases of the out fading year 2008, and can be a real motivator to extend the just gained knowledge by diving deeper into the Ruby/Rails ocean.

So be prepared to see one or another Ruby related post popping up in the future timeline of this blog; I just added another costly addiction to the medicine cupboard. Word!

Thursday, 28 February 2008

'Zend Framework Das Entwickler-Handbuch' Buch Rezension

Zend Framework Entwickler HandbuchYesterday I received the book 'Zend Framework Das Entwickler-Handbuch' written by Carsten Möhrke and published via Galileo Press. As the targeted audience of this book will be mainly german-speaking readers and the publisher has currently no intention to publish it in other languages, I will switch the language for this book review.

'Zend Framework Das Entwickler-Handbuch' bietet auf insgesamt 420 Seiten einen guten Einstieg in die Anwendungsentwicklung mit dem Zend Framework bis zu der Version 1.0.3. In den einführenden Kapiteln werden grundlegende Themen wie die Installation des Frameworks, die Theorie des MVC Patterns und dessen Realisierung mit den entsprechenden Komponenten des Zend Framework behandelt. Die folgenden Kapitel des Buches sind dann meist vom MVC Kontext losgelöst und bieten daher gerade für Einsteiger die Möglichkeit weitere Komponenten wie z.B. Zend_Db und Zend_Db_Table für den Datenbankzugriff oder Zend_Auth für die Benutzerauthentifikation isoliert zu erkunden und deren Prinzipien zu verstehen. Das Spektrum der im Buch behandelten Komponenten erstreckt sich von Zend_Acl bis Zend_XmlRpc und bietet somit einen guten Gesamtüberblick auf die vorhandenen und nutzbaren Funktionalitäten des Frameworks. Die einzelnen Komponenten werden dem Leser jeweils durch meist adäquate Code-Listings und die in den Kontext passende Theorie nähergebracht. Aufgrund der raschen technischen Entwicklung und dem etwas unglücklichen gewählten Veröffentlichungstermins werden Komponenten wie z.B. Zend_Layout und Zend_Form aus dem Zend Framework 1.5.0 Preview Release leider nicht behandelt.

Das Buch wendet sich meiner Meinung nach in erster Linie an Einsteiger, welche am Zend Framework interessiert sind und einen schnellen, portablen und deutschsprachigen Einstieg in dessen Magie haben wollen. Für diese Zielgruppe ist das Buch eine klare Empfehlung.

Für Leser die sich schon gute Kenntnisse im Umgang mit dem Framework erarbeitet haben und Besitzer eines permanenten Onlinezugangs sind bietet dieses Buch meiner Meinung nach leider keinen großen Mehrwert, da es ein sehr gutes und kostenloses Referenzhandbuch gibt und auftretende Detailfragen meist mittels diesem, der vorbildlichen API Dokumentation oder in letzter Instanz mit der Hilfe der rasch reagierend Mailinglist Community geklärt werden können. Für diese Zielgruppe ist meine Empfehlung es einmal Probe zu lesen und dann selbst zu entscheiden.

Als einen kaufentscheidenden Mehrwert für erfahrene Leser hätte ich mir z.B. ein grundlegendes Kapitel über das Testen von Zend Framework Anwendungen mit einem xUnit Framework z.B. PHPUnit gewünscht, dieser Aspekt wird von dem Autor leider total ausgeklammert.

Monday, 3 December 2007

Zend Framework in Action Pre-review

Zend Framework in ActionFor the last few days I've been reading the MEAP release of Zend Framework in Action from Rob Allen and Nick Lo published by Manning Publications and as a pre-review I d'like to share my reading experience. Currently there are 6 of totally 16 intended chapters available, to find out if them are already worth the money you might want to read further.

What's in it?
The first two chapters are introductional and outline what's in the Zend Framework and how it can support and ease the development of (enterprise) web applications. The obligatory Hello World application is used to provide a quick introduction to the MVC pattern and how it's implemented by the framework's controller system and how each part of the MVC pattern is represented in the code artifacts of a application. Next the anatomy of a Zend Framework based application (directory structure, bootstrapping and the request routing to the various components) is layed out to the reader.

After prodviding this 3,000 feet view a community application is introduced, providing the stories and models which will be implemented with the appropriate Zend Framework components and evolve with the coming close-up view chapters. The book carries on to get the guiding application initially going and introduces techniques how to unclutter views through the Two-Step View design pattern and how to build a growing safety-net for your application and it's further evolution via unit tests written in PHPUnit.

The next chapter opens the close-up views by looking at Ajax and how it fits within Zend Framework based applications. The connection of the views to the server/model code is demonstrated first via handcrafted code and next by using two common JavaScript libraries named Prototype and Yahoo! User Interface (YUI). Additional JSON, an important connector in nowadays Ajax application, is covered by taking a look at the Zend_Json component.

Next the focus descends two layers deeper into the model, hosting the specific business logic of an application, by covering the way to establish a connection to the database via the Zend_Db_Adapter and how to perform CRUD actions against it with the Zend_Db_Table component. The linking of tables together is explained by a closer look at the table relationship feature of the Zend_Db_Table component. As a very valuable goodie the authors provide their additional knowledge about testing Zend Framework models.

The last available chapter introduces the concepts of authorisation and authentication and goes on providing the needed theoretical background in addition with explanatory implementations for both scenarios.

Conclusion
As this book is co-authored by Rob Allen, who provides the very valuable introduction I assume everyone getting started with the Zend Framework has used or at least noticed, Zend Framework in Action is the more detailed and naturally matured sequel of it. Though the book isn't released yet the provided knowledge is already valueable whether for novice or more advanced learners/developers whose thirst for knowledge isn't fully covered by the Zend Framework manual. Personally I liked the fact that the authors share their knowledge about unit testing Zend Framework applications and that the reader is guided along an example application, which might motivate to further exploratory coding activities. Reading only these first available chapters leaves you waiting for the rest of it.

Tuesday, 22 May 2007

PHP in Action book review

Over the last few days I got the chance to skim through the upcoming Manning release "PHP in Action: Modern Software Practices for PHP" by Dagfinn Reiersøl et al. The reviewed book is separated into four main parts, covering lots of interesting topics in a good and fluent writing style.

The first part covers basic tools and concepts applied to PHP, which includes software design principles, object-oriented guidelines and the use of design patterns. If you are a continuous reader of specialized publications you might have read or heard of most of them, but the authors know always how to relate them to the PHP language. Were suitable the object-oriented concepts and guidelines are compared to the JAVA language, to support the learning process by showing similarities and varieties, without awaiting the reader to be an JAVA expert.

The second part addresses the approach for developing and designing more reliable web applications by applying TDD(Test-Driven Development) as a learning, design and quality assurance tool for the development process. It starts with traversing through the TDD cycle by using examples which are based upon the SimpleTest framework. If you're favouring the use of PHPUnit the provided knowledge can be easily transformed and might encourage you to get a feeling of the TDD flow while transforming it. Further on more advanced testing techniques like using mocks and stubs are covered for the isolated testing of components. The outlined 'Red, Green and Refactor' cycle is closed by examples of basic refactorings and other cataloged refactorings(i.e. Replace Conditional with Polymorphism) in a PHP manner. Finally this part of the book is rounded off by sketching the refactoring of procedural code towards object-oriented code and how to test your applications front-end via web tests supported by the SimpleTest framework.

In the third part the main focus is on the specifics of web presentation and user interfaces. The authors show how to achieve the desirable separation of presentation and the main domain logic by using several techniques reaching from plain old PHP to template engines and to the adoption of XSLT in combination with some general presentation logic patterns(Composite View, Two Step View). Thereafter a switch is made to illumine the architectural MVC pattern and how it can be used to identify commands and actions made within the user interface and how to map these to the application domain logic. In this regard classic PoEAA patterns like Page Controller and Front Controller are covered. The part is finally closed by thoughts and insights on input validation and form handling in context of possible strategies, stumbling blocks and implementation solutions.

The last part of the book deals with object-oriented data access, reaching from database abstraction, to overcoming the object-relational impedance mismatch, to the generalizing and generation of SQL statements and to supportive design patterns like Data Access Object and Active Record.

The point I liked most about this book is how it sets previous 'heavy impact' publications like Patterns of Enterprise Application Architecture and Refactoring: Improving the Design of Existing Code in relation to the PHP programming language. This might save you some mental translation work on covered areas and serve as an entry point for further research. I'd like to recommend this book as as very valuable reading to anyone who has already mastered the fundamentals of software development with PHP and is looking for further input to push its own development fitnesse and its way to develop 'not-your-average' web applications.

Saturday, 17 March 2007

Bulletproof Ajax book review

Yesterday the new book, the sequel to DOM Scripting, of Jeremy Keith finally arrived via amazon. As I'm almost through I can only state that Jeremy created another sure shot book with the focus on frontend-sided Ajax. I even learned a new thing or two. I can recommend this book to anybody who's new to Ajax and need's a good and libary-free introduction to the concepts behind it. If you are already versed in building ajaxied applications I can recommend it as a good and not very time consuming refreshment as it is fun and very fluent to read. In case you are looking for a book with a main focus on server-sided Ajax this book might not the one to choose.