After reading this chapter, you should have a good understanding of why code reuse is important and also how to achieve it. We've looked at the details of using abstraction in an embedded environment and created fully hardware-agnostic interfaces that increase the flexibility of code. We also learned how to use these interfaces in conjunction with tasks to increase code reuse across projects. Finally, we touched on some aspects of storing shared source code.
At this point, you should have enough knowledge to start thinking about how to apply these principles to your own code base and projects. As your code base starts to have more common code that is reused between projects, you'll begin to reap the benefits of a shared code base, such as fewer bugs, more maintainable code, and decreased development time. Remember, it takes practice to become good at creating...