InfoQ Homepage Design Content on InfoQ
-
Q&A on the Book Refactoring - Second Edition
The book Refactoring - Second Edition by Martin Fowler explores how you can improve the design and quality of your code in small steps, without changing external behavior. It consists of around seventy detailed descriptions of refactorings, including a motivation for doing them, the mechanics, and an example.
-
Towards Successful Resilient Software Design
In this article, Uwe Friedrichsen explains the “why” and “what” of resilient software design, discusses the challenges he has met most often in recent years, and shares his thoughts on how to implement resilient software design in your organisation.
-
Q&A on the Book Bitwise - A Life in Code
In the book Bitwise - A Life in Code, David Auerbach discusses the gap between how computers picture the world and how it really is, and provides his story of attempting to close that gap. The book explores how technology has impacted society and aims to make you think about what computers do to people.
-
Modeling Uncertainty with Reactive DDD
Vaughn Vernon has written several books on DDD and reactive messaging patterns, and has found that the nature of distributed systems means you must deal with uncertainty. How to respond to a missing message, or a message that is received twice, should be a business decision, and therefore must be part of the domain model.
-
The DDD Do-Over
Jimmy Bogard had a rare opportunity to do what many developers want after finishing a tough project -- a do-over. His team worked on two very similar projects, both using DDD. He discusses the lessons learned from the first project and how the team avoided common pitfalls and was more successful on their later project.
-
Refactoring to a Deeper Model
Paul Rayner uses a case study to demonstrate how refactoring your code can lead to a deeper understanding of your domain model. Through common code refactorings, combined with the implementation of patterns, the codebase became more cohesive and easier to reason about, reducing the time to perform some common tasks from weeks or months to just hours.
-
Coaching Technical Practices
In the past 4-5 years I have been working as a software development coach, helping organizations around London improve their technical practices. I focus on XP practices, specifically TDD, Pair Programming, Refactoring and Simple Design. In this article I share my experiences organizing coaching sessions, including subject selection and sequencing, exercises for each subject and session formats.
-
Models and Their Interfaces in C# API Design
Traditional MVC, MVP, MVVM, Web MVC; the common element in every UI pattern is the Model. And while there are many articles discussing the view, controllers, and presenters in these architectures, almost no thought is given to the models. In this article we’ll look at the model itself and the .NET interfaces that they implement.
-
Managing Data in Microservices
This article provides practical examples of how to manage data in microservices, with an emphasis on migrating from a monolithic database. It is recommended to build a monolith first, and only migrate to microservices after you actually require the scaling and other benefits they provide.
-
Five Things Every Developer Should Know about Software Architecture
Given the distributed nature of the software systems we’re now building, and the distributed nature of the teams building them, it's more important than ever to understand the basics of software architecture. As a short introduction to the topic and to debunk some myths, here are five things that every software developer should know about software architecture.
-
Q&A with Dan Szuc and Jo Wong on Make Meaningful Work
Raf Gemmail speaks with UX leaders Dan Szuc and Josephine Wong about Make Meaningful Work, a humanistic framework and set of practices born from applying human-centered design to the workplace. Sitting beneath existing methodologies, it enables teams to share and understand character perspectives, in working towards producing impacts which are meaningful to them.
-
Q&A on The Rise and Fall of Software Recipes
Darius Blasband has written a book which challenges the conventional wisdom of software engineering: he protests against the adoption of recipes and standards-based approaches and rails against the status-quo. He calls himself a codeaholic who advocates for careful consideration of the specific context and the use of domain specific languages wherever possible.