Showing posts with label patterns. Show all posts
Showing posts with label patterns. Show all posts

Software Engineering - ESEC '93: 4th European Software Engineering Conference, Garmisch-Partenkirchen, Germany, September 13-17, 1993. Proceedings (Lecture Notes in Computer Science) Review

Software Engineering - ESEC '93: 4th European Software Engineering Conference, Garmisch-Partenkirchen, Germany, September 13-17, 1993. Proceedings (Lecture Notes in Computer Science)
Average Reviews:

(More customer reviews)
Are you looking to buy Software Engineering - ESEC '93: 4th European Software Engineering Conference, Garmisch-Partenkirchen, Germany, September 13-17, 1993. Proceedings (Lecture Notes in Computer Science)? Here is the right place to find the great deals. we can offer discounts of up to 90% on Software Engineering - ESEC '93: 4th European Software Engineering Conference, Garmisch-Partenkirchen, Germany, September 13-17, 1993. Proceedings (Lecture Notes in Computer Science). Check out the link below:

>> Click Here to See Compare Prices and Get the Best Offers

Software Engineering - ESEC '93: 4th European Software Engineering Conference, Garmisch-Partenkirchen, Germany, September 13-17, 1993. Proceedings (Lecture Notes in Computer Science) ReviewSommerville gives a keen view of the entire breath of this broad topic. His text is filled with easy to understand illustrations and chapter summaries. The examples are end-to-end because he provides the needed preliminaries (concepts and foundations) to understand the results. His treatment of requirements engineering and formal specification methods is quite good. In addition to the key points (of each chapter) he provides pointers to other resources on each subtopic. I find this text better for use in the classroom than the other leading text (which I use as a reference) because Sommerville's presentation provides a more logical flow and organization (i.e., its easier to read). I used the slides that are available (.ppt) from his web site to supplement my lectures.Software Engineering - ESEC '93: 4th European Software Engineering Conference, Garmisch-Partenkirchen, Germany, September 13-17, 1993. Proceedings (Lecture Notes in Computer Science) OverviewThis volume contains the proceedings of the fourth EuropeanSoftwareEngineering Conference. It contains 6 invitedpapers and 27 contributed papers selected from more than 135submissions.The volume has a mixtureof themes. Some, such as softwareengineering and computer supportedcollaborative work, areforward-looking and anticipate future developments; others,such as systems engineering, are more concerned with reportsof practical industrial applications. Some topics, such assoftware reuse, reflect the fact that some of the concernsfirst raised in 1969 whensoftware engineering was bornremain unsolved problems.The contributed papers are organized under the followingheadings: requirements specification, environments, systemsengineering, distributed softwareengineering, real-timesystems, software engineering and computer supportedcollaborative work, software reuse, software process, andformal aspects of software engineering.

Want to learn more information about Software Engineering - ESEC '93: 4th European Software Engineering Conference, Garmisch-Partenkirchen, Germany, September 13-17, 1993. Proceedings (Lecture Notes in Computer Science)?

>> Click Here to See All Customer Reviews & Ratings Now
Read More...

Beginning POJOs: Lightweight Java Web Development Using Plain Old Java Objects in Spring, Hibernate, and Tapestry (Novice to Professional) Review

Beginning POJOs: Lightweight Java Web Development Using Plain Old Java Objects in Spring, Hibernate, and Tapestry (Novice to Professional)
Average Reviews:

(More customer reviews)
Are you looking to buy Beginning POJOs: Lightweight Java Web Development Using Plain Old Java Objects in Spring, Hibernate, and Tapestry (Novice to Professional)? Here is the right place to find the great deals. we can offer discounts of up to 90% on Beginning POJOs: Lightweight Java Web Development Using Plain Old Java Objects in Spring, Hibernate, and Tapestry (Novice to Professional). Check out the link below:

>> Click Here to See Compare Prices and Get the Best Offers

