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.
Erich Gamma, Kent Beck
* *Written by two worldclass programmers and software designers - Kent Beck and Eric Gamma! *Explains how to extend Eclipse for software projects and how to use Eclipse to create software tools that improve development time *Shows how to create our software productivity Tools using insightful examples
Eric Clayberg, Dan Rubel
Build commercial-grade extensions to Eclipse and WebSphere Studio Workbench This is the first definitive, start-to-finish guide to building commercial-quality extensions for both Eclipse and IBM's WebSphere Studio Workbench. Leading Eclipse developers Eric Clayberg and Dan Rubel don't merely introduce the basics: they show how to add the sophistication and "polish" that paying customers demand. This book presents detailed, practical coverage of every aspect of plug-in development--with specific solutions for the challenges you're most likely to encounter. It contains everything you need to gain mastery and achieve results: cookbook-style code examples, relevant API listings, diagrams, screen shots, and much more. Includes a quick introduction to Eclipse for experienced Java programmers Serves as a systematic reference for experienced Eclipse usersIntroduces all the tools you need to build Eclipse and WebSphere plug-insExplains the Eclipse architecture and the structure of plug-ins and extension pointsWalks step-by-step through building complete Eclipse plug-insOffers practical guidance on building Eclipse user interfaces with SWT and JFaceShows how to use change tracking, perspectives, builders, markers, natures, and moreCovers internationalization, Help systems, feature planning--even branding This book is designed for anyone who wants a deep understanding of Eclipse, and every experienced developer interested in extending Eclipse or WebSphere Studio Workbench. Whether you're a tool developer building new commercial products, or a user customizing your environment, you'll find it indispensable.
Paul W. Abrahams
Perfect for the technically oriented UNIXreg; user who doesn't have time to wade through the manuals, as well as for the serious Internet user who needs to understand more about UNIX, this handbook offers concise, practical information on exactly what you need to know. Thoroughly updated with information on the latest UNIX developments, this Second Edition is now based on the POSIX.2 Standard. As before, topics include user utilities, standard editors, Emacs, Internet access tools, and the X Window Systemtrade; . New topics include the KornShell, the World Wide Web, newsreaders, and system administration from the user's perspective. Background on popular new systems, such as Linux and FreeBSD, has also been added. The book is organized functionally so that you can easily find the right tool for any task, and includes a complete alphabetical summary for fast lookup by command or option.