وبلاگ بلیان

Test Driven Development: By Example (The Addison-Wesley Signature Series)

معرفی کتاب «Test Driven Development: By Example (The Addison-Wesley Signature Series)» نوشتهٔ Isabel Allende و Beck, Kent، منتشرشده توسط نشر Addison-Wesley Professional; Pearson Education (US) در سال 2003. این کتاب در فرمت pdf، زبان انگلیسی ارائه شده است.

Quite simply, test-driven development is meant to eliminate fear in application development. While some fear is healthy (often viewed as a conscience that tells programmers to "be careful!"), the author believes that byproducts of fear include tentative, grumpy, and uncommunicative programmers who are unable to absorb constructive criticism. When programming teams buy into TDD, they immediately see positive results. They eliminate the fear involved in their jobs, and are better equipped to tackle the difficult challenges that face them. TDD eliminates tentative traits, it teaches programmers to communicate, and it encourages team members to seek out criticism However, even the author admits that grumpiness must be worked out individually! In short, the premise behind TDD is that code should be continually tested and refactored. Kent Beck teaches programmers by example, so they can painlessly and dramatically increase the quality of their work.

Praise for Beyond Software Architecture

“Luke Hohmann is that rare software technologist who views software development from the viewpoint of the end user. He passionately believes that one hour spent with an end user is worth many hours making software architectural choices or days documenting perceived user requirements. Most of what is written about software development focuses on methods used to design and develop robust software. Luke’s latest effort, Beyond Software Architecture, illuminates the more mundane aspects of creating true business solutions by supporting the user throughout the lifecycle of the software product. By concerning himself with creating business value, Luke tightens the connection between a software application and the business function it performs.”

         &#8212Bruce Bourbon
             General Partner, Telos Venture Partners

“There are two kinds of people that read the Dilbert comic strip: folks that take a moment to marvel at how accurately it reflects life at their company before moving on to the next comic strip, and folks that think Dilbert is an amusing reminder that high tech companies can and should be better than Dilbert’s world. Anyone in the first group should stick to reading comics. This book is for people in the latter group.”

         —Tony Navarrete
             Vice President, Diamondhead Ventures

“Luke brings a proven methodology to the challenge of software development. In Beyond Software Architecture, Luke provides practical and proven techniques that all development executives can employ to improve the productivity of their software organization.”

         —G. Bradford Solso
             CEO, Taviz Technology

Beyond Software Architecture is the first book I have read which contains an insider’s perspective of both the business and technical facets of software architecture. This is a great book to get marketers and software managers on the same page!”

         &#8212Damon Schechter
             CEO, LOC Global
             author of Delivering the Goods

“There are books on technical architecture and books on product marketing, but few, if any, on how architecture and marketing information must be integrated for world class product development. Beyond Software Architecture provides this valuable bridge between technology and marketing&#8212it explains how to deliver quality products that are profitable in the marketplace.”

         &#8212Jim Highsmith
             Director, Cutter Consortium
             author of Adaptive Software Development

“Product development managers, marketing managers, architects, and technical leads from all functions should read this book. You’ll see a pragmatic view of how to define and use a product architecture throughout a project’s lifecycle and a product's lifetime.”

         &#8212Johanna Rothman
             Rothman Consulting Group, Inc.

“Luke Hohmann has captured the essence of product creation in his latest book. He cleverly discusses the need for both the marketing and engineering roles in product creation and ties the two together building a good foundation for understanding and executing successful product creation.”

         &#8212Lee Sigler
             Principal, 360 Market View, Inc.

“Finally a book that deals with those often ignored but critical operational issues like licensing, deployment, installation, configuration and support. Beyond Software Architecture is the “What they don't teach you at Harvard Business School” book for anyone who develops software products&#8212or buys them.”

         &#8212Mary Poppendieck
             Managing Director, Agile Alliance
             President, Poppendieck LLC

“Luke Hohmann delivers a passionate, articulate wake-up call to software architects: it ain’t just technical any more! Technical architectures have profound business ramifications, and ignoring the business ramifications of portability, usability, configuration, upgrade and release management, security, and other architectural choices can not only lead to project failures, but ultimately to nasty lawsuits from disappointed customers. Beyond Software Architecture is a must-read for successful software product managers!”

         &#8212Ed Yourdon
             Author of numerous books and articles on software development

