Published Aug 20, 2017

Software Design Anti-patterns

Join Joe Zack, Michael Outlaw, and Alan Underwood as they delve into software design anti-patterns, exploring the pitfalls of code duplication, interface complexities, and the "Big Ball of Mud." They discuss solutions for enhancing code reusability, efficient testing, and managing complex codebases to improve software robustness and maintainability.
Episode Highlights
Coding Blocks logo

Popular Clips

Episode Highlights

  • Overload Issues

    Interface overload occurs when too many responsibilities are assigned to a single interface, leading to complex and unwieldy designs. explains that this often results in developers writing unnecessary code, such as not implemented exceptions or null object behaviors, indicating that the interface is overburdened 1. shares his experience of implementing an idictionary interface to mimic a dictionary's behavior, which led to complications due to the excessive methods required 2.

    If you ever created like a sort of interface that like say you've got an I product interface and it's got all sorts of stuff and you keep finding yourself adding abilities to this common interface for things that are specific to certain types of products.

    ---

    To avoid these pitfalls, it's crucial to adhere to the interface segregation principle, ensuring interfaces remain focused and manageable.

       

    Anti-Patterns

    Interface anti-patterns, such as interface bloat, occur when an interface becomes overloaded with unrelated methods, making it difficult to implement effectively. suggests creating segregated interfaces to keep code light and focused, rather than tacking on additional methods to a single interface 3. compares this to the God object, where an interface becomes so powerful that it is nearly unusable 4.

    The next one I got is interface bloat. Making an interface so powerful that is extremely difficult to implement.

    ---

    By focusing on smaller, more targeted interfaces, developers can create more maintainable and efficient code.

Related Episodes