What I’m Thinking About
I faced some last minutes challenges at work this week. They really stretched the limits of what our architecture could support. This really got me thinking about the importance of proper code structure and design.
Software architecture is more art than science. Getting it right can bring massive productivity benefits to your product. A project which is easy to extend and modify ships faster and changes faster.
A bad, tightly coupled codebase increases in complexity each time it’s modified. It gets more and more tedious to work with until someone asks for a rewrite.
That’s why few people enjoy working on older projects. They’ve lived enough to outgrow their architecture. Even if the initial structure was made right, the project has evolved so much that it could be better suited with a different one.
A Tool Worth Exploring
Module Federation - Webpack 5 introduces module federation. That gives us the ability to bundle different applications together so they can be used as one whole. This unlocks the door to what people refer to as “micro-frontends”.
A term that’s been mentioned with increased frequency in recent years. We’ll see if that is the tool that unlocks the door to breakthroughs in the front-end world. This article is a good example.
An Article Worth Reading
How Lyft is migrating 100+ front-end microservices to Next.js - A story of why and how Lyft is moving their FE apps to Next.js from an internal framework. It describes the challenges of running your own tool at scale even for a company like Lyft.
Building a product and maintaining the framework that it runs on can get quite challenging. Updates, modifications and versioning can get tricky. Using a framework like Next allows you to focus more on the product and less on the infrastructure underneath.
A Quote Worth Pondering
"Writing software as if we are the only person that ever has to comprehend it is one of the biggest mistakes and false assumptions that can be made." - Karolina Szczur