Skip to content
  • Categories
  • Recent
  • Tags
  • Popular
  • World
  • Users
  • Groups
Skins
  • Light
  • Cerulean
  • Cosmo
  • Flatly
  • Journal
  • Litera
  • Lumen
  • Lux
  • Materia
  • Minty
  • Morph
  • Pulse
  • Sandstone
  • Simplex
  • Sketchy
  • Spacelab
  • United
  • Yeti
  • Zephyr
  • Dark
  • Cyborg
  • Darkly
  • Quartz
  • Slate
  • Solar
  • Superhero
  • Vapor

  • Default (No Skin)
  • No Skin
Collapse
Code Project
  1. Home
  2. The Lounge
  3. Domain Driven Design - a new hype

Domain Driven Design - a new hype

Scheduled Pinned Locked Moved The Lounge
csharpquestiondatabasedesignannouncement
32 Posts 18 Posters 0 Views 1 Watching
  • Oldest to Newest
  • Newest to Oldest
  • Most Votes
Reply
  • Reply as topic
Log in to reply
This topic has been deleted. Only users with topic management privileges can see it.
  • P Offline
    P Offline
    pierrecor
    wrote on last edited by
    #1

    Yesterday I have attended a sort of workshop on Domain Driven Design, which seems to me that is radically different from Database Centric Systems. I can see some(???) benefit in it but on asking the following questions, I was not impressed anymore: Q: We have a very large database centric system, how long do you think it will take to move to a DDD system and how will you go about it for new systems? A: At first it will be an enormous task and it can take years. First you need to encapsulate your existing systems and then write data adapters for the DDD systems to talk to the old systems and eventually move the old databases to the new environment. My Comment: I can live with it even if it means double work at one stage. But the following question stumped me. Q: Since you (Jimmy Nilsson , author of "Applying Domain-Driven Design and Patterns: With Examples in C# and .Net" ) have moved from database centric systems to DDD systems, how did you start and how long did it took you to become proficient enough to be comfortable in DDD? (the answer is a shortened version) A: By reading books on the topic and it took years. My Comment: Wow!!! Over the years I taught myself using examples and sample code and a zillion books on software design and code. For DDD I can get hold of a few books, but practical examples and sample code is not freely available - about non-existent, and I do not have years right now to learn DDD, nor moving existing database centric systems to DDD systems.:confused:

    the confused are confused beyond confusion

    R K L H M 9 Replies Last reply
    0
    • P pierrecor

      Yesterday I have attended a sort of workshop on Domain Driven Design, which seems to me that is radically different from Database Centric Systems. I can see some(???) benefit in it but on asking the following questions, I was not impressed anymore: Q: We have a very large database centric system, how long do you think it will take to move to a DDD system and how will you go about it for new systems? A: At first it will be an enormous task and it can take years. First you need to encapsulate your existing systems and then write data adapters for the DDD systems to talk to the old systems and eventually move the old databases to the new environment. My Comment: I can live with it even if it means double work at one stage. But the following question stumped me. Q: Since you (Jimmy Nilsson , author of "Applying Domain-Driven Design and Patterns: With Examples in C# and .Net" ) have moved from database centric systems to DDD systems, how did you start and how long did it took you to become proficient enough to be comfortable in DDD? (the answer is a shortened version) A: By reading books on the topic and it took years. My Comment: Wow!!! Over the years I taught myself using examples and sample code and a zillion books on software design and code. For DDD I can get hold of a few books, but practical examples and sample code is not freely available - about non-existent, and I do not have years right now to learn DDD, nor moving existing database centric systems to DDD systems.:confused:

      the confused are confused beyond confusion

      R Offline
      R Offline
      Rohde
      wrote on last edited by
      #2

      I've read his book, and have some mixed feelings about it all. I admit there's a kind of beauty in the simplicity of DDD, both in the process and the resulting system. Also, some of the tools used, especially TDD, are universal in their benefits and can be used regardless of the development process one uses. On the other hand, it does seem to take quite some time to perfect (as you post also shows), and a bad DDD can be fatal for the system. And my biggest problem with DDD is that although our usual data-centric design might not be in vogue or beautiful, then if done right (and it's easier to do right than DDD) it is more than adequate. And sometimes "good enough" is simply that.


      "When you have made evil the means of survival, do not expect men to remain good. Do not expect them to stay moral and lose their lives for the purpose of becoming the fodder of the immoral. Do not expect them to produce, when production is punished and looting rewarded. Do not ask, `Who is destroying the world?' You are."
      -Atlas Shrugged, Ayn Rand

      P 1 Reply Last reply
      0
      • P pierrecor

        Yesterday I have attended a sort of workshop on Domain Driven Design, which seems to me that is radically different from Database Centric Systems. I can see some(???) benefit in it but on asking the following questions, I was not impressed anymore: Q: We have a very large database centric system, how long do you think it will take to move to a DDD system and how will you go about it for new systems? A: At first it will be an enormous task and it can take years. First you need to encapsulate your existing systems and then write data adapters for the DDD systems to talk to the old systems and eventually move the old databases to the new environment. My Comment: I can live with it even if it means double work at one stage. But the following question stumped me. Q: Since you (Jimmy Nilsson , author of "Applying Domain-Driven Design and Patterns: With Examples in C# and .Net" ) have moved from database centric systems to DDD systems, how did you start and how long did it took you to become proficient enough to be comfortable in DDD? (the answer is a shortened version) A: By reading books on the topic and it took years. My Comment: Wow!!! Over the years I taught myself using examples and sample code and a zillion books on software design and code. For DDD I can get hold of a few books, but practical examples and sample code is not freely available - about non-existent, and I do not have years right now to learn DDD, nor moving existing database centric systems to DDD systems.:confused:

        the confused are confused beyond confusion

        K Offline
        K Offline
        K v S
        wrote on last edited by
        #3

        DDD should help you stop thinking in tables & records and finally think objects. :(( It's silly to put every thing in objects: GUI, support code etc. but not your business logic, the one reason your building the system in the first place. Leave the off-line storage (DB) to the O/R mapper :-D

        S L 2 Replies Last reply
        0
        • P pierrecor

          Yesterday I have attended a sort of workshop on Domain Driven Design, which seems to me that is radically different from Database Centric Systems. I can see some(???) benefit in it but on asking the following questions, I was not impressed anymore: Q: We have a very large database centric system, how long do you think it will take to move to a DDD system and how will you go about it for new systems? A: At first it will be an enormous task and it can take years. First you need to encapsulate your existing systems and then write data adapters for the DDD systems to talk to the old systems and eventually move the old databases to the new environment. My Comment: I can live with it even if it means double work at one stage. But the following question stumped me. Q: Since you (Jimmy Nilsson , author of "Applying Domain-Driven Design and Patterns: With Examples in C# and .Net" ) have moved from database centric systems to DDD systems, how did you start and how long did it took you to become proficient enough to be comfortable in DDD? (the answer is a shortened version) A: By reading books on the topic and it took years. My Comment: Wow!!! Over the years I taught myself using examples and sample code and a zillion books on software design and code. For DDD I can get hold of a few books, but practical examples and sample code is not freely available - about non-existent, and I do not have years right now to learn DDD, nor moving existing database centric systems to DDD systems.:confused:

          the confused are confused beyond confusion

          L Offline
          L Offline
          leppie
          wrote on last edited by
          #4

          pierrecor wrote:

          how long do you think it will take to move to a DDD system

          You cant really. You will have to redesign the application, and basically rewrite it from scratch. Which then equates to years, and all the joys of fixing corner case bugs...

          xacc.ide - now with IronScheme support
          IronScheme - 1.0 alpha 1 out now

          P 1 Reply Last reply
          0
          • K K v S

            DDD should help you stop thinking in tables & records and finally think objects. :(( It's silly to put every thing in objects: GUI, support code etc. but not your business logic, the one reason your building the system in the first place. Leave the off-line storage (DB) to the O/R mapper :-D

            S Offline
            S Offline
            Shog9 0
            wrote on last edited by
            #5

            K.v.S. wrote:

            It's silly to put every thing in objects

            I agree. ;)

            But who is the king of all of these folks?

            K 2 Replies Last reply
            0
            • L leppie

              pierrecor wrote:

              how long do you think it will take to move to a DDD system

              You cant really. You will have to redesign the application, and basically rewrite it from scratch. Which then equates to years, and all the joys of fixing corner case bugs...

              xacc.ide - now with IronScheme support
              IronScheme - 1.0 alpha 1 out now

              P Offline
              P Offline
              pierrecor
              wrote on last edited by
              #6

              I share the same feelings. I am busy with Martin Fowler's book "Patterns of Enterprise Application Architecture" and find it quite interesting, but as said, it is a total mind shift change, and believe it or not, our company are only now about to move away from VB6 to .NET and the idea is to move to DDD as well. I am about the only one who has done some C# development and the rest of the team has still to catch up with .NET as well. So I see some dark nights looming.... Maybe I should take my 4x4 and travel into Africa... less bits and bytes there except for mosquitoes and a few stray bullets...

              the confused are confused beyond confusion

              R 1 Reply Last reply
              0
              • S Shog9 0

                K.v.S. wrote:

                It's silly to put every thing in objects

                I agree. ;)

                But who is the king of all of these folks?

                K Offline
                K Offline
                K v S
                wrote on last edited by
                #7

                That is very deep BUT in C# it's hard not to, and why put a table inside of them then?

                1 Reply Last reply
                0
                • S Shog9 0

                  K.v.S. wrote:

                  It's silly to put every thing in objects

                  I agree. ;)

                  But who is the king of all of these folks?

                  K Offline
                  K Offline
                  K v S
                  wrote on last edited by
                  #8

                  That is very deep BUT in C# it's hard not to ;P , and why put a table inside of them then?

                  K 1 Reply Last reply
                  0
                  • K K v S

                    That is very deep BUT in C# it's hard not to ;P , and why put a table inside of them then?

                    K Offline
                    K Offline
                    K v S
                    wrote on last edited by
                    #9

                    Oops :-O severe keyboard bounce

                    1 Reply Last reply
                    0
                    • P pierrecor

                      Yesterday I have attended a sort of workshop on Domain Driven Design, which seems to me that is radically different from Database Centric Systems. I can see some(???) benefit in it but on asking the following questions, I was not impressed anymore: Q: We have a very large database centric system, how long do you think it will take to move to a DDD system and how will you go about it for new systems? A: At first it will be an enormous task and it can take years. First you need to encapsulate your existing systems and then write data adapters for the DDD systems to talk to the old systems and eventually move the old databases to the new environment. My Comment: I can live with it even if it means double work at one stage. But the following question stumped me. Q: Since you (Jimmy Nilsson , author of "Applying Domain-Driven Design and Patterns: With Examples in C# and .Net" ) have moved from database centric systems to DDD systems, how did you start and how long did it took you to become proficient enough to be comfortable in DDD? (the answer is a shortened version) A: By reading books on the topic and it took years. My Comment: Wow!!! Over the years I taught myself using examples and sample code and a zillion books on software design and code. For DDD I can get hold of a few books, but practical examples and sample code is not freely available - about non-existent, and I do not have years right now to learn DDD, nor moving existing database centric systems to DDD systems.:confused:

                      the confused are confused beyond confusion

                      H Offline
                      H Offline
                      Howard Richards
                      wrote on last edited by
                      #10

                      Hmm.. and the benefits of DDD are...? Seems to me they would have to be awesome to justify the time/cost/disruption to most businesses to redesign an application. Reading your post it seems that DDD: a) takes longer than database-centric design b) requires a lot of extra skills/training Maybe a new application might justify it but not porting an existing one.. Howard

                      'Howard

                      J 1 Reply Last reply
                      0
                      • P pierrecor

                        I share the same feelings. I am busy with Martin Fowler's book "Patterns of Enterprise Application Architecture" and find it quite interesting, but as said, it is a total mind shift change, and believe it or not, our company are only now about to move away from VB6 to .NET and the idea is to move to DDD as well. I am about the only one who has done some C# development and the rest of the team has still to catch up with .NET as well. So I see some dark nights looming.... Maybe I should take my 4x4 and travel into Africa... less bits and bytes there except for mosquitoes and a few stray bullets...

                        the confused are confused beyond confusion

                        R Offline
                        R Offline
                        Russell Jones
                        wrote on last edited by
                        #11

                        pierrecor wrote:

                        believe it or not, our company are only now about to move away from VB6 to .NET

                        It's not such a surprise. We've got a few litle apps turning up in .net here and there but the bulk of the department's work is still done in VB6. I never thought i'd get to learn so much bout interop but hey it's been fun. Russ

                        1 Reply Last reply
                        0
                        • K K v S

                          DDD should help you stop thinking in tables & records and finally think objects. :(( It's silly to put every thing in objects: GUI, support code etc. but not your business logic, the one reason your building the system in the first place. Leave the off-line storage (DB) to the O/R mapper :-D

                          L Offline
                          L Offline
                          Lost User
                          wrote on last edited by
                          #12

                          Hi all, :) It's silly to put every thing in objects: GUI Much of the work around Object oriented come from handling the GUI, so I don't think it is _so_ silly. ;) Having a good OO-design driven by the model can give you more flexibility in how you compose your UI and how the business rules are applied as a reply to the UI event. This point is important when you are delivering a product build around a "standard" software. Leave the off-line storage (DB) to the O/R mapper +1 on this... :)

                          -- greetings, Dom

                          1 Reply Last reply
                          0
                          • R Rohde

                            I've read his book, and have some mixed feelings about it all. I admit there's a kind of beauty in the simplicity of DDD, both in the process and the resulting system. Also, some of the tools used, especially TDD, are universal in their benefits and can be used regardless of the development process one uses. On the other hand, it does seem to take quite some time to perfect (as you post also shows), and a bad DDD can be fatal for the system. And my biggest problem with DDD is that although our usual data-centric design might not be in vogue or beautiful, then if done right (and it's easier to do right than DDD) it is more than adequate. And sometimes "good enough" is simply that.


                            "When you have made evil the means of survival, do not expect men to remain good. Do not expect them to stay moral and lose their lives for the purpose of becoming the fodder of the immoral. Do not expect them to produce, when production is punished and looting rewarded. Do not ask, `Who is destroying the world?' You are."
                            -Atlas Shrugged, Ayn Rand

                            P Offline
                            P Offline
                            peterchen
                            wrote on last edited by
                            #13

                            COuld you define the core of DDD or "DD vs. Server Centric" in a few words?

                            Rohde wrote:

                            it does seem to take quite some time to perfect (as you post also shows), and a bad DDD can be fatal for the system.

                            One famous security guy once wrote an interesting piece about judging security systems - the gist of it being: Judge systems by how they fail. Instead of looking at minor security gains achieved when the system works, compare systems by looking at what happens when they fail - e.g. you have a false positive. I think that applis not only to security systems, but can be applied to many other things - such as Project Management and Software design paradigms: How bad things get when your team fails to excel? Can an average team sucessfully implement this paradigm, or do you need a bunch of geniuses for this? (what's the collective noun for geniuses? A shine of geniuses?)

                            We are a big screwed up dysfunctional psychotic happy family - some more screwed up, others more happy, but everybody's psychotic joint venture definition of CP
                            blog: TDD - the Aha! | Linkify!| FoldWithUs! | sighist

                            R I 2 Replies Last reply
                            0
                            • P pierrecor

                              Yesterday I have attended a sort of workshop on Domain Driven Design, which seems to me that is radically different from Database Centric Systems. I can see some(???) benefit in it but on asking the following questions, I was not impressed anymore: Q: We have a very large database centric system, how long do you think it will take to move to a DDD system and how will you go about it for new systems? A: At first it will be an enormous task and it can take years. First you need to encapsulate your existing systems and then write data adapters for the DDD systems to talk to the old systems and eventually move the old databases to the new environment. My Comment: I can live with it even if it means double work at one stage. But the following question stumped me. Q: Since you (Jimmy Nilsson , author of "Applying Domain-Driven Design and Patterns: With Examples in C# and .Net" ) have moved from database centric systems to DDD systems, how did you start and how long did it took you to become proficient enough to be comfortable in DDD? (the answer is a shortened version) A: By reading books on the topic and it took years. My Comment: Wow!!! Over the years I taught myself using examples and sample code and a zillion books on software design and code. For DDD I can get hold of a few books, but practical examples and sample code is not freely available - about non-existent, and I do not have years right now to learn DDD, nor moving existing database centric systems to DDD systems.:confused:

                              the confused are confused beyond confusion

                              M Offline
                              M Offline
                              Marc Clifton
                              wrote on last edited by
                              #14

                              Idiots. First, DDD is a rehash of existing concepts. Second, it's really good at stating the problem (complexity is a problem) without providing a solution, except for "buy my book". Third, and most importantly, it seems this concept is stated on various sites: Domain Driven Design is a vision and approach for dealing with highly complex domains that is based on making the domain itself the main focus of the project Idiots. You don't deal with complexity by making the domain the main focus of the project, you deal with complexity by abstracting away the domain, then you go back and model the domain through schema, workflow, state, decision graphs, and other obvious meta-techniques!!! So, you heard it first here: ADD - Abstraction Driven Design!!! Can you ADD???? (feel free to point out the other obvious meanings) ;P Marc

                              Thyme In The Country Interacx My Blog

                              P P T 3 Replies Last reply
                              0
                              • P pierrecor

                                Yesterday I have attended a sort of workshop on Domain Driven Design, which seems to me that is radically different from Database Centric Systems. I can see some(???) benefit in it but on asking the following questions, I was not impressed anymore: Q: We have a very large database centric system, how long do you think it will take to move to a DDD system and how will you go about it for new systems? A: At first it will be an enormous task and it can take years. First you need to encapsulate your existing systems and then write data adapters for the DDD systems to talk to the old systems and eventually move the old databases to the new environment. My Comment: I can live with it even if it means double work at one stage. But the following question stumped me. Q: Since you (Jimmy Nilsson , author of "Applying Domain-Driven Design and Patterns: With Examples in C# and .Net" ) have moved from database centric systems to DDD systems, how did you start and how long did it took you to become proficient enough to be comfortable in DDD? (the answer is a shortened version) A: By reading books on the topic and it took years. My Comment: Wow!!! Over the years I taught myself using examples and sample code and a zillion books on software design and code. For DDD I can get hold of a few books, but practical examples and sample code is not freely available - about non-existent, and I do not have years right now to learn DDD, nor moving existing database centric systems to DDD systems.:confused:

                                the confused are confused beyond confusion

                                P Offline
                                P Offline
                                Philip Laureano
                                wrote on last edited by
                                #15

                                I think the whole point of DDD is to simplify designs that would be otherwise too complicated if implemented in any other fashion. Otherwise, it can make things worse. The ultimate litmus test for any idiom or methodology is to ask yourself whether or not the "straightforward" approach can get the job done faster and more efficiently than adding another layer of indirection to your system by using the "trendy" method. If the straightforward approach gets the job done, I say just do it using the simplest way and save yourself the trouble. If DDD doesn't make the job any easier for your current projects, then I'd take Mr. Nilsson's approach with a grain of salt, and let him do his writing while I go meet my deadlines. In short, there's no better methodology than Common Sensetm :) Anyone telling you otherwise is just trying to sell you something...like their own book. :P Caveat Emptor.

                                1 Reply Last reply
                                0
                                • P peterchen

                                  COuld you define the core of DDD or "DD vs. Server Centric" in a few words?

                                  Rohde wrote:

                                  it does seem to take quite some time to perfect (as you post also shows), and a bad DDD can be fatal for the system.

                                  One famous security guy once wrote an interesting piece about judging security systems - the gist of it being: Judge systems by how they fail. Instead of looking at minor security gains achieved when the system works, compare systems by looking at what happens when they fail - e.g. you have a false positive. I think that applis not only to security systems, but can be applied to many other things - such as Project Management and Software design paradigms: How bad things get when your team fails to excel? Can an average team sucessfully implement this paradigm, or do you need a bunch of geniuses for this? (what's the collective noun for geniuses? A shine of geniuses?)

                                  We are a big screwed up dysfunctional psychotic happy family - some more screwed up, others more happy, but everybody's psychotic joint venture definition of CP
                                  blog: TDD - the Aha! | Linkify!| FoldWithUs! | sighist

                                  R Offline
                                  R Offline
                                  Rohde
                                  wrote on last edited by
                                  #16

                                  The problem, they state, is that the data-centric paradigm suffers for some problems. For instance such a model is usually tied to some technicalities that might change. Also, you system has a tendency to end up as a procedural model shoehorned into the OOP paradigm, resulting in a system that's inflexible and not as maintainable as it should be. Also the system does not usually describe the requirements directly. DDD is about focusing on the model and have less infrastructure and technical focus. So instead of focus on building in support for technicalities that may come and go, e.g. UI, focus on the core business model. It's also about not letting use cases (which is good in DDD) forcing you into a procedural thinking. In DDD, the domain model should be the language for the system requirements - that's what they call the "ubiquitous language". All this is accomplished using entity objects, value objects, repositories, and factories (design patterns which I'm sure you know of). Now, the hard part about it is that one's reaction might be "but aren't we doing this already?". The truth is no; not in the DDD way. And it is a big mind shift to shift focus form your data to your domain model. [Obviously this is only my understanding of it and I've only read Nilsson's book and not Evans' which started it all so I'm not an expert on DDD.]


                                  "When you have made evil the means of survival, do not expect men to remain good. Do not expect them to stay moral and lose their lives for the purpose of becoming the fodder of the immoral. Do not expect them to produce, when production is punished and looting rewarded. Do not ask, `Who is destroying the world?' You are."
                                  -Atlas Shrugged, Ayn Rand

                                  1 Reply Last reply
                                  0
                                  • M Marc Clifton

                                    Idiots. First, DDD is a rehash of existing concepts. Second, it's really good at stating the problem (complexity is a problem) without providing a solution, except for "buy my book". Third, and most importantly, it seems this concept is stated on various sites: Domain Driven Design is a vision and approach for dealing with highly complex domains that is based on making the domain itself the main focus of the project Idiots. You don't deal with complexity by making the domain the main focus of the project, you deal with complexity by abstracting away the domain, then you go back and model the domain through schema, workflow, state, decision graphs, and other obvious meta-techniques!!! So, you heard it first here: ADD - Abstraction Driven Design!!! Can you ADD???? (feel free to point out the other obvious meanings) ;P Marc

                                    Thyme In The Country Interacx My Blog

                                    P Offline
                                    P Offline
                                    pierrecor
                                    wrote on last edited by
                                    #17

                                    I still thinking about the 4x4 thing... travelling Africa. Maybe when I'm back (if) ADD will be in full swing... with a few books and articles on it. How much more do we need to know... and apply. But what the heck, we love it and we do it. My biggest concern - if the DDD expert leaves the company (on a 4x4 trip perhaps) who is going to maintain the systems. Now according to DDD, once done correct, you do NOT have to maintain systems, or do I miss a point here? All the years you have designed in a lateral way, UI --> Bussines --> Data. Now all of a sudden it is in the vertical... :confused: Eish! (Eish is an South African word meaning more or less... "now what the heck does he mean with that statement..." or "that was a stupid question/statement...") :)

                                    the confused are confused beyond confusion

                                    M 1 Reply Last reply
                                    0
                                    • M Marc Clifton

                                      Idiots. First, DDD is a rehash of existing concepts. Second, it's really good at stating the problem (complexity is a problem) without providing a solution, except for "buy my book". Third, and most importantly, it seems this concept is stated on various sites: Domain Driven Design is a vision and approach for dealing with highly complex domains that is based on making the domain itself the main focus of the project Idiots. You don't deal with complexity by making the domain the main focus of the project, you deal with complexity by abstracting away the domain, then you go back and model the domain through schema, workflow, state, decision graphs, and other obvious meta-techniques!!! So, you heard it first here: ADD - Abstraction Driven Design!!! Can you ADD???? (feel free to point out the other obvious meanings) ;P Marc

                                      Thyme In The Country Interacx My Blog

                                      P Offline
                                      P Offline
                                      Philip Laureano
                                      wrote on last edited by
                                      #18

                                      In some ways, this is worse than a dog chasing it's own tail--it's like a dog growing a whole new tail so that it can begin to chase itself all over again! DDD - Distraction using Domain Design.

                                      1 Reply Last reply
                                      0
                                      • P peterchen

                                        COuld you define the core of DDD or "DD vs. Server Centric" in a few words?

                                        Rohde wrote:

                                        it does seem to take quite some time to perfect (as you post also shows), and a bad DDD can be fatal for the system.

                                        One famous security guy once wrote an interesting piece about judging security systems - the gist of it being: Judge systems by how they fail. Instead of looking at minor security gains achieved when the system works, compare systems by looking at what happens when they fail - e.g. you have a false positive. I think that applis not only to security systems, but can be applied to many other things - such as Project Management and Software design paradigms: How bad things get when your team fails to excel? Can an average team sucessfully implement this paradigm, or do you need a bunch of geniuses for this? (what's the collective noun for geniuses? A shine of geniuses?)

                                        We are a big screwed up dysfunctional psychotic happy family - some more screwed up, others more happy, but everybody's psychotic joint venture definition of CP
                                        blog: TDD - the Aha! | Linkify!| FoldWithUs! | sighist

                                        I Offline
                                        I Offline
                                        Iain Clarke Warrior Programmer
                                        wrote on last edited by
                                        #19

                                        I'll answer the most important question... cactus -> cacti, so, genius -> genii.! Sounds like they grant wishes to, so bonus there! According to www.dictionary.com it's geniuses, but I'm sure I'm right, and they're wrong. I'm not in *any* way arrogant. I've got too much modesty for that... Iain.

                                        B 1 Reply Last reply
                                        0
                                        • P pierrecor

                                          Yesterday I have attended a sort of workshop on Domain Driven Design, which seems to me that is radically different from Database Centric Systems. I can see some(???) benefit in it but on asking the following questions, I was not impressed anymore: Q: We have a very large database centric system, how long do you think it will take to move to a DDD system and how will you go about it for new systems? A: At first it will be an enormous task and it can take years. First you need to encapsulate your existing systems and then write data adapters for the DDD systems to talk to the old systems and eventually move the old databases to the new environment. My Comment: I can live with it even if it means double work at one stage. But the following question stumped me. Q: Since you (Jimmy Nilsson , author of "Applying Domain-Driven Design and Patterns: With Examples in C# and .Net" ) have moved from database centric systems to DDD systems, how did you start and how long did it took you to become proficient enough to be comfortable in DDD? (the answer is a shortened version) A: By reading books on the topic and it took years. My Comment: Wow!!! Over the years I taught myself using examples and sample code and a zillion books on software design and code. For DDD I can get hold of a few books, but practical examples and sample code is not freely available - about non-existent, and I do not have years right now to learn DDD, nor moving existing database centric systems to DDD systems.:confused:

                                          the confused are confused beyond confusion

                                          T Offline
                                          T Offline
                                          Thomas Eyde
                                          wrote on last edited by
                                          #20

                                          The goal of DDD, or one of them, is to create a common language for all parties. That means developers, business analytics and customers all use the same words and phrasing. It will take time to fully understand the domain, so this is something we have to apply piecemeal. Like eating the elephant. This language is then used to reduce complexity. We name our objects and services by the same names, and they will have the same interactions. Then there are some rules to adhere to. I have only scratched the surface, but I found the use of Repositories, Entities, Value Objects and Aggregates to be especially powerful. Just by applying those, I found a deeper understanding of the customers domain and saw numerous ways to improve my code. That goes for database design as well. One example: If your aggregate contains a collection of value objects, and you need to update some of them in the database: Just delete them and insert them anew. That is because a value object is not identified by who they are (that's an entity), but by the value(s) they have. Color is one example. Currency another.

                                          M 1 Reply Last reply
                                          0
                                          Reply
                                          • Reply as topic
                                          Log in to reply
                                          • Oldest to Newest
                                          • Newest to Oldest
                                          • Most Votes


                                          • Login

                                          • Don't have an account? Register

                                          • Login or register to search.
                                          • First post
                                            Last post
                                          0
                                          • Categories
                                          • Recent
                                          • Tags
                                          • Popular
                                          • World
                                          • Users
                                          • Groups