Beginning POJOs: Lightweight Java Web Development Using Plain Old Java Objects in Spring, Hibernate, and Tapestry (Novice to Professional) ReviewMissourians -- residents of the "Show Me State" -- are sure to appreciate this unusual book on lightweight Java development with "Plain Old Java Objects." In a fast-paced 10 chapters, Brian Sam-Bodden builds a single complete application, all the way through. Believe it or else, he starts with a detailed design, then talks about fundamental tools like Eclipse and Ant, and before you know it he's implemented the persistence and business tiers. Screenshots and detailed instructions will help you get your environment installed and set up in no time.
The first five chapters of the book are astonishingly linear as the application is developed to this point, with each technology choice presented as a fait accompli. In this day of political correctness and cultural relativism, many authors bend over backwards to consider all the alternatives to every decision they make, and I felt that Sam-Bodden's approach was incredibly refreshing. Eclipse, Ant, Hibernate, EJB3 on JBoss. Take it or leave it.
I was therefore almost disappointed when, in Chapters 6 and 7, he considers several different alternative implementations of the business and presentation tiers. Still, showing how to use Tapestry and especially Spring offsets the raised eyebrows some of you might have on hearing that a book on POJOs was advocating using EJBs -- even though the radically reworked EJB3 specification does indeed let you use Plain Old Java Objects to implement the business layer.
From this point, the book gets more conventional, with the traditional tacked-on chapter about testing that nevertheless asks you to do testing as an integral part of development.
Although some of the technology choices and development approaches may stretch your personal definition of the term "lightweight," this is still the best book on end-to-end development of modern enterprise applications that I've seen. If you have a hint of the Missourian in you, and you'd like someone to show you how things are done, this book was written with you in mind.Beginning POJOs: Lightweight Java Web Development Using Plain Old Java Objects in Spring, Hibernate, and Tapestry (Novice to Professional) Overview
Beginning POJOs introduces you to open source lightweight web development using Plain Old Java Objects (POJOs) and the tools and frameworks that enable this. Tier by tier, this book guides you through the construction of complex but lightweight enterprise Java-based web applications. Such applications are centered around several major open source lightweight frameworks, including Spring, Hibernate, Tapestry, and JBoss (including the new lightweight JBoss Seam).

Additional support comes from the most successful and prevalent open-source tools: Eclipse and Ant, and the increasingly popular TestNG. This book is ideal if you're new to open source and lightweight Java. You'll learn how to build a complete enterprise Java-based web application from scratch, and how to integrate the different open source frameworks to achieve this goal. You'll also learn techniques for rapidly developing such applications. NOTE: The source code files to accompany this book are now hosted at https://github.com/bsbodden/techconf.


Want to learn more information about Beginning POJOs: Lightweight Java Web Development Using Plain Old Java Objects in Spring, Hibernate, and Tapestry (Novice to Professional)?

>> Click Here to See All Customer Reviews & Ratings Now
Read More...

EJB Design Patterns: Advanced Patterns, Processes, and Idioms Review

EJB Design Patterns: Advanced Patterns, Processes, and Idioms
Average Reviews:

(More customer reviews)
Are you looking to buy EJB Design Patterns: Advanced Patterns, Processes, and Idioms? Here is the right place to find the great deals. we can offer discounts of up to 90% on EJB Design Patterns: Advanced Patterns, Processes, and Idioms. Check out the link below:

>> Click Here to See Compare Prices and Get the Best Offers

