Introduction
In the previous chapter, we learned about the importance of creating maintainable, reusable, and modular software using Go packages. We learned how packages are structured, the principles of proper package naming, and the distinctions between executable and non-executable packages. The concept of exportable and unexportable code was also discussed.
In this chapter, we will expand upon this knowledge and explore the utilization of Go modules to define projects, advancing our software development capabilities. We will understand what Go modules are, how they are helpful, and even create our own module. We will understand the different files required for working with Go modules to maintain the integrity of our project dependencies, and then learn how to consume third-party modules and manage them. Lastly, we will look at how to create a project containing multiple modules, and when that is useful.