I am half way through the Scott Wlaschin Video which makes a great case
for F# as a DDD tool.
I love the Card Game example.
module CardGame =
type Suit = Club | Diamond |Spade : Heart
type Rank = Two | Three | Four | Five | Six | Seven | Eight |
Nine | Ten | Jack | Queen | King | Ace
type Card = Suit * Rank
type Hand = Card list
type Dec = Card list
type Player = {Name:string; Hand:Hand}
type Game = {Deck:Deck; Players : Player list }
type Deal = Deck -> (Deck *Card)
type PickupCard = (Hand * Card ) -> Hand
As Scott points out the customer can easily see if I missed a Suit or a
Rank. The code and the design are one and the same, and persistence is not
mentioned.
Regarding UML, I never really came to grips with it in the past.
I just watched parts of the Pluralsight course : Picturing Architecture:
UML (The Good Bits) and More by Allen Holub which helps a bit However if I
find UML a learning overhead, how can I expect the customer to be able to
speak it with me?
I will check out the Simon Brown link too. Thank you.
On Tue, Feb 6, 2018 at 9:11 AM, Ian Thomas <[email protected]> wrote:
> Perhaps consider Ink to Code ? It’s the converse of your approach, but may
> help with client understanding.
>
>
>
> https://arstechnica.com/gadgets/2018/01/with-ink-to-
> code-microsoft-is-turning-back-of-napkin-sketches-into-software/
>
>
>
> It’s a Microsoft Garage project, from Microsoft Store, not available here
> yet? (I haven’t checked)
>
>
>
> ILT
>
> Albert Park, Victoria 3206 Australia
>
>
>
> *From:* [email protected] [mailto:ozdotnet-bounces@
> ozdotnet.com] *On Behalf Of *kirsten greed
> *Sent:* Tuesday, 6 February 2018 8:22 AM
> *To:* ozDotNet <[email protected]>
> *Subject:* Class diagrams and tools for communicating with clients
>
>
>
> Hello all.
>
> After revisiting "Domain Driven Design"
>
> I want to try using class diagrams to communicate with my client.
>
> However my classes are cluttered with internal properties that are not
> relevant to our conversations
>
>
>
> I thought of trying interfaces for example
>
>
>
>
>
> public interface ISnapInModel
>
> {
>
>
>
> IBlank Blank { get; set; }
>
> }
>
>
>
> public interface IBlank
>
> {
>
> public int Height {get;set;}
>
> public int Width {get;set;}
>
> }
>
>
>
>
>
> However when I try to create a class diagram in VS2017 no association
> draws between the two interfaces.
>
>
>
> Is there a better way?
>
> Thank you
>
>
>