Interface definition has never been so important!
Problem I know you might be looking at this and thinking: interface definition has always been important! And I agree to that, but that's not what I'm seeing on the ground. With the increase of tut...

Source: DEV Community
Problem I know you might be looking at this and thinking: interface definition has always been important! And I agree to that, but that's not what I'm seeing on the ground. With the increase of tutorials of prescribed architectures (hexagon, clean...), it's clear to see that the only intent for interfaces now is to create a boundary between layers, instead of a boundary of meaning. A boundary between layers says 'this code lives here.' A boundary of meaning says 'this is what I can do and why.' What I mean by that? Well, lets look at a simple example I found on the web: // https://github.com/jasontaylordev/CleanArchitecture/blob/main/src/Application/Common/Interfaces/IApplicationDbContext.cs public interface IApplicationDbContext { DbSet<TodoList> TodoLists { get; } DbSet<TodoItem> TodoItems { get; } Task<int> SaveChangesAsync(CancellationToken cancellationToken); } IApplicationDbContext doesn't have a specific job. Its only purpose is to give you a limited number of