Chapter 8: Designing for Extensibility
Most decent-sized libraries benefit from being designed upfront for extensibility. The larger the library, the more it benefits from extensible design. In this chapter, you'll learn how to make your libraries extensible, with a full discussion on implementing a plugin system to do so. You'll also learn how restricting mutability can result in more maintainable libraries that are easier to understand.
In this chapter, we will cover the following topics:
- Using Ruby's extensibility features
- Designing plugin systems
- Understanding globally frozen, locally mutable design
By the end of this chapter, you'll be close to an expert in plugin system design.