How do you ensure structure as your codebase grows? When starting a new codebase, you can code away without a care in the world. Suddenly, you find yourself slowing down, as it becomes hard to understand the code you’ve written. All modules seem to blend into each other like spaghetti. One change in a module causes 15 changes in another. Errors accumulate, and they are hard to trace. You no longer feel confident but unsure and paranoid. It’s time for ravioli.
Over the years, I've seen numerous codebases and been in many different teams. I've found that, no matter the framework or language, most teams struggle with the same problems: structuring our code and ensuring the codebase remains structured when requirements change. We will dive into different architectural strategies for modern rich web applications, including bottom-up domain typing, structuring clean modules optimised for deletion, isolating side effects, ensuring function and module purity, code composability, and data injection for testability. We’ll talk not just how, but why.
We can now look forward to any new requirements because we’ll be ready!
