I didn't attend QCon earlier this month, but I followed several attendees blogs and co-workers responses to the Eric Evans opening presentation. Alot of people mentioned the fact that Evans wished he'd dealed with 'Bounded Contexts' earlier in the book.
I'm now getting this feeling very much on my current assignment - over the last week we've had a great realisation that the application is a chameleon or if I'm feeling less generous a 'wolf in sheep's clothing...'
The minute you realise you've multiple different user types using your application you definitely have different 'Bounded Context's'- you could have users who care greatly how 'Orders' are modelled and the behaviour contained within, but you can also have other users who care nothing for how 'Orders' are modelled per say - typically I'm thinking of users who focus on reports etc.
This is not to say even if you have a single user you shouldn't give your model context within a certain area, I think a rule of thumb on this front is - if it's getting to difficult to add behaviour to the model may be it's time to break to the model apart into separate contexts. And remember it's not a bad thing to duplicate entities in different context's because more than likely they're not offering the same behaviour...
Do I think you can share entities between context's - 'Shared Kernel' springs to mind...
I'm now getting this feeling very much on my current assignment - over the last week we've had a great realisation that the application is a chameleon or if I'm feeling less generous a 'wolf in sheep's clothing...'
The minute you realise you've multiple different user types using your application you definitely have different 'Bounded Context's'- you could have users who care greatly how 'Orders' are modelled and the behaviour contained within, but you can also have other users who care nothing for how 'Orders' are modelled per say - typically I'm thinking of users who focus on reports etc.
This is not to say even if you have a single user you shouldn't give your model context within a certain area, I think a rule of thumb on this front is - if it's getting to difficult to add behaviour to the model may be it's time to break to the model apart into separate contexts. And remember it's not a bad thing to duplicate entities in different context's because more than likely they're not offering the same behaviour...
Do I think you can share entities between context's - 'Shared Kernel' springs to mind...
Comments
Post a Comment