EJB Design Patterns: Advanced Patterns, Processes, and Idioms ReviewI have already read a lot of books about best practices regarding
J2EE and EJB development. In my opinion EJB Design Patterns from
Floyd Marinescu is one of the best references for EJB Design Patterns
which covers all important topics about Pattern-Driven EJB development.
Floyd is Principal at "The MIDDLEWARE Company" and one of the founders
of TheServerSide, the reference Portal for the J2EE community.
The book involves standard patterns like the Session Facade and
DTO (Data Transfer Objects) as well as extensions like a pattern
for asynchronous communication (Message Facade) between a client
application and the service layer in the middle tier.
The layered EJB architecture which includes the application, service,
domain, and persistence layer are discussed in detail. Useful hints
for the EJB development process and system design complete the book.
The book is a good choice for EJB developers and enterprise
architects.
One of the big advantages of the book are the chapters "From
requirements to Pattern-Driven Design" and "EJB development with
Jakarta Ant and unit testing with JUnit" which are dealing with
the solution of real world problems.
The chapter about Entity Beans vs. Java Data Objects (JDO) is a
must for every domain developer.
Floyd's book is well written and easy to understand for experienced
developers and architects. The Java source code examples of the book
are well documented and useful, if one desires a complete impression
of EJB development.
To be honest, the book is one of the favourites in my bookshelf and
I consult it whenever possible to learn more about that important
technology.
The book also includes a nice poster that shows the EJB Design
Patterns and an additional text to avoid pit falls. It's nice to
stand in front of this poster and think about that great server
side Java technology.EJB Design Patterns: Advanced Patterns, Processes, and Idioms OverviewA lot of programming involves solving the same kinds of basic problems. Well, what if a community of experts got together and pooled their knowledge to come up with the best programming practices for solving these problems? You would have what are known as design patterns.Author Floyd Marinescu, a leading expert on EJB, worked with the members of the EJB community of TheServerSide.com to put their collective knowledge together to build a library of design patterns, strategies, and best practices for EJB design and development. This treasure-trove of proven best practices will allow developers to quickly solve difficult programming assignments. Unlike other patterns books, this book goes beyond high-level designs to the actual code for implementing them, saving developers countless hours of time and effort when building scalable, reliable, and maintainable EJB systems.

Want to learn more information about EJB Design Patterns: Advanced Patterns, Processes, and Idioms?

>> Click Here to See All Customer Reviews & Ratings Now
Read More...

The Patterns Handbook: Techniques, Strategies, and Applications (SIGS Reference Library) Review

The Patterns Handbook: Techniques, Strategies, and Applications (SIGS Reference Library)
Average Reviews:

(More customer reviews)
Are you looking to buy The Patterns Handbook: Techniques, Strategies, and Applications (SIGS Reference Library)? Here is the right place to find the great deals. we can offer discounts of up to 90% on The Patterns Handbook: Techniques, Strategies, and Applications (SIGS Reference Library). Check out the link below:

>> Click Here to See Compare Prices and Get the Best Offers

The Patterns Handbook: Techniques, Strategies, and Applications (SIGS Reference Library) ReviewThis was the first patterns book I read, and I found it a very useful overview of a wide range of topics from many different perspectives. It isn't meant to be a catalogue of patterns.
The quality of the chapters is not consistent, as would be expected from such a wide range of authors. But the material is generally very accessible and useful.The Patterns Handbook: Techniques, Strategies, and Applications (SIGS Reference Library) OverviewIn The Patterns Handbook, Rising has selected a large number of seminal articles and essays that illustrate the growing importance of patterns in application development. A partial list of well published experts includes James Coplien, Kent Beck, Grady Booch, Ralph Johnson, Robert Martin, Andrew Koenig, and John Vlissides. This reference contains an overview, examples and experience, resources, an annotated bibliography, and contact information. In this important collection, you will find articles on pattern writing, pattern templates, system test patterns, frameworks and design patterns, how patterns work in teams, patterns and antipatterns, and patterns of thought.The use of patterns leads to successful solutions to recurring problems. This book will show you how to use patterns to improve productivity and quality and to become a better software designer.

Want to learn more information about The Patterns Handbook: Techniques, Strategies, and Applications (SIGS Reference Library)?

>> Click Here to See All Customer Reviews & Ratings Now
Read More...

Practical UML Statecharts in C/C++, Second Edition: Event-Driven Programming for Embedded Systems Review

Practical UML Statecharts in C/C++, Second Edition: Event-Driven Programming for Embedded Systems
Average Reviews:

(More customer reviews)
Are you looking to buy Practical UML Statecharts in C/C++, Second Edition: Event-Driven Programming for Embedded Systems? Here is the right place to find the great deals. we can offer discounts of up to 90% on Practical UML Statecharts in C/C++, Second Edition: Event-Driven Programming for Embedded Systems. Check out the link below:

>> Click Here to See Compare Prices and Get the Best Offers

Practical UML Statecharts in C/C++, Second Edition: Event-Driven Programming for Embedded Systems ReviewIf you are an accomplished or aspiring embedded systems programmer and resort to the "superloop" as your foremost implementation method, you absolutely MUST read this book.
While not new concepts to the industry, the concepts presented in Miro's book are certainly not commonplace in many of the embedded systems code I've seen over many years in the industry.
While UML makes for a clean, now defacto standard for presenting concepts, the real beauty in Miro's book is the use of a readily-available frameworks for immediately adopting the many lessons-learned and provided in the book. These complete, well written and excellently coded frameworks are available under the GPL and an alternate, low-cost license for those who wish to keep their code private.
For strong C programmers, the implementation of the frameworks is a delight as one reads through the code and is treated to an incredibly simple, lightweight and extremely powerful system that will forever put an end to your future plans to "superloop" again--albeit for any system where C (or C++) is adequately supported by the hardware. For anyone admitting that "we've always done superloop and it has always worked in the past," get ready for a real-time, highly responsive system that actually IS event driven and thrives in as little as a few bytes of RAM and perhaps a K of ROM.
For those who must hold on to the "superloop is king" mindset, consider the consequences of adding to your superloop an entirely new set of features and how that may affect the timing through your loop. I started with the "dining philosophers" example code discussed in the book and ported it to my own board (using a Renesas H8S-2166 microcontroller) and augmented the code to be responsive to external events (mechanical switches). This required software debouncing. While my "example" was somewhat "trivial" in terms of what the functionality actually did, it is, in my opinion, extremely typical of changing requirements of both new and legacy code in the day-to-day evolution of embedded systems programming.
My changes to the example code were to implement a "bike light" feature set. That is, whenever a switched was pressed, the bike light--if off--would illuminate. An LED on the board was used for this purpose. Pressed again, the light would blink. Pressed and held for 1 second while on or blinking, the light would turn off.
The typical implementation in superloop would often require a considerate approach to ensure that the new functionality was "injected" into the "right" part of the loop, so as to be of minimal impact to other areas of critical timing code. If any kind of action within the new code delayed the loop processing, then the whole of the superloop could come under further scrutiny and therefore cause more pain as one trials and tests system responsiveness on a number of potential new fronts.
Atop of this new functionality, the frameworks-provided QSpy code instrumentation system, which allows one to have a stream of information about the system states and transitions, was ported to use a UART on the H8S. Imagine adding all of this new functionality in a traditional superloop body of code. Now, imagine adding it in a matter of perhaps two hours using the frameworks AND not adversely impacting the "legacy" application code at all!
One of the most beautiful aspects of these frameworks is the ability to focus strictly on the code necessary for the task at hand instead of the entire system as a whole. The frameworks substantially frees the programmer from having to manually manage system responsiveness typical of the superloop.
Using UML to design and document an embedded system is relatively new to many embedded systems programmers. Miro also provides a free download stencil set for MS Visio for easily implementing statecharts, which should help those interested in pursuing the many benefits of the technology included in this book.
I first met Miro at a developer's conference in San Diego, CA. One thing that comes out in his book and his discussions of this exciting technology is his passion for it. I was very interested in it, as he was displaying his software running on a very resource constrained microcontroller--all in about 40 bytes of RAM or a bit less.
Drawn to his topic by his enthusiasm, I admired the frameworks even more as I began looking at the implementation and design of the code. The entire C bundle, with royalty-free 'private commerical use' license, one of either cooperative or preemptive schedulers (both are provided), event processor, code instrumentation support and more is all for under $2K. Of course, one may explore the entire frameworks for the cost of only a free download before ever making a licensing decision for a given product.
Combined with the low-cost solution of using such powerful frameworks in conjunction with learning the valuable content of this book, teams everywhere can exploit the years of experience and very robust, capable code in a matter of hours instead of weeks, months and even years of doing things the "old school" way using superloops and other facilities instead of truly event-driven designs.
This book and the free QF download are your entry into the 21st century of embedded systems programming. Because the code is provided in C, porting is rather easy and running on embedded systems and desktop systems is practical and easy. I was able to build and run the code as provided without modifications on my Linux, Mac and Windows systems and on the H8S and a Microchip PIC 24 with only a minimalist porting effort of about a half a day in each case. Imagine being able to run an entire real-time system that features excellent extensibility while freeing you from the rigors of managing superloop timing on your own hardware all within a few hours. Then, spend a couple of hours extending the system without impacting the rest of it? Lather, rinse, repeat...it is truly that simple and robust.
Best of all, this book will open your eyes to modern methods and concepts for programming event-driven embedded systems. That is, systems that respond to internal and external events that naturally occur in all embedded systems designs. It is my firm belief that after reading this book and exploring the code on your own, you'll discover why I so heartily endorse it and now share the passion Miro has for this wonderful, very lightweight but robust, complete solution for modern embedded systems programming.Practical UML Statecharts in C/C++, Second Edition: Event-Driven Programming for Embedded Systems OverviewPractical UML Statecharts in C/C++ Second Edition bridges the gap between high-level abstract concepts of the Unified Modeling Language (UML) and the actual programming aspects of modern hierarchical state machines (UML statecharts). The book describes a lightweight, open source, event-driven infrastructure, called QP that enables direct manual coding UML statecharts and concurrent event-driven applications in C or C++ without big tools.This book is presented in two parts. In Part I, you get a practical description of the relevant state machine concepts starting from traditional finite state automata to modern UML state machines followed by state machine coding techniques and state-machine design patterns, all illustrated with executable examples. In Part II, you find a detailed design study of a generic real-time framework indispensable for combining concurrent, event-driven state machines into robust applications. Part II begins with a clear explanation of the key event-driven programming concepts such as inversion of control ("Hollywood Principle"), blocking versus non-blocking code, run-to-completion (RTC) execution semantics, the importance of event queues, dealing with time, and the role of state machines to maintain the context from one event to the next. This background is designed to help software developers in making the transition from the traditional sequential to the modern event-driven programming, which can be one of the trickiest paradigm shifts. The lightweight QP event-driven infrastructure goes several steps beyond the traditional real-time operating system (RTOS). In the simplest configuration, QP runs on bare-metal microprocessor, microcontroller, or DSP completely replacing the RTOS. QP can also work with almost any OS/RTOS to take advantage of the existing device drivers, communication stacks, and other middleware. The accompanying website to this book contains complete open source code for QP, ports to popular processors and operating systems, including 80x86, ARM Cortex-M3, MSP430, and Linux, as well as all examples described in the book.*Focuses on core concepts rather than tools which are always changing allowing the reader to continue to use this information with various projects*Provides a complete, ready-to-use, open source software architecture for small and large embedded systems*Includes an extensive exampleusing the ARM Cortex-M3 throughout the book highlighting issues programmers and architects encounter in everyday life