Beyond Software Architecture is not just for software engineering professionals! Executives and product managers will find that the book provides the necessary background to make informed decisions about the software that their companies build. I have found that the book is a useful tool for building consensus between management and engineering, because it discusses business and customer-related issues without delving too deeply into implementation details.”

         &#8212David Chaiken
             Vice President, Systems Architecture
             AgileTV Corporation

“Product marketing influences product architecture. This shouldn’t be a surprise, yet most texts on software architecture are silent on this fact. This may be because we lack the language for distinguishing between the technical aspects of an architecture and the marketing aspects. Beyond Software Architecture provides the language to draw this important distinction, and provides strategies for overall architectural success.”

         &#8212Dave W. Smith

Beyond Software Architecture, as the title implies, successfully addresses the often neglected aspects of developing total solutions. Hohmann demonstrates both passion and depth for the broad set of topics discussed.”

         &#8212Craig Priess
             Director Product Management, Resonant Software

“Looking through my technical library, it’s apparent that many books are obsolete, casualties of technical innovation and change. There are a few, however, that remain and continue to be relevant. Adding Luke Hohmann’s new book, Beyond Software Architecture: Creating and Sustaining Winning Solutions expands that selection and fills an important gap. It is the first book that I recall presenting a holistic approach to software creation. Going beyond the technical aspects by weaving together and linking critical business and marketing development in such a way to elevate and show how both technical and marketing processes must coalesce to create a winning solution. The topic's importance extends beyond programmers, designers and other technical staff, just as does its content. For marketing professionals, it shows how their decisions and strategies can impact technical decisions. For consumers, it can give them insight on the best ways to work with software manufacturers. For the software entrepreneur, it offers a plan for creating a successful venture. The content, at just the right amount of detail, is presented in easy-to-understand language and in such a way that the information is easy to retain and apply. The topics are timeless. The book will be relevant for a long time.”

         &#8212Clay Miller

“I highly recommend this book. As a former software company CEO and founder I have worked with many software engineers and had a number of VPs of engineering report to me. Luke was and is one of the best. He is not only a great engineer, but has a keen grasp of the strategic business issues that must drive good code and architectural decisions. I consider Beyond Software Architecture required reading for anyone building software systems.”

         &#8212Kevin Rivette
             Executive Advisor, BCG Consulting
             author of Rembrandts In The Attic

“Perhaps you’ve met, or worked with, or heard speak at events, or read the writings of someone who expects reverence because he commands academic knowledge of the latest software patterns, technologies, or development processes and tools. So what, you say. Suppose you take such knowledge for granted. Suppose that knowledge is the minimum qualification for a member of your team. Then what? What separates a real contributor to the success of your project and organization, from the average bookish expert of the day? In Beyond Software Architecture, Luke Hohmann writes of the stuff that makes up those answers. Installation and upgrade. Configurability and customization of your software. Integration with other software. Usability. Logging. Interdepartmental processes and release management. Business models, licensing, and deployment choices. The stuff that makes software development much bigger, and much messier, than UML diagrams of some pattern implemented with components. The stuff that makes software development real. Luke knows because he’s been in the trenches, trying to make businesses successful. He spends his time doing it more than writing and talking about it. But now he distills his insights and shares the benefit of his experience. If you’re like me, you’ll find yourself nodding your head and underlining passages as you read this book. Luke’s observations will resonate with you. Your organization, and the software development profession as a whole, can benefit from using the vocabulary and ideas in this book. So you’ll want to recommend it to others, which is exactly what I’m doing here.”

         &#8212Randy Stafford
             Chief Architect, IQNavigator, Inc.

“Hohmann’s book provides a unique perspective on how the many and subtle technology decisions shape the economic and strategic landscape. Corporate strategists in many industries will find these insights enormously valuable.”

         &#8212Martha Amram
             Strategic Advisor and Consultant
             author of Value Sweep and co-author of Real Options

“Luke put his tremendous experience to good use by eliminating the us versus them approach of marketing and engineering departments. This book is a must for every senior engineer, software architect, and product manager. With the practical advice in this book they can concentrate on beating the competitors.”

         &#8212Heinrich Gantenbein

