Øredev 2016 - Jimmy Bogard - SOLID Architecture in Slices not Layers
Why Stack Overflow recommends it
Stack Overflow users link it when answering architecture questions about feature folders, CQRS and organizing code by feature instead of by layer.
Recommended by 4 people across 3 different months, 2018 to 2024.
What it is
A 40-minute conference talk from Oredev 2016 in which Jimmy Bogard argues against n-tier layered architectures and for organizing systems as vertical slices. He covers how this changes the way code is structured, tested and deployed, with less indirection and fewer mocks.
What people said
Recommends h1ybadger1 · 2018-11 · Stack Overflow · on “Approaches to delegating development to team members”
You can consider choosing vertical slice architecture described here by Jimmy Bogard [LINK] . The benefit is that with minimalistic boilerplate which can be developed in advance or in relatively short period of time, the features development is supposed to be quite isolated from each other which increase safety from the delivery standpoint and mutual impact of the development process. Additionally depending on the requirements of your project you can try to apply CQRS which also imposes certain level of isolation (between command and query flows which can be developed separately) however not so fine grained as in case of vertical slice style but good news is that you can combine them togethe
Recommends baHI · 2019-11 · Stack Overflow · on “How to name the domain services in DDD”
Try to iterate towards DDD and then the 1st step is: object oriented programming. So why would you need an user service? You can have a User.Create(IUserCreator creator) static method on the User object itself to do the trick. Try to encapsulate behaviour into the object where it belongs. As long as you need just some small data or when everything is avail. via the entity model (or ORM model tree), you won't need a service. Also in lot of cases domain events can help you a lot, these can be implemented multiple ways, one that follows continuous flow (the one I like) or double dispatch - see Jimmy Bogard articles: [LINK] - it's up to personal taste and architecture... Now if to cretate a User
Recommends giokoguashvili · 2019-11 · Stack Overflow · on “Generic and overridable controller method with optional generic parameter”
Don't try to write generic code. This is not best for business purpose because everything is changeable. Change your mindset. Let's try to use CQRS. And watch this Jimmy Bogard - SOLID Architecture in Slices not Layers [this video]
Recommends FastAl · 2024-08 · Stack Overflow · on “NServiceBus Unobtrusive Conventions DefiningCommandsAs multiple times”
Just in case people are coming back to this question 10 years, later. I had a problem with Unobtrusive conventions using feature folders ( [this video] ). I see you mentioned not liking putting everything in a commands namespace: "come up with conventions like all commands must reside in .Commands. namespace which I don't like either." Hopefully you're implementing feature folders, too; it's a simple way to increase cohesion and chip a few percentage points off of development cost. I've done something simple to enable me to put my messages in the feature folder with the rest of the feature files: break the c# convention of 'namespace == folder' and just add '.Commands' to the end of the message's