It depends on "what you need" and "what are you reinventing". Context is the key!
Reinventing the wheels, is not a great idea for the following reasons:
- Functionality already exists and is well known to be stable and popular.
- Your version adds nothing new.
- Your version introduces bugs or constraints such as thread-safe and etc.,
- Your version is missing features.
- Your version has worse documentation.
- Your version is lacking unit tests compared to what it is replacing.
Reinventions make sense for the following reasons:
- Available framework or library is too heavy, and you only require a portion of it. In this case creating your own extremely light-weight version that suites your requirement is a better approach.
- When you want to understand and learn something complex, creating your own makes sense.
- You have something different to offer, something others' implementations do not have. May be a new twist, new feature etc. Most of the times you can extend the existing Framework implementation with polymorphism, but again it your choice of need.
Credits: Image1 credit to AlexTechThoughts, Image2 credit to Damballa
blog comments powered by Disqus