The CJS module system, globals and other hardships with maintainable code in Node.js
Analyzes common tight coupling patterns in Node.js code, such as global variables and hardcoded dependencies, and their impact on maintainability.
Analyzes common tight coupling patterns in Node.js code, such as global variables and hardcoded dependencies, and their impact on maintainability.
A developer shares their experience migrating a project to a monorepo using Turbo, detailing setup, configuration, and the benefits for a small team.
Article reimagines the role of Enterprise Architects from static map-makers to agile scouts, advocating for dynamic, actionable artifacts over detailed, slow-to-create maps.
Explores how past technological constraints shape software architecture and business behavior, and why removing them doesn't automatically change established practices.
Explains how to structure large React applications using a feature-based architecture for better scalability and maintainability.
Explains structure-cementing tests that hinder code refactoring and introduces a TestDsl approach to write flexible, maintainable tests.
Explains Architecture Decision Records (ADRs), their structure, and their importance for documenting key technical decisions in software projects.
A critical analysis of business architecture's role in enterprise IT, questioning its practical value and the attitudes of its proponents.
A list of classic books on software architecture and design, from ancient principles to foundational 20th-century texts.
Explores the nuanced relationship between coupling, control flow, and event-driven architectures in distributed system design.
A guide to building state machines using the Stateless library in .NET 8, with practical examples like a light switch.
A developer's monthly digest covering tech articles, books, and personal thoughts on switching from an iPad to a Kindle Scribe for focused reading.
Final reflections on a 30-part series about building an image processing application using the SObjectizer actor framework in C++.
A developer discusses missing features and challenges in the SObjectizer C++ actor model library, focusing on agent shutdown behavior.
Explains how to implement the Decorator design pattern using .NET's Dependency Injection to add cross-cutting concerns like logging or caching.
The article uses the visible routers at Centre Pompidou as a metaphor for how software systems evolve and adapt to new requirements over time.
A guide to creating an effective automated testing strategy, covering evaluation criteria like certainty, speed, and maintainability with a practical use case example.
A comprehensive guide to implementing Object-Oriented Programming (OOP) design patterns in JavaScript, covering creational, structural, and behavioral patterns.
A tutorial explaining the Abstract Factory design pattern in Swift, including its components and a practical implementation example.
Explains Vertical Slice Architecture, an alternative to layered designs that groups code by feature to reduce complexity and coupling.