How we did it:
For any feedback, any questions, any notes or just for chat - feel free to follow us on social networks
Michael C. Feathers
The average book on Agile software development describes a fairyland of greenfield projects, with wall-to-wall tests that run after every few edits, and clean & simple source code.
The average software project, in our industry, was written under some aspect of code-and-fix, and without automated unit tests. And we can't just throw this code away; it represents a significant effort debugging and maintaining. It contains many latent requirements decisions. Just as Agile processes are incremental, Agile adoption must be incremental too. No more throwing away code just because it looked at us funny.
Mike begins his book with a very diplomatic definition of "Legacy". I'l skip ahead to the undiplomatic version: Legacy code is code without unit tests.
Before cleaning that code up, and before adding new features and removing bugs, such code must be de-legacified. It needs unit tests.
To add unit tests, you must change the code. To change the code, you need unit tests to show how safe your change was.
The core of the book is a cookbook of recipes to conduct various careful attacks. Each presents a particular problem, and a relatively safe way to migrate the code towards tests.
Code undergoing this migration will begin to experience the benefits of unit tests, and these benefits will incrementally make new tests easier to write. These efforts will make aspects of a legacy codebase easy to change.
It's an unfortunate commentary on the state of our programming industry how much we need this book.
Ralph Johnson, Erich Gamma, John Vlissides, Richard Helm
Capturing a wealth of experience about the design of object-oriented software, four top-notch designers present a catalog of simple and succinct solutions to commonly occurring design problems. Previously undocumented, these 23 patterns allow designers to create more flexible, elegant, and ultimately reusable designs without having to rediscover the design solutions themselves. The authors begin by describing what patterns are and how they can help you design object-oriented software. They then go on to systematically name, explain, evaluate, and catalog recurring designs in object-oriented systems. With Design Patterns as your guide, you will learn how these important patterns fit into the software development process, and how you can leverage them to solve your own design problems most efficiently. Each pattern describes the circumstances in which it is applicable, when it can be applied in view of other design constraints, and the consequences and trade-offs of using the pattern within a larger design. All patterns are compiled from real systems and are based on real-world examples. Each pattern also includes code that demonstrates how it may be implemented in object-oriented programming languages like C++ or Smalltalk. 0201633612B07092001
Flash has long been one of the most approachable, user-friendly tools for creating web-based animations, games, and applications. This has contributed to making it one of the most widely used programs for creating interactive web content. With each new version of Flash, ActionScript, its built-in scripting language, has become more powerful and a little more complex, too. ActionScript, now at version 3.0, has significantly matured as a programming language, bringing power and speed only previously dreamed about to Flash-based animation, going far beyond traditionally used keyframes and tweens. The material inside this book covers everything you need to know to harness the power of ActionScript 3.0. First, all the basics of script-based animation and setting up an ActionScript 3.0 project are covered. An introduction to object-oriented programming follows, with the new syntax, events, and rendering techniques of ActionScript 3.0 explained, giving you the confidence to use the language, whether starting from scratch or moving up from ActionScript 2.0. The book goes on to provide information on all the relevant trigonometry you will need, before moving on to physics concepts such as acceleration, velocity, easing, springs, collision detection, conservation of momentum, 3D, and forward and inverse kinematics. In no time at all, you'll both understand the concepts of scripted animation and have the ability to create all manner of exciting animations and games.
This book is a compilation of advanced ActionScript 3.0 animation techniques for any user creating games, user interaction, or motion control with ActionScript. It's an anthology of topics that follow from the author's earlier book, Foundation ActionScript 3.0 Animation: Making Things Move, and things that became possible in version 10 of Flash Player. This book covers a diverse selection of topics that don't necessarily lead one into the other. You don't need to start with Chapter 1 and read it cover to cover. Just start with any chapter that looks interesting and jump around as you see fit. In this book, you'll find chapters on advanced collision detection, artificial intelligence and steering behaviors, isometric projection, using the camera and microphone for input, 3D, and much, much more. AdvancED ActionScript 3.0 Animation is also more experimental in nature. The techniques shown here might not be the best way to do things, but they should work well and get you started in your own efforts to achieve a perfect implementation. In fact, many of the chapters can be seen as introductions to very complex topics that could fill a whole book by themselves. Many of these subjects have been extensively covered elsewhere, but not necessarily targeted for Flash or ActionScript 3.0. So it took a fair amount of work to pull the data together and get it all working and explain it all clearly in ActionScript. This book will inspire you to find out about subjects that you might not have considered before, acting as a springboard into your own research into the possibilities of ActionScript 3.0.
David Stiller, Rich Shupe, Jen deHaan, Darren Richardson
"No matter what your background, the pages that follow will provide you with some excellent knowledge, insight, and even a little bit of wisdom in the realm of Flash and ActionScript. Happy learning!"-- Branden Hall, from the Foreword Written by Flash insiders with extensive knowledge of the technology, this guide is designed specifically to help Flash designers and developers make the leap from ActionScript 2.0 to the new object-oriented ActionScript 3.0 quickly and painlessly. Formatted so you can find any topic easily, ActionScript 3.0 Quick Reference Guide explains: Object-oriented programming (OOP) concepts, such as packages and classes ActionScript 3.0 features and player enhancements that improve performance Workflow differences between ActionScript 2.0 and ActionScript 3.0 including tools, code editing, component sets, and image and font rendering Where did it go? A guide to help you find familiar features in ActionScript 3.0, such as global functions, operators, properties, and statements How do I? Step-by-step solutions for performing tasks with ActionScript 3.0, including input, sound, video, display, events, text, and more Also included are overviews of Flash and ActionScript features and workflows. ActionScript 3.0 is a huge upgrade to Flash's programming language -- and this guide helps you upgrade your skills to match it.