“I once was a QA manager for Luke Hohmann. I can tell you the guy knows competitive software development. He was in the trenches with us, working through technical problems and sweating the difficult business decisions. He’s uniquely qualified to write about both the business and technical side of software architecture, and this book successfully bridges both worlds. The result is a seminal handbook for product managers and directors of software engineering.”

         &#8212James Bach
             Founder, Satisfice, Inc.

“Too many times my firm is asked to resolve a dispute that could have been avoided had the companies involved with the dispute more clearly defined their business and licensing models before the contract was signed. In Beyond Software Architecture, Luke Hohmann clearly explains how to avoid unnecessary and costly disputes regarding business and licensing models. This is a must read book for senior product managers and technical executives.”

         &#8212Rob Sterne
             Founder, Sterne, Kessler, Goldstein and Fox
             International Authority in Intellectual Property

“Luke Hohmann’s excellent BSA communicates essential hard-won insights from a rare individual&#8212both architect and business leader&#8212who shows us that architecture is more than describing layers; it’s about creating winning solutions through understanding, and resolving the market, business, and technical forces.”

         &#8212Craig Larman
             author, Applying UML and Patterns: An Introduction to OOA&D and the Rational Unified Process

“By stepping back and evaluating the interaction between business drivers and software development, Beyond Software Architecture provides the perspective to create a winning solution. This book is a practical guide for achieving quick time to market solutions through the identification of pitfalls and suggests pragmatic alternatives to effective solution development. Real life examples provide an instructional view of the life cycle phases, including clear roles and responsibilities, as seen by the entire project team. Knowing when to give up the ghost, seek the help of others, or simply leverage a proven model, Beyond Software Architecture explores the alternatives and identifies key decision points. A must read for software architects and product managers seeking an understanding of the challenges and dynamics of a successful software development effort, and a winning solution&#8212the first time.”

         &#8212Mark Welke
             High Availability Marketing Manager, Hewlett Packard

“The thing you need to consider when creating a great application is “Everything.” Great applications do not usually come from a single great idea, great architecture, or great appreciation of the customer’s need. Instead they come out of a unique confluence of a large number of factors encompassing marketing, technology, psychology, support, economics, legal factors, and more. While many books address individual aspects of software application development, Luke Hohmann’s book, Beyond Software Architecture, addresses a very broad range of topics, all of which should be addressed in the creation of every application, but often aren’t. I would recommend that anyone involved in the creation of a software application read this book as a guide to the things that need to be considered in the process. No book can cover “everything,” but this one is a laudable attempt.”

         &#8212Jim Gay
             One Jump Consulting

“A successful software product’s technical architecture must align with the realities of the marketplace. While the goal is obvious, marketers and technologist often find themselves in two warring camps, separated by a chasm of incompatible attitudes and expectations. If you want to close this gap and focus on product success, this book is required reading for both sides.”

         &#8212Dave Quick
             Architect, Integrated Solutions Development Group, Microsoft, Inc.

“As a technologist who has transitioned to product team leadership, this book distils many of the lessons I’ve learned through study, trial, and error. As someone who still bridges the gap between software development and executive management, I found this book a great refresher and filled with little “oh yeah!” insights. And, as I continue to work with teams to manage and develop new products, I’m sure I’ll use it as a reference and a teaching resource, bringing the “big picture” into view and avoiding costly pitfalls. Anyone managing product development or marketing, aspiring to manage, or unhappy with current management should definitely read Hohmann’s work.”

         &#8212Todd Girvin
             President, Optiview Inc.

“Over the years, I’ve seen many projects that have failed, or struggled, to cross the bridge between new product invention and creating a winning solution. This book provides a practical set of guidelines—it’s a useful, and usable, book.”

         —Dan'l Lewin
             Corporate Vice President of Microsoft .NET Business Development

“The real magic happens where business and technology ideas meet. This book will help you make the connection.”

         —David A. Lancashire
             CEO, Geniant

Successfully managing the relationship between business and technology is a daunting task faced by all companies in the twenty-first century. Beyond Software Architecture is a practical guide to properly managing this mission-critical relationship. In our modern economy, every software decision can have a significant impact on business; conversely, most business decisions will influence a software application's viability. This book contains keen insights and useful lessons about creating winning software solutions in the context of a real-world business.

