in

 

Browse by Tags

  • Speaking at ADNUG tonight

    I'm speaking at ADNUG tonight about legacy code: The development landscape is strewn with existing legacy systems. As these systems continue to generate revenue and provide value, eventually some force will act upon the development team to change those systems. The challenge is to minimize the risk...
    Posted to Jimmy Bogard (Weblog) by bogardj on 07-14-2008
  • PabloTV: Eliminating static dependencies screencast

    Nature abhors a vacuum. It turns out she also abhors static dependencies (I have my sources). Static dependencies are the modern-day globals, often exposed through classes named "Helper". I've certainly been guilty of overusing static dependencies in the past, with classes like "LoggingHelper"...
    Posted to Jimmy Bogard (Weblog) by bogardj on 05-06-2008
  • Profiling a legacy app

    Approaching a legacy application can be a daunting task. You may or may not have access to the original developers (if they even still work for the company), and the domain experts might not be able to commit to teaching you the software full time. If you're lucky enough to have access to true domain...
    Posted to Jimmy Bogard (Weblog) by bogardj on 04-16-2008
  • Advanced mocking: auto-interaction testing

    When dealing with legacy systems or those not designed with specific testability scenarios in mind, you have to test your changes in non-traditional means. In normal mocking (or test double ) scenarios, you have some kind of external dependency that you want to substitute for. For example, you might...
    Posted to Jimmy Bogard (Weblog) by bogardj on 03-05-2008
  • Hall of shame

    We keep a "Hall of Shame" of WTF-level code snippets to remind us that however bad we might think things get, it could always be worse. It also serves as a reminder to us that we can't be complacent with ignorance, and lack of strong technical leadership in critical applications can have...
    Posted to Jimmy Bogard (Weblog) by bogardj on 11-29-2007
  • Stop the madness

    I've been extending a legacy codebase lately to make it a bit more testable, and a few small, bad decisions have slowed my progress immensely. One decision isn't bad in and of itself, but a small bad decision multiplied a hundred times leads to significant pain. It's death by a thousand cuts...
    Posted to Jimmy Bogard (Weblog) by bogardj on 11-20-2007
  • A downcasting tragedy

    And now, for another tale of legacy code woe, here's a gut-wrenching tragedy of OCP and downcasting , in five acts . Exposition We have a feature we're implementing that when the store's configuration settings allow for a survey link to be shown, it should show up, otherwise, it shouldn't...
    Posted to Jimmy Bogard (Weblog) by bogardj on 11-14-2007
  • Dependency Breaking Techniques: Inline Static Class

    Often times I run into a class that has a dependency not on a Singleton , but a static class. When refactoring away from a Singleton, a common approach is to use Inline Singleton . With static classes, a slightly different approach needs to be taken because client code isn't working with an instance...
    Posted to Jimmy Bogard (Weblog) by bogardj on 10-19-2007
  • The Legacy Code Dilemma and compiler warnings

    This post was originally published here . I hit the Legacy Code Dilemma today while trying to reduce compiler warnings in our solution. For those that don't know it, the Legacy Code Dilemma is: I need to fix some legacy code, but the fix isn't ideal. After working on green-field development for...
    Posted to Jimmy Bogard (Weblog) by bogardj on 10-02-2007
  • Legacy code testing techniques: subclass and override non-virtual members

    This post was originally published here . One of the core techniques in Michael Feathers' Working Effectively With Legacy Code is the "Subclass and Override Method" technique. Basically, in the context of a test, we can subclass a dependency and override behavior on a method or property...
    Posted to Jimmy Bogard (Weblog) by bogardj on 08-31-2007
Page 1 of 1 (10 items)
Copyright Los Techies 2007. All rights reserved.
Powered by Community Server (Commercial Edition), by Telligent Systems