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
This volume is a handbook for enterprise system developers, guiding them through the intricacies and lessons learned in enterprise application development. It provides proven solutions to the everyday problems facing information systems developers.
Ronald L. Graham, Donald Ervin Knuth, Oren Patashnik
This book, updated and improved, introduces the mathematics that supports advanced computer programming and the analysis of algorithms. The primary aim of its well-known authors is to provide a solid and relevant base of mathematical skills--the skills needed to solve complex problems, to evaluate horrendous-looking sums, to solve complex recurrence relations, and to discover subtle patterns in data. It is an indispensable text and reference, not only for computer scientists but for all technical professionals in virtually every discipline.
The long-awaited revision of THE book on learning proper OO analysis and design, from UML founder Grady Booch is back!
Matthew J. Curland
In Advanced Visual Basic 6, leading Visual Basic expert Matthew Curland demonstrates powerhouse techniques programmers can use to write high-performance, robust, and reusable VB code. Readers learn how to leverage the close relationships between VB, COM, and OLE Automation, extending the envelope of VBs capabilities and building high-quality, object-based systems./P> Key topics include how to: *Control VB array variables explicitly to directly access arbitrary memory locations *Call pointers to standard, cdecl, and class module functions *Aggregate complete interface implementations into any VB object *Override functions on any interface, including those implemented automatically by VB *Turn any user-defined type into a lightweight COM object *Minimize memory usage in systems with a large number of objects *Safely create and manage threads in ActiveX EXEs and DLLs *Interact with messages to customize windowed and windowless UserControl objects The CD-ROM accompanying this book contains extensive source code samples to enable all techniques without external DLLs. It also provides integrated type library add-ins for creating and editing referenced libraries, modifying binary compatib
Demonstrates key elements of the Win32 operating system and explains how to use Visual Basic to customize and design applications
In this new edition of his popular title, Moving to VB .NET: Strategies, Concepts, and Code, Second Edition, Visual Basic guru Dan Appleman not only updates the book to include coverage of changes to Visual Basic .NET in Visual Studio .NET 2003, but he extends the areas most important to VB .NET programmers since its release. Topics such as .NET remoting, versioning, and object-oriented programming are further illuminated using Appleman's own personable and highly effective style. Appleman explains the whys and hows of the VB .NET technology features, and delves into the controversies around many of the choices. Evaluating VB .NET from the perspective of the developer, you'll learn to write high quality VB .NET code in well-designed applications. The author brings the same attention to technical detail and real-world attitude to this second edition as he has brought to all of his past books.
Alexandre Santos Lobao, Ellen Hatton
Written in easy-to-understand language, this book is a must-read if you'd like to create out-of-the-ordinary, yet simple games. Authors Alexandre Lobao and Ellen Hatton demonstrate the ease of producing multimedia games with Managed DirectX 9.0 and programming the games with Visual Basic .NET on the Everett version of Microsoft's Visual Studio. The authors emphasize simplicity, but still explore important concepts of Managed DirectX 9.0, such as Direct3D, DirectSound, DirectMusic (using the COM interface), DirectInput (including force-feedback joysticks), DirectShow, and DirectPlay. Additional chapters discuss game programming technologies: Speech API for generating character voices, GDI+ for simple games, and multithreading. A bonus chapter even shows you how to port a simple game to a Pocket PC. The book includes two chapters' worth of sample games. The first presents a game with simple features; the second extends that game and presents additional concepts. A library of game programming helper classes is also created, step by step, in both chapters.
J. P. Hamilton
A programmer's complete guide to Visual Basic .NET. Starting with a sample application and a high-level map, the book jumps right into showing how the parts of .NET fit with Visual Basic .NET. Topics include the common language runtime, Windows Forms, ASP.NET, Web Forms, Web Services, and ADO.NET.
Mandelbrot Set (International) Limited
Written from the perspective of the professional Visual Basic developer, this second edition is intended to explore all the possibilities open to a developer using VB as his or her primary client/server development tool. The CD-ROM contains sample code and valuable utilities developed and tested by the authors.
Visual Basic guru Dan Appleman exposes the reality behind the VB .NET hype, and shows you how to evaluate this technology in the context of your specific problems. The book is divided into three parts: Strategies, Concepts, and Code. In Strategies, you'll learn how VB .NET is perfect for new development of web and other server side applications. In Concepts, you'll learn key concepts such as inheritance and multithreading, and why they are over-hyped. And in Code, you'll learn the VB .NET language and many of its features—all based on your current knowledge of VB6. Appleman explains the technology features of VB .NET, as well as the reasons and controversies around some of those choices. You'll learn to write high quality VB .NET code in well-designed applications. Above all, Appleman conveys his solid understanding of technology and the needs of real developers.
Praise for The Visual Basic .NET Programming Language “There is no substitute to getting the inside scoop directly from a book written by the father of a programming language such as Bjarne Stroustrup for C++, James Gosling for Java and Alan Cooper for the original version of Visual Basic. Paul Vick, the father of Visual Basic .NET, explains the whys and hows of this exciting new language better than any other human being on the planet.” —Ted Pattison, Barracuda.NET “The Visual Basic .NET Programming Language includes nuances that in all my use and study of VB .NET, I haven’t seen discussed anywhere else. For example, I learned that you can use the Imports statement to import an Enum name, so that you needn’t refer to the enum in all its uses. In addition, I learned that the dictionary lookup operator, ‘!’, works in VB .NET—I thought this one had been retired. In any case, if you’re searching for a book that covers all the language syntax issues, and more, Paul Vick’s book is a great place to look.” —Ken Getz, Senior Consultant, MCW Technologies, LLC “This book is an excellent stepping stone for Visual Basic developers wanting to get their toes wet in the .NET waters. Paul’s presentation of the core topics all VB developers should tackle first is clear, concise, and unlike other books in the genre, does not overwhelm the reader. The VB6 vs. VB.NET task-oriented approach guides you through the new language and OO features, and then moves to basic threading and other CLR topics—as well as to the key points in the COM to .NET transition—in a well thought-out sequence. If you’ve been holding out on VB .NET, this is a great book to get you started.” —Klaus H. Probst, Sr. Consultant/Architect, Spherion Technology Services, Microsoft MVP “There is no shortage of VB .NET books in the market, but this is the only book straight from the creators. While that is an excellent reason in itself for reading this book, it is the brevity and clarity of the content, along with the examples, that makes this book a must-have.” —Amit Kalani, Developer “Overall, I liked this book and it definitely benefited me. I learned new things I didn’t see anywhere else and I’ll certainly put these to good use in the future. Paul’s book makes a great reference manual for intermediate and advanced VB .NET developers.” —Philip Williams, System Engineer, LDC Direct “This book contains a lot of great information I have seen nowhere else and addresses issues that other books do not.” —Ethan Roberts, .NET Architect, General Casualty “This book is full of useful information and provides a good historical background for the Visual Basic .NET Language.” —Dave Vitter, Technical Lead Developer and author of Designing Visual Basic .NET Applications (Coriolis, 2001) The definitive Microsoft Visual Basic .NET reference—authored by Visual Basic .NET’s lead architect If you want to leverage all of VB .NET’s immense power, get this book. It’s the definitive VB .NET reference and tutorial, and the first Visual Basic book written by one of VB .NET’s lead architects. No other book offers this much behind-the-scenes insight about why VB .NET works the way it does, how it evolved, and how you can make the most of it. The Visual Basic .NET Programming Language is a superb learning tool for new VB .NET programmers and a must-have reference for developers at every level. Paul Vick presents precise language descriptions, essential reference materials, practical insights, and hundreds of code samples, straight from Microsoft’s VB .NET design team. Just some of the features include: A history and overview of Visual Basic’s evolution into VB .NET Complete coverage of the language syntax Transitioning from COM to the CLR and leveraging the .NET platform Runtime functions Taking full advantage of VB .NET’s object-oriented features Notes on style, design, and compatibility throughout the text Notes for the advanced user throughout the text Vick exposes VB .NET’s most powerful capabilities with unprecedented depth and clarity, and packs this book with information you simply won’t find anywhere else. Whether you’re an experienced VB .NET programmer, upgrading from earlier versions of Visual Basic, or coming to Visual Basic and .NET for the first time, you’ll find this book indispensable.
Designed for an introductory programming course, this market-leading title has been enhanced to include two new tutorials on the next generation of Visual Basic - Visual Basic.NET. Programming with Visual Basic 6.0 Enhanced distinguishes itself from other Windows books because of its unique two-pronged approach. First, this book teaches programming concepts using a task-driven, rather than a command-driven, approach. By working through the tutorials, which are each motivated by a realistic case, individuals learn how to use programming applications that they are likely to encounter in the workplace. Second, the content, organization, and pedagogy of this book exploits the Windows environment. This edition includes creating reports using the print statement, as well as two full chapters on database access using ADO data control, SQL, and the DBGrid control.
David Weller, Alexandre Santos Lobao, Ellen Hatton
This highly-anticipated title provides a clear introduction to game programming for VB .NET programmers! Microsoft insiders have written an easy-to-read guide, so you can start programming games quickly. This book even includes an introduction to Managed DirectX9, and other advanced .NET features, like animation and sounds. Code examples are actually complete games, and include .Nettrix , .Netterpillars, River Pla.NET, Magic KindergarteN., D-iNfEcT, Nettrix II (for the Pocket PC), and a version of the classic game, Spacewars.