I am not able to clearly understand the problems of bottom up approach against which Domain Driven Design advocates. Can someone please write briefly or nudge me in the write direction? What I mean is, in Sql world we have entities represented by tables, they have relations, constraints and so on. So now how is the new approach of starting with classes as entities as proposed by DDD will benifit us? But before that, as the questions indicates, I need to understand the problems posed by bottom up approach.
Related Questions in DOMAIN-DRIVEN-DESIGN
- How to use Interfaces in Domain Modelling DDD
- Domain driven design CQRS with multiple aggregates and bounded context
- Need more parameters in subclass overridden method
- Domain Driven Design: Aggregates Creating Aggregates
- How to deal with objects creation per request with high RPM node applications
- Async integration events needed sync
- In DDD where to handle interaction with external services that is part of business logic? In Domain Model or in Command Handler?
- How to split large time-related aggregates in DDD?
- One column with foreign key to multiple tables inf EntityFramework Core
- DDD & Clean Architecture: Why not define repositories in the application layer?
- Domain driven design: How to add a new database entry for an Aggregate?
- Integrate a versioning in aggregate
- when to pass args to the constructor of a service in ts?
- ASP.NET boilerplate module's dbcontext recreate abp main tables
- What's wrong with multiple entities in multiple bounded contexts pointing to the same identity?
Related Questions in BOTTOM-UP
- Eliminating Recursion stack space
- bottom up register allocation, reserving register for loads/stores
- Cant initialize a 2d array/matrix to 0
- Recursive query sum leaf values and pass sum to parents. Values stored in another table
- How do you implement the bottom-up and top-down approach in this problem?
- How can I add limited coins to the coin change problem? (Bottom-up - Dynamic programming)
- Count the sum of subsets of size k when the sum is (Greater than or equal to R) or (Lesser than or equal to L)
- Runtime Error when Trying Bottom Up Approach to Implement Fibonacci function in Swift?
- when adding new text it appears on bottom and rest of text goes up
- How to convert the recursive solution to "Moons and Umbrellas" to DP?
- LR-Parsing-Table: What determines next state in reduce-actions?
- Output produced for the given input using the bottom up parsing
- L-attributed grammar and bottom-up parsing
- Parsing table size (bottom-up)
- Find k out of n subset with maximal area
Popular Questions
- How do I undo the most recent local commits in Git?
- How can I remove a specific item from an array in JavaScript?
- How do I delete a Git branch locally and remotely?
- Find all files containing a specific text (string) on Linux?
- How do I revert a Git repository to a previous commit?
- How do I create an HTML button that acts like a link?
- How do I check out a remote Git branch?
- How do I force "git pull" to overwrite local files?
- How do I list all files of a directory?
- How to check whether a string contains a substring in JavaScript?
- How do I redirect to another webpage?
- How can I iterate over rows in a Pandas DataFrame?
- How do I convert a String to an int in Java?
- Does Python have a string 'contains' substring method?
- How do I check if a string contains a specific word?
Trending Questions
- UIImageView Frame Doesn't Reflect Constraints
- Is it possible to use adb commands to click on a view by finding its ID?
- How to create a new web character symbol recognizable by html/javascript?
- Why isn't my CSS3 animation smooth in Google Chrome (but very smooth on other browsers)?
- Heap Gives Page Fault
- Connect ffmpeg to Visual Studio 2008
- Both Object- and ValueAnimator jumps when Duration is set above API LvL 24
- How to avoid default initialization of objects in std::vector?
- second argument of the command line arguments in a format other than char** argv or char* argv[]
- How to improve efficiency of algorithm which generates next lexicographic permutation?
- Navigating to the another actvity app getting crash in android
- How to read the particular message format in android and store in sqlite database?
- Resetting inventory status after order is cancelled
- Efficiently compute powers of X in SSE/AVX
- Insert into an external database using ajax and php : POST 500 (Internal Server Error)
In SapiensWorks Mike explain it very well:
I suggest you to read the complete post before continue reading here.
If you design persistence schemas first you are not taking Domain into account; not completely and with the deep needed, at least. You are designing for efficience, redundancy, normalization, relations, etc not behaviour and later you will create entities that fits into that persistence scheme. Suddenly, you will find meaningless, strange and weird things done in your entities just to match persistence schema, persistence implementation and/or persistence technologies unless you make iterations of persistence redesign.
Both aproaches, entities designed to fit persistence and persistence redesign iterations, are bad. The first one because bad entity design and SOLID breaks; the second one because is extra work and a waste of time.
Good entity design (what it means good Domain modeling) and/or not wastig time in persistence design iterations.