In this chapter we've looked at features that make it easier to work with larger code bases. We've looked at this from two different perspectives: abstractions we can build in our code, and features outside the code that make it easier to manage.
Our in code abstractions have focused on using names to abstract away expressions. We saw how we can define names using
val, and manage names as the top-level using
Outside the code we looked at organizing code into files, and using sbt to work with larger projects.