The key here is NOT trying to predict the future. The scope for reusability should only remain within your immediate visibility of things, and you enhance the code when new opportunities come into play. This way you are not only saving time and effort, but you also end up creating a leaner, meaner, a…