Micro-frontends decisions framework
A framework for making key architectural decisions when implementing micro-frontends, focusing on definition, composition, routing, and communication.
A framework for making key architectural decisions when implementing micro-frontends, focusing on definition, composition, routing, and communication.
Explains the importance of orthogonal component design in React to create predictable, maintainable, and easy-to-change software systems.
A guide to understanding and implementing Property Wrappers in Swift 5.1, including built-in and custom examples.
A developer argues that `else` statements often make code more complex and demonstrates how refactoring with early returns and guard clauses can simplify JavaScript logic.
A podcast episode discussing how using 'final' in code can improve maintainability, part of a series on SOLID principles and interfaces.
Explores different micro-frontends architecture implementations, including Spotify, IKEA, and OpenComponents, before introducing DAZN's approach.
A deep dive into designing and implementing a Multilayer Perceptron from scratch, exploring the core concepts of neural network architecture and training.
The article argues for simplicity in design and technology, using examples from film and web development to show how complexity often creates more problems.
Explains how to use Swift value types (structs, enums) to encapsulate domain data, logic, and business rules for cleaner, more testable, and concurrency-friendly code.
An exploration of the Unix pipe command, its history, and the philosophy of simple, composable tools in software design.
An introduction to finite state machines in software, explaining their structure and demonstrating a simple implementation with a JavaScript light switch example.
Explores five different approaches to implementing polymorphism in Django models, a common challenge in Django ORM design.
The article argues for optimizing code for auditability to make security vulnerabilities easier to spot, using cryptography as a key example.
A software architecture article advocating for organizing code by business features instead of technical layers to improve cohesion and maintainability.
A guide to improving Swift code maintainability and testability by separating decision logic from action logic using the type system.
Explores the benefits of Test-Driven Development (TDD), including preventing false positives, improving design, and providing fast feedback.
A beginner-friendly explanation of dependency injection using a car analogy, contrasting it with inheritance and promoting composition.
Explores the design and use of a custom error handling package in the Upspin project, with lessons for Go programming.
A guide to building a reusable JavaScript validator service to clean up data validation logic and adhere to DRY and SRP principles.
Explains how to implement the Lazy Command Pattern in ASP.NET Core MVC to reduce controller bloat and improve code organization.