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.
Features the best practices in the art and science of constructing software--topics include design, applying good techniques to construction, eliminating errors, planning, managing construction activities, and relating personal character to superior software. Original. (Intermediate)
Stephane Faroult, Peter Robson
For all the buzz about trendy IT techniques, data processing is still at the core of our systems, especially now that enterprises all over the world are confronted with exploding volumes of data. Database performance has become a major headache, and most IT departments believe that developers should provide simple SQL code to solve immediate problems and let DBAs tune any "bad SQL" later. In The Art of SQL, author and SQL expert Stephane Faroult argues that this "safe approach" only leads to disaster. His insightful book, named after Art of War by Sun Tzu, contends that writing quick inefficient code is sweeping the dirt under the rug. SQL code may run for 5 to 10 years, surviving several major releases of the database management system and on several generations of hardware. The code must be fast and sound from the start, and that requires a firm understanding of SQL and relational theory. The Art of SQL offers best practices that teach experienced SQL users to focus on strategy rather than specifics. Faroult's approach takes a page from Sun Tzu's classic treatise by viewing database design as a military campaign. You need knowledge, skills, and talent. Talent can't be taught, but every strategist from Sun Tzu to modern-day generals believed that it can be nurtured through the experience of others. They passed on their experience acquired in the field through basic principles that served as guiding stars amid the sound and fury of battle. This is what Faroult does with SQL. Like a successful battle plan, good architectural choices are based on contingencies. What if the volume of this or that table increases unexpectedly? What if, following a merger, the number of users doubles? What if you want to keep several years of data online? Faroult's way of looking at SQL performance may be unconventional and unique, but he's deadly serious about writing good SQL and using SQL well. The Art of SQL is not a cookbook, listing problems and giving recipes. The aim is to get you-and your manager-to raise good questions.
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.
William Sanders, Chandima Cumaranatunge
Now that ActionScript is reengineered from top to bottom as a true object-oriented programming (OOP) language, reusable design patterns are an ideal way to solve common problems in Flash and Flex applications. If you're an experienced Flash or Flex developer ready to tackle sophisticated programming techniques with ActionScript 3.0, this hands-on introduction to design patterns is the book you need. ActionScript 3.0 Design Patterns takes you step by step through the process, first by explaining how design patterns provide a clear road map for structuring code that actually makes OOP languages easier to learn and use. You then learn about various types of design patterns and construct small abstract examples before trying your hand at building full-fledged working applications outlined in the book. Topics in ActionScript 3.0 Design Patterns include: Key features of ActionScript 3.0 and why it became an OOP language OOP characteristics, such as classes, abstraction, inheritance, and polymorphism The benefits of using design patterns Creational patterns, including Factory and Singleton patterns Structural patterns, including Decorator, Adapter, and Composite patterns Behavioral patterns, including Command, Observer, Strategy, and State patterns Multiple design patterns, including Model-View-Controller and Symmetric Proxy designs During the course of the book, you'll work with examples of increasing complexity, such as an e-business application with service options that users can select, an interface for selecting a class of products and individual products in each class, an action game application, a video record and playback application, and many more. Whether you're coming to Flash and Flex from Java or C++, or have experience with ActionScript 2.0, ActionScript 3.0 Design Patterns will have you constructing truly elegant solutions for your Flash and Flex applications in no time.
Provides information on the basics of ActionScript programming to create multiplayer games and virtual worlds.
Roger Braunstein, Mims H. Wright, Josuha J. Noble
This description refers to the first edition of ActionScript 3.0 Bible. For the greatly revised and updated second edition published in April 2010, search on author Roger Braunstein’s name or for ISBN 0470525231.ActionScript has matured into a full-fledged, object-oriented programming language for creating cutting-edge Web applications, and this comprehensive book is just what you need to succeed. If you want to add interactivity to Flash, build Flex applications, or work with animation — it's all here, and more. Packed with clear instruction, step-by-step tutorials, and advanced techniques, this book is your go-to guide to unlock the power of this amazing language. Learn the basics, apply object-oriented programming, and more.
Put your ActionScript 3 skills to work building mobile apps. This book shows you how to develop native applications for Android-based smartphones and tablets from the ground up, using Adobe AIR. You learn the entire development process hands-on, from coding specific functions to options for getting your app published. Start by building a sample app with step-by-step instructions, using either Flash Professional or Flash Builder. Then learn how to use ActionScript libraries for typical device features, such as the camera and the accelerometer. This book includes ready-to-run example code and a case study that demonstrates how to bring all of the elements together into a full-scale working app. Create functionality and content that works on multiple Android devices Choose from several data storage options Create view and navigation components, including a back button Get tips for designing user experience with touch and gestures Build a location-aware app, or one that makes use of motion Explore ways to use audio, video, and photos in your application Learn best practices for asset management and development
Paul Tepper Fisher, Brian D. Murphy
Persistence is an important set of techniques and technologies for accessing and transacting data, and ensuring that data is mobile regardless of specific applications and contexts. In Java development, persistence is a key factor in enterprise, e-commerce, and other transaction-oriented applications. Today, the Spring framework is the leading out-of-the-box solution for enterprise Java developers; in it, you can find a number of Java Persistence solutions. This book gets you rolling with fundamental Spring Framework 3 concepts and integrating persistence functionality into enterprise Java applications using Hibernate, the Java™ Persistence API (JPA) 2, and the Grails Object Relational Mapping tool, GORM. Covers core Hibernate fundamentals, demonstrating how the framework can be best utilized within a Spring application context Covers how to use and integrate JPA 2, found in the new Java EE 6 platform Covers how to integrate and use the new Grails persistence engine, GORM What you’ll learn How to use Spring Persistence, including using persistence tools in Spring as well as choosing the best Java Persistence frameworks/tools outside of Spring How to work with Spring Framework features such as Inversion of Control (IoC), aspect-oriented programming (AOP), and more How to work with Spring JDBC, use declarative transactions with Spring, and reap the benefits of a lightweight persistence strategy How to work with Hibernate and integrate it into your Spring-based enterprise Java applications for transactions, data processing, and more How to integrate with legacy databases, as well as use best practices for developing web services and handling Hibernate proxies and lazy collections How to the integrate the Spring/Hibernate persistence tier with RIA technologies like Ajax and Flash How to integrate JPA for architecting a well-layered persistence tier in your enterprise Java application How to move a persistence tier into JPA How to use and integrate the Grails persistence framework, GORM, and how to leverage it within a standard Java Spring MVC application Who this book is for This book is ideal for developers interested in learning more about persistence framework options on the Java platform, as well as fundamental Spring concepts. Because the book covers several persistence frameworks, it is suitable for anyone interested in learning more about Spring or any of the frameworks covered. Lastly, this book covers advanced topics related to persistence architecture and design patterns, and is ideal for beginning developers looking to learn more in these areas. Table of Contents Architecting Your Application with Spring, Hibernate, and Patterns Spring Basics Basic Application Setup Persistence with Hibernate Domain Model Fundamentals DAOs and Querying Transaction Management Effective Testing Best Practices and Advanced Techniques Integration Frameworks GORM and Grails Spring Roo
"ActionScript developer'sguide to building mobile applications"--Cover.
There’s no easier, faster, or more practical way to learn the really tough subjects SQL Demystified explains how to use SQL (Structured Query Language)--the ubiquitous programming language for databases. Readers will learn to create database objects, add and retrieve data from a database, and modify existing data. This self-teaching guide comes complete with key points, background information, quizzes at the end of each chapter, and even a final exam. Simple enough for beginners but challenging enough for advanced students, this is a lively and entertaining brush-up, introductory text, or classroom supplement.
Filippo di Pisa
Over the past few years, the now-open source Adobe Flex framework has been adopted by the Java community as the preferred framework for Java rich Internet applications (RIAs) using Flash for the presentation layer. Flex helps Java developers to build and maintain expressive web/desktop applications that deploy consistently on all major browsers, desktops, and operating systems. Beginning Java and Flex describes new, simpler, and faster ways to develop enterprise RIAs. This book is not only for Java or Flex developers, but also for all web developers who want to increase their productivity and the quality of their development. The aim of the book is to teach the new frontier of web development using open source, agile, lightweight Java frameworks with Flex. Java lightweight framework programming helps Flex developers create dynamic-looking enterprise applications. Flex and Java are becoming very popular for both business and interactive applications. What you’ll learn What Adobe Flex is and how to use it in your Java development of the presentation tier or rich clients How to use Spring, Hibernate, and/or Maven with Flex How to use Flex and Java to create rich Internet applications and/or clients How to create Flash-based/enabled business applications How to write more stable Java-based Flex applications and reusable code How to create some Flash-based game applications Who this book is for This book is for Java developers who want to get into Flex, Spring, Hibernate, and/or Maven, and for all Flex developers who want to create projects with the most frequently used Java frameworks. Also, this book could be interesting for most other web developers because Java/Flex, once learned, will increase their productivity and the quality of their development. Table of Contents Developing with Java and Flex Presenting the Sample Application Configuring Your Development Environment Inversion of Control Spring JDBC and Hibernate Spring Security Flex (The View Layer) Working with Data in Flex BlazeDS Using Flex, Spring, and Hibernate Together
Flex your development muscles with this hefty guide Write programs using familiar workflows, deliver rich applications for Web or desktop, and integrate with a variety of application servers using ColdFusion, PHP, and others-all with the new Flex Builder 3 toolkit and the comprehensive tutorials in this packed reference. You'll learn the basics of Flex 3, then quickly start using MXML, ActionScript, CSS, and other tools to create applications that can run on any browser or operating system. Install and learn how to use Flex Builder 3 Explore MXML, ActionScript 3, and the anatomy of a Flex application Lay out Flex controls and containers, and use Cascading Style Sheets (CSS) to create look and feel Incorporate Advanced List controls, Flex charting components, and data entry forms Integrate your Flex applications with a variety of application servers Create cross-operating system desktop applications with Adobe Integrated Runtime (AIR) Companion Web Site Visit www.wiley.com/go/flex3 to access code files for the projects in the book.
Doug McCune, Deepa Subramaniam
Ready to flex your Web development muscles and start building rich Internet applications? With Flex 3.0, you can create great RIAs that perform like desktop applications using Adobe Flash Player, which is already installed on more than 95 percent of Internet-connected computers. And the fun and easy way™ to get up to speed on Flex is with Adobe Flex 3.0 For Dummies. This friendly guide shows you how Flex lets you leverage the power of Adobe’s ubiquitous Flash technology to build large applications. If you’ve written code in any language, Adobe Flex 3.0 For Dummies will get you started, introduce you to FlexBuilder and the Flex framework, and have you building some really “flashy” stuff before you know it. You’ll find out how to: Develop interactive applications without worrying about browser differences Use the Event Model Work with ActionScript and MXML Build simple user interface controls and data-driven controls Set up data binding Format and validate user data Create, run, and clean a project Explore Flex manager classes Work with styling and skinning Flex components All the code used in the book is on the companion Web site to save you that much more time. Adobe Flex 3.0 For Dummies helps you become Flex-literate in a flash! Note: CD-ROM/DVD and other supplementary materials are not included as part of eBook file.
A complete and thorough reference for developers on the new Flex 4 platform Create desktop applications that behave identically on Windows, Mac OS X, and Linux with Adobe's new Flash Builder 4 platform and this in-depth guide. The book's tutorials and explanations walk you step-by-step through Flash Builder's new, faster tools; the new framework for generating code; how to connect to popular application servers; upgrading from Flex 3; and much more. Shows you how to create rich applications for the Web and desktop with the very latest version of Flex, with detailed coverage for both new and veteran Flex application developers Walks you through Flex basics; upgrading from Flex 3; how to create desktop applications with AIR; and integrating Flex applications with the most popular application servers, including ColdFusion, ASP.NET, and PHP Includes extensive code samples of common tasks that you can use to jump-start your development projects Flex your development muscles with the Flex 4 and this comprehensive guide. Note: CD-ROM/DVD and other supplementary materials are not included as part of eBook file.
Experienced Flash developers and programmers coming from other languages will enjoy the sheer depth of Moocks's coverage. Novice programmers will appreciate the frequent, low-jargon explanations that are often glossed over by advanced programming books.
Yakov Fain, Victor Rasputnis, Anatole Tartakovsky
This book is aimed at enterprise developers who are planning to use Adobe Flex as a front-end tool in developing Rich Internet Applications (RIAs). It doesn't repeat content of Flex product documentation and tutorials, but rather, leads readers through the process of development of the Enterprise RIA with best practices and efficient techniques.