Software should be designed to deliver value to an organization, but all too often it brings turmoil instead. Powerful applications are available in the marketplace, but purchasing or licensing these technologies does not guarantee success. Winning solutions must be properly integrated into an organization's infrastructure.

Software expert Luke Hohmann teaches you the business ramifications of software-architecture decisions, and further instructs you on how to understand and embrace the business issues that must be resolved to achieve software success. Using this book as a roadmap, business managers and development teams can safely navigate the minefield of important decisions that they face on a regular basis. The resulting synergy between business and technology will allow you to create winning technology solutions, and ensure your organization's success--now and in the future.

Would you like to use a consistent visual notation for drawing integration solutions? Look inside the front cover. Do you want to harness the power of asynchronous systems without getting caught in the pitfalls? See "Thinking Asynchronously" in the Introduction. Do you want to know which style of application integration is best for your purposes? See Chapter 2, Integration Styles. Do you want to learn techniques for processing messages concurrently? See Chapter 10, Competing Consumers and Message Dispatcher. Do you want to learn how you can track asynchronous messages as they flow across distributed systems? See Chapter 11, Message History and Message Store. Do you want to understand how a system designed using integration patterns can be implemented using Java Web services, .NET message queuing, and a TIBCO-based publish-subscribe architecture? See Chapter 9, Interlude: Composed Messaging. Utilizing years of practical experience, seasoned experts Gregor Hohpe and Bobby Woolf show how asynchronous messaging has proven to be the best strategy for enterprise integration success. However, building and deploying messaging solutions presents a number of problems for developers. Enterprise Integration Patterns provides an invaluable catalog of sixty-five patterns, with real-world solutions that demonstrate the formidable of messaging and help you to design effective messaging solutions for your enterprise. The authors also include examples covering a variety of different integration technologies, such as JMS, MSMQ, TIBCO ActiveEnterprise, Microsoft BizTalk, SOAP, and XSL. A case study describing a bond trading system illustrates the patterns in practice, and the book offers a look at emerging standards, as well as insights into what the future of enterprise integration might hold. This book provides a consistent vocabulary and visual notation framework to describe large-scale integration solutions across many technologies. It also explores in detail the advantages and limitations of asynchronous messaging architectures. The authors present practical advice on designing code that connects an application to a messaging system, and provide extensive information to help you determine when to send a message, how to route it to the proper destination, and how to monitor the health of a messaging system. If you want to know how to manage, monitor, and maintain a messaging system once it is in use, get this book. 0321200683B09122003

Clean code that works--now. This is the seeming contradiction that lies behind much of the pain of programming. Test-driven development replies to this contradiction with a paradox--test the program before you write it.

A new idea? Not at all. Since the dawn of computing, programmers have been specifying the inputs and outputs before programming precisely. Test-driven development takes this age-old idea, mixes it with modern languages and programming environments, and cooks up a tasty stew guaranteed to satisfy your appetite for clean code that works--now.

Developers face complex programming challenges every day, yet they are not always readily prepared to determine the best solution. More often than not, such difficult projects generate a great deal of stress and bad code. To garner the strength and courage needed to surmount seemingly Herculean tasks, programmers should look to test-driven development (TDD), a proven set of techniques that encourage simple designs and test suites that inspire confidence.

By driving development with automated tests and then eliminating duplication, any developer can write reliable, bug-free code no matter what its level of complexity. Moreover, TDD encourages programmers to learn quickly, communicate more clearly, and seek out constructive feedback.

Readers will learn to:

  • Solve complicated tasks, beginning with the simple and proceeding to the more complex.
  • Write automated tests before coding.
  • Grow a design organically by refactoring to add design decisions one at a time.
  • Create tests for more complicated logic, including reflection and exceptions.
  • Use patterns to decide what tests to write.
  • Create tests using xUnit, the architecture at the heart of many programmer-oriented testing tools.

This book follows two TDD projects from start to finish, illustrating techniques programmers can use to easily and dramatically increase the quality of their work. The examples are followed by references to the featured TDD patterns and refactorings. With its emphasis on agile methods and fast development strategies, Test-Driven Development is sure to inspire readers to embrace these under-utilized but powerful techniques.

