Domain-Driven Design with Java - A Practitioner's Guide Quotes
Domain-Driven Design with Java - A Practitioner's Guide: Create simple, elegant, and valuable software solutions for complex business problems
by
Premanand Chandrasekaran6 ratings, 3.50 average rating, 0 reviews
Domain-Driven Design with Java - A Practitioner's Guide Quotes
Showing 1-30 of 47
“From a consumer’s perspective, the robustness principle (Postel’s law) applies: be conservative in what you send, be liberal in what you accept.”
― Domain-Driven Design with Java - A Practitioner's Guide: Create simple, elegant, and valuable software solutions for complex business problems
― Domain-Driven Design with Java - A Practitioner's Guide: Create simple, elegant, and valuable software solutions for complex business problems
“CAP theorem. The theorem postulates that distributed systems can either be highly available or consistent in the event of a network partition, not both at the same time. Given the three characteristics, consistency, availability, and partition tolerance, the theorem postulates that distributed systems can either be highly available or consistent in the event of a network partition, not both at the same time.”
― Domain-Driven Design with Java - A Practitioner's Guide: Create simple, elegant, and valuable software solutions for complex business problems
― Domain-Driven Design with Java - A Practitioner's Guide: Create simple, elegant, and valuable software solutions for complex business problems
“Transactional outbox: None of the preceding methods are completely foolproof in the sense that there still exists a window of opportunity where the database and the event bus can become inconsistent (this is true even with two-phase commits). One way to circumvent this problem is by completely eliminating the dual-write problem. In this solution, the command processor writes to its database and the intended event to an outbox table in a local transaction. A separate poller component polls the outbox table and writes to the event bus. Polling can be computationally intensive and could lead back to the dual write problem again because the poller has to keep track of the last written event.”
― Domain-Driven Design with Java - A Practitioner's Guide: Create simple, elegant, and valuable software solutions for complex business problems
― Domain-Driven Design with Java - A Practitioner's Guide: Create simple, elegant, and valuable software solutions for complex business problems
“Partnership relationships between teams can lead to a situation where individual team responsibilities become very unclear,”
― Domain-Driven Design with Java - A Practitioner's Guide: Create simple, elegant, and valuable software solutions for complex business problems
― Domain-Driven Design with Java - A Practitioner's Guide: Create simple, elegant, and valuable software solutions for complex business problems
“It also helps if these teams are co-located and/or have a significant working time overlap.”
― Domain-Driven Design with Java - A Practitioner's Guide: Create simple, elegant, and valuable software solutions for complex business problems
― Domain-Driven Design with Java - A Practitioner's Guide: Create simple, elegant, and valuable software solutions for complex business problems
“Leaking of domain logic: In an ideal world, the aggregate will remain the custodian of all domain logic. Given that the orchestrator is also stateful, business logic may inadvertently shift to the orchestrator. Care should be taken to ensure that the orchestrator only has flow control logic while business invariants remain within the confines of the aggregate.”
― Domain-Driven Design with Java - A Practitioner's Guide: Create simple, elegant, and valuable software solutions for complex business problems
― Domain-Driven Design with Java - A Practitioner's Guide: Create simple, elegant, and valuable software solutions for complex business problems
“Important Note This may feel contrary to the notion of centralizing business validations on the backend. While this may be a noble attempt at implementing the Don’t Repeat Yourself (DRY) principle, in reality, it poses a lot of practical problems. Distributed systems expert Udi Dahan has a very interesting take on why this may not be such a virtuous thing to pursue. Ted Neward also talks about this in his blog, entitled The Fallacies of Enterprise Computing.”
― Domain-Driven Design with Java - A Practitioner's Guide: Create simple, elegant, and valuable software solutions for complex business problems
― Domain-Driven Design with Java - A Practitioner's Guide: Create simple, elegant, and valuable software solutions for complex business problems
“when coupled with data-binding constructs, makes for code that is much more readable, maintainable, and testable.”
― Domain-Driven Design with Java - A Practitioner's Guide: Create simple, elegant, and valuable software solutions for complex business problems
― Domain-Driven Design with Java - A Practitioner's Guide: Create simple, elegant, and valuable software solutions for complex business problems
“we are opposed to creating additional tiers merely as a means to compensate for poorly factored core domain APIs.”
― Domain-Driven Design with Java - A Practitioner's Guide: Create simple, elegant, and valuable software solutions for complex business problems
― Domain-Driven Design with Java - A Practitioner's Guide: Create simple, elegant, and valuable software solutions for complex business problems
“is possible for aggregates to contain child aggregates.”
― Domain-Driven Design with Java - A Practitioner's Guide: Create simple, elegant, and valuable software solutions for complex business problems
― Domain-Driven Design with Java - A Practitioner's Guide: Create simple, elegant, and valuable software solutions for complex business problems
“Impact mapping provides an easy-to-understand visual representation of the relationship between the goals, users, and impacts on the deliverables.”
― Domain-Driven Design with Java - A Practitioner's Guide: Create simple, elegant, and valuable software solutions for complex business problems
― Domain-Driven Design with Java - A Practitioner's Guide: Create simple, elegant, and valuable software solutions for complex business problems
“An impact map is a visualization and strategic planning tool that enables you to understand scope and underlying assumptions. It was created collaboratively by senior technical and business people in the form of a mind map”
― Domain-Driven Design with Java - A Practitioner's Guide: Create simple, elegant, and valuable software solutions for complex business problems
― Domain-Driven Design with Java - A Practitioner's Guide: Create simple, elegant, and valuable software solutions for complex business problems
“Both the business model canvas and the lean canvas provide a high-level view of the business model, the high-priority problems, and the potential solutions.”
― Domain-Driven Design with Java - A Practitioner's Guide: Create simple, elegant, and valuable software solutions for complex business problems
― Domain-Driven Design with Java - A Practitioner's Guide: Create simple, elegant, and valuable software solutions for complex business problems
“In order to make the canvas actionable, the idea is to capture items that were most uncertain and/or risky.”
― Domain-Driven Design with Java - A Practitioner's Guide: Create simple, elegant, and valuable software solutions for complex business problems
― Domain-Driven Design with Java - A Practitioner's Guide: Create simple, elegant, and valuable software solutions for complex business problems
“Creating a business model canvas can prove challenging if you do not have an existing product already, which is usually true in the case of start-ups or existing enterprises expanding into new business areas. In such cases, a variation in the form of the lean canvas is worth exploring.”
― Domain-Driven Design with Java - A Practitioner's Guide: Create simple, elegant, and valuable software solutions for complex business problems
― Domain-Driven Design with Java - A Practitioner's Guide: Create simple, elegant, and valuable software solutions for complex business problems
“However, without some level of governance, this may quickly devolve into a big ball of mud, with layering decisions being made seemingly arbitrarily, based on personal preferences and experiences (or lack thereof).”
― Domain-Driven Design with Java - A Practitioner's Guide: Create simple, elegant, and valuable software solutions for complex business problems
― Domain-Driven Design with Java - A Practitioner's Guide: Create simple, elegant, and valuable software solutions for complex business problems
“In such scenarios, it may be worth considering consciously allowing one or more layers to be bypassed.”
― Domain-Driven Design with Java - A Practitioner's Guide: Create simple, elegant, and valuable software solutions for complex business problems
― Domain-Driven Design with Java - A Practitioner's Guide: Create simple, elegant, and valuable software solutions for complex business problems
“While such translations may be necessary across bounded contexts, teams should strive to avoid the need for variations in names and structures of the same concept within a single bounded context. The intentional use of ubiquitous language helps avoid such scenarios.”
― Domain-Driven Design with Java - A Practitioner's Guide: Create simple, elegant, and valuable software solutions for complex business problems
― Domain-Driven Design with Java - A Practitioner's Guide: Create simple, elegant, and valuable software solutions for complex business problems
“If the objects being translated are more or less structurally identical, we have an anemic translation.”
― Domain-Driven Design with Java - A Practitioner's Guide: Create simple, elegant, and valuable software solutions for complex business problems
― Domain-Driven Design with Java - A Practitioner's Guide: Create simple, elegant, and valuable software solutions for complex business problems
“Another variation of the layer cake we see commonly is one where layers refuse to share input and output types in the name of higher isolation and looser coupling.”
― Domain-Driven Design with Java - A Practitioner's Guide: Create simple, elegant, and valuable software solutions for complex business problems
― Domain-Driven Design with Java - A Practitioner's Guide: Create simple, elegant, and valuable software solutions for complex business problems
“In the layer cake anti-pattern, each layer merely proxies the call to the layer beneath it without adding any value.”
― Domain-Driven Design with Java - A Practitioner's Guide: Create simple, elegant, and valuable software solutions for complex business problems
― Domain-Driven Design with Java - A Practitioner's Guide: Create simple, elegant, and valuable software solutions for complex business problems
“Some amount of redundancy in the layering may be unavoidable for the purposes of standardization.”
― Domain-Driven Design with Java - A Practitioner's Guide: Create simple, elegant, and valuable software solutions for complex business problems
― Domain-Driven Design with Java - A Practitioner's Guide: Create simple, elegant, and valuable software solutions for complex business problems
“From that perspective, solutions that apply DDD naturally tend to be layered as well.”
― Domain-Driven Design with Java - A Practitioner's Guide: Create simple, elegant, and valuable software solutions for complex business problems
― Domain-Driven Design with Java - A Practitioner's Guide: Create simple, elegant, and valuable software solutions for complex business problems
“The singular purpose of this repository is to load a single instance of an aggregate using its identifier. It is important to note that this repository does not support finding aggregate instances using any other means.”
― Domain-Driven Design with Java - A Practitioner's Guide: Create simple, elegant, and valuable software solutions for complex business problems
― Domain-Driven Design with Java - A Practitioner's Guide: Create simple, elegant, and valuable software solutions for complex business problems
“It may be prudent to make use of domain events to reduce the amount of coupling between bounded contexts, making it a critical building block of DDD.”
― Domain-Driven Design with Java - A Practitioner's Guide: Create simple, elegant, and valuable software solutions for complex business problems
― Domain-Driven Design with Java - A Practitioner's Guide: Create simple, elegant, and valuable software solutions for complex business problems
“Fundamentally, an aggregate has the following qualities: Is an entity usually composed of other child entities and value objects Encapsulates access to child entities by exposing behavior (usually referred to as commands) Is a boundary that is used to enforce business invariants (rules) consistently Is an entry point to get things done within a bounded context”
― Domain-Driven Design with Java - A Practitioner's Guide: Create simple, elegant, and valuable software solutions for complex business problems
― Domain-Driven Design with Java - A Practitioner's Guide: Create simple, elegant, and valuable software solutions for complex business problems
“Aggregates are also referred to as aggregate roots, that is, the object that is at the root of the entity hierarchy. We use these terms synonymously in this book.”
― Domain-Driven Design with Java - A Practitioner's Guide: Create simple, elegant, and valuable software solutions for complex business problems
― Domain-Driven Design with Java - A Practitioner's Guide: Create simple, elegant, and valuable software solutions for complex business problems
“It is common to collectively refer to entities and value objects as domain objects.”
― Domain-Driven Design with Java - A Practitioner's Guide: Create simple, elegant, and valuable software solutions for complex business problems
― Domain-Driven Design with Java - A Practitioner's Guide: Create simple, elegant, and valuable software solutions for complex business problems
“There seems to exist a lot of confusion between the terms subdomains and bounded contexts. What is the difference? It turns out that subdomains are problem space concepts, whereas bounded contexts are solution space concepts.”
― Domain-Driven Design with Java - A Practitioner's Guide: Create simple, elegant, and valuable software solutions for complex business problems
― Domain-Driven Design with Java - A Practitioner's Guide: Create simple, elegant, and valuable software solutions for complex business problems
