Summary

The topic of dependency wiring is certainly one of the most opinionated in software engineering, but in this chapter, we tried to keep the analysis as factual as possible to give an objective overview of the most important wiring patterns. We cleared some of the most common doubts around Singletons and instances in Node.js, and we learned how to connect modules using hardcoded dependencies, DI, and service locators. We practiced each technique using the authentication server as a playground, allowing us to identify the pros and cons of each approach.

In the second part of the chapter, we learned how an application can support plugins, but most importantly, how we can wire those plugins into the main application. We applied the same techniques presented in the first part of the chapter but analyzed them from another perspective. We discovered how important it can be for a plugin to have access to the right services of the main application and how much this can impact its capabilities.

By the end of this chapter, we should feel comfortable in choosing the best approach for the level of decoupling, reusability, and simplicity we want to obtain in our application. We can also consider using more than one pattern in the same application. For example, we can use hardcoded dependencies as the main technique and then use a service locator when it comes to linking plugins; there are really no limits to what we can do now that we know the best use case for each approach.

So far in this book, we have focused our analysis on highly generic and customizable patterns, but from the next chapter onwards, we will shift our attention to solving more specific technical problems. What comes next is, in fact, a collection of recipes which can be used to solve specific issues related to CPU-bound tasks, asynchronous caching, and sharing code with the browser.

..................Content has been hidden....................

You can't read the all page of ebook, please click here login for view all page.
Reset
3.145.101.109