0321146530B10172002

Annotation Clean code that works--now. This is the seeming contradiction that lies behind much of the pain of programming. Test-driven development replies to this contradiction with a paradox--test the program before you write it. A new idea? Not at all. Since the dawn of computing, programmers have been specifying the inputs and outputs before programming precisely. Test-driven development takes this age-old idea, mixes it with modern languages and programming environments, and cooks up a tasty stew guaranteed to satisfy your appetite for clean code that works--now. Developers face complex programming challenges every day, yet they are not always readily prepared to determine the best solution. More often than not, such difficult projects generate a great deal of stress and bad code. To garner the strength and courage needed to surmount seemingly Herculean tasks, programmers should look to test-driven development (TDD), a proven set of techniques that encourage simple designs and test suites that inspire confidence. By driving development with automated tests and then eliminating duplication, any developer can write reliable, bug-free code no matter what its level of complexity. Moreover, TDD encourages programmers to learn quickly, communicate more clearly, and seek out constructive feedback. Readers will learn to: Solve complicated tasks, beginning with the simple and proceeding to the more complex. Write automated tests before coding. Grow a design organically by refactoring to add design decisions one at a time. Create tests for more complicated logic, including reflection and exceptions. Use patterns to decide what tests to write. Create tests using xUnit, the architecture at the heart of many programmer-oriented testing tools. This book follows two TDD projects from start to finish, illustrating techniques programmers can use to easily and dramatically increase the quality of their work. The examples are followed by references to the featured TDD patterns and refactorings. With its emphasis on agile methods and fast development strategies, Test-Driven Development is sure to inspire readers to embrace these under-utilized but powerful techniques. 0321146530B10172002 The practice of enterprise application development has benefited from the emergence of many new enabling technologies. Multi-tiered object-oriented platforms, such as Java and.NET, have become commonplace. These new tools and technologies are capable of building powerful applications, but they are not easily implemented. Common failures in enterprise applications often occur because their developers do not understand the architectural lessons that experienced object developers have learned. Patterns of Enterprise Application Architecture is written in direct response to the stiff challenges that face enterprise application developers. The author, noted object-oriented designer Martin Fowler, noticed that despite changes in technology--from Smalltalk to CORBA to Java to.NET--the same basic design ideas can be adapted and applied to solve common problems. With the help of an expert group of contributors, Martin distills over forty recurring solutions into patterns. The result is an indispensable handbook of solutions that are applicable to any enterprise application platform. This book is actually two books in one. The first section is a short tutorial on developing enterprise applications, which you can read from start to finish to understand the scope of the book's lessons. The next section, the bulk of the book, is a detailed reference to the patterns themselves. Each pattern provides usage and implementation information, as well as detailed code examples in Java or C#. The entire book is also richly illustrated with UML diagrams to further explain the concepts. Armed with this book, you will have the knowledge necessary to make important architectural decisions about building an enterprise application and the proven patterns for use when building them. The topics covered include · Dividing an enterprise application into layers · The major approaches to organizing business logic · An in-depth treatment of mapping between objects and relational databases · Using Model-View-Controller to organize a Web presentation · Handling concurrency for data that spans multiple transactions · Designing distributed object interfaces Cover......Page 1 Contents......Page 8 Preface......Page 10 Acknowledgments......Page 16 Introduction......Page 18 PART I: The Money Example......Page 22 Chapter 1: Multi-Currency Money......Page 24 Chapter 2: Degenerate Objects......Page 32 Chapter 3: Equality for All......Page 36 Chapter 4: Privacy......Page 40 Chapter 5: Franc-ly Speaking......Page 44 Chapter 6: Equality for All, Redux......Page 48 Chapter 7: Apples and Oranges......Page 54 Chapter 8: Makin’ Objects......Page 56 Chapter 9: Times We’re Livin’ In......Page 60 Chapter 10: Interesting Times......Page 66 Chapter 11: The Root of All Evil......Page 72 Chapter 12: Addition, Finally......Page 76 Chapter 13: Make It......Page 82 Chapter 14: Change......Page 88 Chapter 15: Mixed Currencies......Page 94 Chapter 16: Abstraction, Finally......Page 98 Chapter 17: Money Retrospective......Page 102 PART II: The xUnit Example......Page 110 Chapter 18: First Steps to xUnit......Page 112 Chapter 19: Set the Table......Page 118 Chapter 20: Cleaning Up After......Page 122 Chapter 21: Counting......Page 126 Chapter 22: Dealing with Failure......Page 130 Chapter 23: How Suite It Is......Page 134 Chapter 24: xUnit Retrospective......Page 140 PART III: Patterns for Test-Driven Development......Page 142 Chapter 25: Test-Driven Development Patterns......Page 144 Chapter 26: Red Bar Patterns......Page 154 Chapter 27: Testing Patterns......Page 164 Chapter 28: Green Bar Patterns......Page 172 Chapter 29: xUnit Patterns......Page 178 Chapter 30: Design Patterns......Page 186 Chapter 31: Refactoring......Page 202 Chapter 32: Mastering TDD......Page 214 Appendix I: Influence Diagrams......Page 228 Appendix II: Fibonacci......Page 232 Afterword......Page 236 D......Page 238 M......Page 239 T......Page 240 X–Z......Page 241 Patterns of Enterprise Application Architecture is written in direct response to the stiff challenges that face enterprise application developers. The author, noted object-oriented designer Martin Fowler, noticed that despite changes in technology--from Smalltalk to CORBA to Java to .NET--the same basic design ideas can be adapted and applied to solve common problems. With the help of an expert group of contributors, Martin distills over forty recurring solutions into patterns. The result is an indispensable handbook of solutions that are applicable to any enterprise application platform. This book is actually two books in one. The first section is a short tutorial on developing enterprise applications, which you can read from start to finish to understand the scope of the book's lessons. The next section, the bulk of the book, is a detailed reference to the patterns themselves. Each pattern provides usage and implementation information, as well as detailed code examples in Java or C#. The entire book is also richly illustrated with UML diagrams to further explain the concepts. Armed with this book, you will have the knowledge necessary to make important architectural decisions about building an enterprise application and the proven patterns for use when building them Developers of enterprise applications (e.g reservation systems, supply chain programs, financial systems, etc.) face a unique set of challenges, different than those faced by their desktop system and embedded system peers. For this reason, enterprise developers must uncover their own solutions. In this new book, noted software engineering expert Martin Fowler turns his attention to enterprise application development. He helps professionals understand the complex -- yet critical -- aspects of architecture. While architecture is important to all application development, it is particularly critical to the success of an enterprise project, where issues such as performance and concurrent multi-user access are paramount. The book presents patterns (proven solutions to recurring problems) in enterprise architecture, and the context provided by the author enables the reader to make the proper choices when faced with a difficult design decision. Annotation At last, a book that provides the software engineering community with a clearer understanding of the business value of software architecture. There are currently a significant number of books on creating, documenting, and implementing software architecture, but precious few resources have addressed how to build a software architecture that aligns with a customer's overall business goals. In this new book, Luke Hohmann borrows from his extensive experience managing successful enterprise software projects to provide practical wisdom on creating and sustaining winning software solutions. This book helps technologists grasp the business ramifications of their decisions, and provides business-oriented software professionals (e.g. sales people and marketers) with better knowledge of how robust software can be built and maintained. "This book follows two TDD projects from start to finish, illustrating techniques programmers can use to easily and dramatically increase the quality of their work. The examples are followed by references to the featured TDD patterns and refactorings. With its emphasis on agile methods and fast development strategies, Test-Driven Development is sure to inspire readers to embrace these under-utilized but powerful techniques."--Jacket Contains insights and lessons about creating winning software solutions in the context of a real-world business. This book provides practical techniques that development executives can employ to improve the productivity of their software organization. It deals with issues like licensing, deployment, installation, configuration, and support. A collection of hands-on lessons based upon the authors' considerable experience in enterprise integration, the 65 patterns included with this guide show how to use message-oriented middleware to connect enterprise applications Martin Fowler With Contributions From David Rice ... [et Al.]. Includes Bibliographical References (p. 511-516) And Index.
دانلود کتاب Test Driven Development: By Example (The Addison-Wesley Signature Series)