Avoiding legacy systems
Explores the causes of legacy software and offers developer strategies to prevent codebases from becoming hard-to-maintain systems.
Explores the causes of legacy software and offers developer strategies to prevent codebases from becoming hard-to-maintain systems.
A defense of the SOLID principles in modern software development, arguing they remain essential for writing simple, maintainable code.
Discusses the importance of context and team factors over hype when choosing software architectures and tools.
Explains what a Django application is, its structure, and how it fits into a Django project.
Explores federation as a scalable, decentralized alternative to centralized and P2P systems for internet communication and governance.
Explores integration styles for modules within a modular monolith architecture, discussing coupling, complexity, and data timeliness.
A design document outlining the separation of the data layer in QuTiP for a Google Summer of Code project, focusing on abstract interfaces and implementation strategies.
Explains how to get high value from distributed tracing with less effort, using a real-world implementation from Twitter as a case study.
A tutorial on creating and loading plugins in Go, demonstrating a driver program that chains two plugins to process data.
A discussion on Pythonic code design, focusing on abstractions, libraries, and best practices for writing clean and effective classes.
Analysis of the 2020 Facebook SDK crash that brought down many iOS apps, highlighting the risks of third-party SDK dependencies and data privacy.
Explains the Emitter Parameter Pattern as an alternative to return values for designing flexible Service Provider Interfaces (SPIs) in libraries and frameworks.
Introduces the Emitter Parameter Pattern as a flexible alternative to return values for Service Provider Interfaces (SPIs) in libraries and frameworks.
A developer argues for starting with larger, monolithic components in Angular to avoid premature abstraction and complexity, then refactoring for performance or reusability.
Explores combining event sourcing with stateful systems for a large-scale project, focusing on design for reporting and historical tracking.
Explores parallels between software development and architecture/urban planning, suggesting new methodologies and ideas for tackling programming complexity.
An interview with Oliver Drotbohm, a Spring expert, discussing software modularity, architecture, and the Moduliths project.
Explores methods for enforcing architectural design in modular monoliths to prevent code-model divergence and maintain modularity over time.
Explores implementing Domain-Driven Design building blocks in Java, balancing conceptual purity with technical pragmatism.
The article discusses dependency injection in Angular, a core concept for building modular and testable applications.