When a module becomes too large, it can be difficult to manage and comprehend. Generally, it can happen organically when the programmer keeps adding more and more functionalities to an application. So, how large is too large? It is difficult to say as it varies and depends on the programming language, the problem domain, and even the skillsets of the application maintainers. Nevertheless, it is mostly agreed upon by professionals that smaller modules are easier to manage, especially when the code is maintained by multiple developers.
In this section, we will explore the idea of splitting the source code of a large module into separately managed sub-modules. We will discuss how to make that decision and how to do that properly. As part of our journey, we will look into some examples and see how other experts do it in their packages.