calendar / time management
Caleb Cushing <[email protected]>
| Newsgroups | gmane.comp.programming.domain-driven-design |
|---|---|
| Message-ID | <CAAHKNRHKmiVWHKEbMEn5fbVSsVby01fpEUS3XXE9TGxC3YhfsA@mail.gmail.com> |
So I'm debating on creating a fancy calendar application (fancy
meaning it goes well beyond any calendar app I've seen)
I see this as I have let's say these examples of Calendar Records.
Party - 1 time occurrance, requires commute, bounded but somewhat
flexible timespan low scheduling priorty
Go To Gym - Must be done 3-4 times a week, takes 1 hour, has commute,
but can generally be done when time allows (consistency good not
required) medium scheduling priority
Work - Consistent, requires commute, happens 5 days a week
Meeting - 1 time event, happens at work (no additional commute) high
scheduling priority
laundry - must be done once a week, split into multiple parts
possible, commute not required, low scheduling priority
what I'm trying to figure out...
Do I have one aggregate type that has multiple customizations? e.g.
Event {
Commute: Begin-End
Begin-End
Location
Priority
Reoccuring
etc (this is like a 1s thought dump)
}
or many aggregate types?
Appointment { ... }
Event { ... } #presuming something like a party
Chore { ... }
Work { ... }
The first seems like what most calendaring software does now, the
latter seems like it might be more DDD (and better suited to the
complexity I want to add), am I correct? Also if this is this the case
how would you go about determining the classes in the system?
Also does anyone know any good resources for writing these kinds of
systems (calendars and such and stupid assumptions people make about
time)? and/or perhaps good domain resources in lieu of a Domain Expert
(I basically have to be it)? Specifically maybe things that might help
me think of names if I'm doing the many aggregates.
This would be a solo project (maybe goes nowhere we'll see ).
--
Caleb Cushing
http://xenoterracide.com
Calendar:
https://www.google.com/calendar/embed?src=xenoterracide%40gmail.com&ctz=America/Chicago
------------------------------------