Want to learn more information about Practical UML Statecharts in C/C++, Second Edition: Event-Driven Programming for Embedded Systems?

>> Click Here to See All Customer Reviews & Ratings Now
Read More...

Python Web Development with Django Review

Python Web Development with Django
Average Reviews:

(More customer reviews)
Are you looking to buy Python Web Development with Django? Here is the right place to find the great deals. we can offer discounts of up to 90% on Python Web Development with Django. Check out the link below:

>> Click Here to See Compare Prices and Get the Best Offers

Python Web Development with Django ReviewWe are a Python shop at work and have recently started developing in Django. So I picked this book up as a total beginner to Django, but an experienced Python programmer. I feel that the book would be more or less the same even for someone totally new to Python, because Django is definitely a different kind of beast.
Overall, this book was okay to good. I would give it 3.5 stars if I could. It is definitely targeted at beginners to Django (and possibly Python). As a Django beginner, I first ran through the tutorial on the Django website, because it is very thorough and good. I definitely recommend that as a starting place regardless of which book you end up buying. Then I cracked open this book. The first chapter is a 50-page introduction to Python, so I skipped that. Chapter 2 is a tutorial in which you build a simple blog. So by the time I had finished that chapter, I had built two different Django sites but not really read anything about the language or framework or theory thereof. I think this is a good thing, and this chapter is well-placed. Chapter 3 introduces Django. It covers dynamic web sites, communication, data storage, presentation, separating the layers (MVC), general django architecture, and "core philosophies of Django". It is a decent introduction, though I read through it quickly so I could get to the next three chapters.
The next three chapters make up the Django in Depth section and are the bread-and-butter of the book. The first chapter covers models, the second URLs/HTTP/views, and the third templates and form processing. For me, these were the chapters I was most looking forward to, where I would learn everything I needed to know to get started really understanding. And they let me down a bit. Each one was good in what it covered, but the problem was that it left out quite a bit. The part on the models themselves was pretty good and covered the necessities. But the part on querying was a little sparse. They left much for the reader to go to the documentation and find out. (But what's the point of the book, then?) I did think it was nice that they mentioned fixtures, as I had trouble finding that information online when I needed to set one up for work. The chapter on views was decent, but seemed to leave out too much detail. The section covering views specifically was short. Finally, the template/forms chapter again left the reader to find out critical details in the online documentation. First, the template section was short. Second, the forms section seemed long enough, but I just found that it wasn't that helpful when I was really creating forms for work.
The next four chapters are tutorials in which you build various applications. I haven't gone through these yet, but they look pretty good. I think Django is one of those things that is best learned in a very hands-on fashion. Perhaps some of the weaknesses of the previous three chapters are made up for here; but I doubt it, and if so feel that information should have still been included in the earlier chapters. (The book is fairly slim and could definitely be expanded.) Chapter 11 covers advanced Django programming, including customizing the admin, using syndication, generating downloadable files, enhancing Django's ORM with custom managers, and extending the template system. The chapter seems decent enough, although I haven't had to do any of these things yet. Likewise, with Chapter 12 covering advanced Django deployment, I haven't had to deploy anything yet so I only know that the chapter seems to cover some useful information.Python Web Development with Django OverviewUsing the simple, robust, Python-based Django framework, you can build powerful Web solutions with remarkably few lines of code. In Python Web Development with Django®, three experienced Django and Python developers cover all the techniques, tools, and concepts you need to make the most of Django 1.0, including all the major features of the new release. The authors teach Django through in-depth explanations, plus provide extensive sample code supported with images and line-by-line explanations. You'll discover how Django leverages Python's development speed and flexibility to help you solve a wide spectrum of Web development problems and learn Django best practices covered nowhere else. You'll build your first Django application in just minutes and deepen your real-world skills through start-to-finish application projects includingSimple Web log (blog) Online photo gallery Simple content management system Ajax-powered live blogger Online source code sharing/syntax highlighting tool How to run your Django applications on the Google App EngineThis complete guide starts by introducing Python, Django, and Web development concepts, then dives into the Django framework, providing a deep understanding of its major components (models, views, templates), and how they come together to form complete Web applications. After a discussion of four independent working Django applications, coverage turns to advanced topics, such as caching, extending the template system, syndication, admin customization, and testing. Valuable reference appendices cover using the command-line, installing and configuring Django, development tools, exploring existing Django applications, the Google App Engine, and how to get more involved with the Django community.Introduction 1Part I: Getting StartedChapter 1: Practical Python for Django 7Chapter 2: Django for the Impatient: Building a Blog 57Chapter 3: Starting Out 77Part II: Django in DepthChapter 4: Defining and Using Models 89Chapter 5: URLs, HTTP Mechanisms, and Views 117Chapter 6: Templates and Form Processing 135Part III: Django Applications by ExampleChapter 7: Photo Gallery 159Chapter 8: Content Management System 181Chapter 9: Liveblog 205Chapter 10: Pastebin 221Part IV: Advanced Django Techniques and FeaturesChapter 11: Advanced Django Programming 235Chapter 12: Advanced Django Deployment 261Part V: AppendicesAppendix A: Command Line Basics 285Appendix B: Installing and Running Django 295Appendix C: Tools for Practical Django Development 313Appendix D: Finding, Evaluating, and Using Django Applications 321Appendix E: Django on the Google App Engine 325Appendix F: Getting Involved in the Django Project 337Index 339Colophon 375

Want to learn more information about Python Web Development with Django?

>> Click Here to See All Customer Reviews & Ratings Now
Read More...

xUnit Test Patterns: Refactoring Test Code Review

xUnit Test Patterns: Refactoring Test Code
Average Reviews:

(More customer reviews)
Are you looking to buy xUnit Test Patterns: Refactoring Test Code? Here is the right place to find the great deals. we can offer discounts of up to 90% on xUnit Test Patterns: Refactoring Test Code. Check out the link below:

>> Click Here to See Compare Prices and Get the Best Offers

xUnit Test Patterns: Refactoring Test Code ReviewLet me start by stating the obvious: this is a patterns book about the organisation of tests and the workings of the xUnit family of unit testing frameworks. It is _not_ a book about Test Driven Development, although there is material that is pertinent to that. Given that the use of JUnit and TDD is pretty intertwined in the minds of many Java developers, it's worth making this distinction, so you know what sort of book you're getting. Speaking of JUnit, most of the code examples uses Java, although there are some examples in C#, VB and Ruby.
Like Martin Fowler's Patterns of Enterprise Application Architecture, the book is split into two main sections, a narrative that weaves together a lot of the patterns and strategies, and then a catalogue of individual patterns. Between the two, there is a catalogue of 'test smells', similar to the 'code smells' discussed by Fowler in Refactoring, which I would suggest can be read profitably with the narrative section, rather than used as reference material.
There are a lot of patterns here on the mechanics of xUnit, such as 'Test Runner', 'Garbage-Collected Teardown' and 'Named Test Suite'. I was a bit confused about who this material is aimed at -- maybe someone looking at porting xUnit to a new programming language would find it useful, but a lot of it is fairly obvious to anyone who's used an xUnit in a non-trivial fashion (and certainly, if you haven't done so, this book is not a format that makes for a good introduction), or requires playing against xUnit's strengths (e.g. not putting setup and teardown code in their eponymous methods), although there is good reason for doing so in some of the examples provided, such as databases.
Beyond this, there is some good stuff on design-for-testability patterns (e.g. dependency injection versus dependency lookup), value patterns to replace magic constants, custom assertions and custom creation and other utility methods to make the intent of tests more clear. This material, along with the test smells chapter, is where the real value of the book lies. It encourages the application of the same software engineering principles you would apply to your applications (encapsulation, intent-revealing names, Don't Repeat Yourself) as you would to your testing code, something that's surprisingly easy to overlook, at least in my experience.
Also, the material on 'Test Doubles' (mocks, stubs, dummies and their ilk) is extremely useful. It touches on designing with mocks only superficially, but it does provide a helpful taxonomy of what different classes of doubles do. Now, if only everyone would standardise on this nomenclature, it would make life a lot easier. I suggest we brandish this enormous book threateningly at anyone who refuses to toe the line, and that should do the trick.
Because, boy, this book is big (about 900 pages). To be honest, it's too big. I rarely complain about getting too much book for my money, but the likes of GoF, PoEAA and PoSA 1 manage to come in between 400-500ish pages, so there's no reason XTP couldn't. The advantage is that the patterns in the catalogue, which take up most of the space, stand alone, without requiring too much flicking backwards and forwards between patterns.
The disadvantage is that there is a lot of repetition, so unlike the three design patterns books I mentioned above, which I suspect most people read cover to cover (or maybe that was just me and I'm a complete freak), I would suggest only dipping into the catalogue as necessary. For instance, how much difference is there between the 'Testcase Class per Class', 'Testcase Class per Feature' and the 'Testcase Class per Fixture' patterns? Not a lot, as you might expect.
I definitely liked this book. I would have liked it even more if it came in at about half its size and I would have preferred more emphasis on test and assertion organisation than the mechanics of the xUnit framework, but maybe that would have been a different type of book to the one Gerard Meszaros intended. This is nonetheless a must buy for anyone who cares about unit testing.xUnit Test Patterns: Refactoring Test Code OverviewAutomated testing is a cornerstone of agiledevelopment. An effective testing strategy will deliver newfunctionality more aggressively, accelerate user feedback, and improvequality. However, for many developers, creating effective automatedtests is a unique and unfamiliar challenge.
xUnit Test Patternsis the definitive guide to writing automated tests using xUnit, themost popular unit testing framework in use today. Agile coach and testautomation expert Gerard Meszaros describes 68 proven patterns formaking tests easier to write, understand, and maintain. He then showsyou how to make them more robust and repeatable--and far morecost-effective.
Loaded with information,this book feels like three books in one. The first part is a detailedtutorial on test automation that covers everything from test strategyto in-depth test coding. The second part, a catalog of 18 frequentlyencountered "test smells," provides trouble-shooting guidelines to helpyou determine the root cause of problems and the most applicablepatterns. The third part contains detailed descriptions of eachpattern, including refactoring instructions illustrated by extensivecode samples in multiple programming languages.
Topics covered include

Writing better tests--and writing them faster
The four phases of automated tests: fixture setup, exercising the system under test, result verification, and fixture teardown
Improving test coverage by isolating software from its environment using Test Stubs and Mock Objects
Designing software for greater testability
Usingtest "smells" (including code smells, behavior smells, and projectsmells) to spot problems and know when and how to eliminate them
Refactoring tests for greater simplicity, robustness, and execution speed
Thisbook will benefit developers, managers, and testers working with anyagile or conventional development process, whether doing test-drivendevelopment or writing the tests last. While the patterns and smellsare especially applicable to all members of the xUnit family, they alsoapply to next-generation behavior-driven development frameworks such asRSpec and JBehave and to other kinds of test automation tools,including recorded test tools and data-driven test tools such as Fitand FitNesse.

Visual Summary of the Pattern Language Foreword Preface Acknowledgments Introduction Refactoring a Test PART I: The Narratives Chapter 1 A Brief Tour Chapter 2 Test Smells Chapter 3 Goals of Test Automation Chapter 4 Philosophy of Test Automation Chapter 5 Principles of Test Automation Chapter 6 Test Automation Strategy Chapter 7 xUnit Basics Chapter 8 Transient Fixture Management Chapter 9 Persistent Fixture Management Chapter 10 Result Verification Chapter 11 Using Test Doubles Chapter 12 Organizing Our Tests Chapter 13 Testing with Databases Chapter 14 A Roadmap to Effective Test Automation PART II: The Test Smells Chapter 15 Code Smells Chapter 16 Behavior Smells Chapter 17 Project Smells PART III: The Patterns Chapter 18 Test Strategy Patterns Chapter 19 xUnit Basics Patterns Chapter 20 Fixture Setup Patterns Chapter 21 Result Verification Patterns Chapter 22 Fixture Teardown Patterns Chapter 23 Test Double Patterns Chapter 24 Test Organization Patterns Chapter 25 Database Patterns Chapter 26 Design-for-Testability Patterns Chapter 27 Value Patterns PART IV: Appendixes Appendix A Test Refactorings Appendix B xUnit Terminology Appendix C xUnit Family Members Appendix D Tools Appendix E Goals and Principles Appendix F Smells, Aliases, and Causes Appendix G Patterns, Aliases, and Variations Glossary References Index


Want to learn more information about xUnit Test Patterns: Refactoring Test Code?

>> Click Here to See All Customer Reviews & Ratings Now
Read More...