Cheers, Sathya Srinivasan - SCJP 1.2, SCWCD 1.2, SCMAD 1.0
Co-Author of Whizlabs SCMAD Certification Exam Simulator and SCMAD Exam Guide Book
Originally posted by Andrew Marshall:
I wouldn't call TDD a "design strategy". I would refer to it as a development methodology or technique. It can be used with OO code, procedural code and anything in between.
The soul is dyed the color of its thoughts. Think only on those things that are in line with your principles and can bear the light of day. The content of your character is your choice. Day by day, what you do is who you become. Your integrity is your destiny - it is the light that guides your way. - Heraclitus
Originally posted by Roger Graff:
Can anyone comment on how these 2 design strategies can work together? It seems either strategy might lead a system down a different road. Has anyone out there successfully combined these strategies?
The soul is dyed the color of its thoughts. Think only on those things that are in line with your principles and can bear the light of day. The content of your character is your choice. Day by day, what you do is who you become. Your integrity is your destiny - it is the light that guides your way. - Heraclitus
Originally posted by Andrew Marshall:
I wouldn't call TDD a "design strategy". I would refer to it as a development methodology or technique. It can be used with OO code, procedural code and anything in between.
Cheers, Sathya Srinivasan - SCJP 1.2, SCWCD 1.2, SCMAD 1.0
Co-Author of Whizlabs SCMAD Certification Exam Simulator and SCMAD Exam Guide Book
Originally posted by Roger Graff:
The little I've read about each has lead me to believe that DDD is similar to a top-down approach vs the TDD bottom-up approach.
DDD = design first?
TDD = design on the fly?
Cheers, Sathya Srinivasan - SCJP 1.2, SCWCD 1.2, SCMAD 1.0
Co-Author of Whizlabs SCMAD Certification Exam Simulator and SCMAD Exam Guide Book
The soul is dyed the color of its thoughts. Think only on those things that are in line with your principles and can bear the light of day. The content of your character is your choice. Day by day, what you do is who you become. Your integrity is your destiny - it is the light that guides your way. - Heraclitus
Originally posted by Roger Graff:
DDD = design first?
TDD = design on the fly?
[/QB]
The soul is dyed the color of its thoughts. Think only on those things that are in line with your principles and can bear the light of day. The content of your character is your choice. Day by day, what you do is who you become. Your integrity is your destiny - it is the light that guides your way. - Heraclitus
Originally posted by Ilja Preuss:
From the little I know about DDD, I'd guess that you would use it to find potential classes, their names and rough behaviour. Than you could use TDD to implement the classes?
Cheers, Sathya Srinivasan - SCJP 1.2, SCWCD 1.2, SCMAD 1.0
Co-Author of Whizlabs SCMAD Certification Exam Simulator and SCMAD Exam Guide Book
Originally posted by Ilja Preuss:
Well, it doesn't hurt to have a rough idea of what the design might look like when starting TDD (actually many descriptions of TDD start with a short design session). After all, to start to write your first test, you at least need to have a rough idea of what kind of class you will test, and what behaviour you will expect from it, don't you?
Author of <a href="http://www.amazon.com/exec/obidos/ASIN/0131177052/ref=jranch-20" target="_blank" rel="nofollow">Working Effectively with Legacy Code</a>
Originally posted by Michael Feathers:
I agree and I often do that, but I find that the most valuable state of mind to be in when I TDD is the state of allowing myself to be surprised. If the tests lead to a different design, it's important consider it and not to feel constrained by initial design concepts.
The soul is dyed the color of its thoughts. Think only on those things that are in line with your principles and can bear the light of day. The content of your character is your choice. Day by day, what you do is who you become. Your integrity is your destiny - it is the light that guides your way. - Heraclitus
Originally posted by Ilja Preuss:
After all it seems much more important to me that the code speaks to the developers and is easy to work with, than that it speaks to the business people.
Cheers, Sathya Srinivasan - SCJP 1.2, SCWCD 1.2, SCMAD 1.0
Co-Author of Whizlabs SCMAD Certification Exam Simulator and SCMAD Exam Guide Book
Originally posted by Sathya Srinivasan:
The advantage in keeping this in mind is that it makes it a lot easier for the business person to understand how the developers are trying to realize the problem and can offer more insight to the relationships.
The soul is dyed the color of its thoughts. Think only on those things that are in line with your principles and can bear the light of day. The content of your character is your choice. Day by day, what you do is who you become. Your integrity is your destiny - it is the light that guides your way. - Heraclitus
Originally posted by Ilja Preuss:
Well, yes, but when those relationships are more driven by matching the "business reality" than by the needs of the code, wouldn't that be rather ineffective???![]()
Cheers, Sathya Srinivasan - SCJP 1.2, SCWCD 1.2, SCMAD 1.0
Co-Author of Whizlabs SCMAD Certification Exam Simulator and SCMAD Exam Guide Book
Originally posted by Roger Graff:
I'm curious how challenging it is to maintain a domain model that accurately reflects both the domain and the actual system architecture.
Author of Test Driven (2007) and Effective Unit Testing (2013) [Blog] [HowToAskQuestionsOnJavaRanch]
Originally posted by Lasse Koskela:
... meaning that practically all changes to the domain model force no ripple effect to the system architecture, whatever that is.
Cheers, Sathya Srinivasan - SCJP 1.2, SCWCD 1.2, SCMAD 1.0
Co-Author of Whizlabs SCMAD Certification Exam Simulator and SCMAD Exam Guide Book
Originally posted by Sathya Srinivasan:
For example, if you are modelling a shopping cart, DDD emphasizes you have classes like ShoppingBag, Product, etc. instead something techie like ItemCollection, SingleItem, etc.
The soul is dyed the color of its thoughts. Think only on those things that are in line with your principles and can bear the light of day. The content of your character is your choice. Day by day, what you do is who you become. Your integrity is your destiny - it is the light that guides your way. - Heraclitus
Lasse: ... meaning that practically all changes to the domain model force no ripple effect to the system architecture, whatever that is.
Sathya: I don't think so. In fact, every domain change would invalidate the supporting system, thereby needing a change in the system to reflect the change in the domain.
For example, if the concept of MONEY changes in an accounting system because everyone reverted back to Barter system, I would think that the program that works on money would have to change as well. Otherwise, the program will no longer be useful!
Author of Test Driven (2007) and Effective Unit Testing (2013) [Blog] [HowToAskQuestionsOnJavaRanch]
Originally posted by Ilja Preuss:
But I'm nevertheless sceptical of letting business language drive the system structure too much. In Uncle Bob's Bowling Game Example, should they have introduced a Frame class consisting of Throw's, just because that's how the "business people" would have thought about it?
Author of Test Driven (2007) and Effective Unit Testing (2013) [Blog] [HowToAskQuestionsOnJavaRanch]
So you made a portal in time and started grabbing people. This tiny ad thinks that's rude:
Smokeless wood heat with a rocket mass heater
https://woodheat.net
|