"What could we do in Scala to address some of the deficiencies that Rich is pointing out? A dispatch mechanism could be defined like this:"
" Typical Fan code uses reflection like this a lot, and this sort of meta-programming style does not lend itself to static type checking."
"Aggregates are groups of things that belong together. An Aggregate Root is the thing that holds them all together."
"If we go back to our previous example of the customer screen, the responsibilities and concerns would be divided like this in our MVP-PMlight approach:
View:
visualization of the actual control (its own layout as well drawing other user controls that it is composed of)
outputting data in the correct user controls (for instance: various textboxes)
(simple validation) of modified/inputted data (for instance: no string values for numeric fields, etc...)
Presenter:
communication/interaction with the Model based on the contents of the Presentation Model
Presentation Model:
making data (from the Model) available so it can be displayed"
"Apache Isis is a full-stack open source application development framework, designed to let you rapidly develop domain-driven business enterprise applications. It's built with Maven and has a quickstart archetype to get you going quickly.
The framework is designed around two patterns:
the first is the naked objects pattern, whereby the framework automatically generates an object-oriented user interface (OOUI) for your domain objects. If required, this OOUI can then be customized.
the second is the hexagonal architecture. This means it allows the same domain model to be run with different viewers, either as a desktop app or as a webapp. Equally, you can choose which object store to use in order to persist your domain objects."
"Those that follow my twitter @sadache , me @infoQ or my blog have certainly already noticed that I am quite interested in Scala on languages’ axis and in Domain Context Interaction DCI pattern on architecture axis. I always search new ways for delivering quality code which is modular and concise. Modularity offers the opportunity to think about the problem in parts, which is typical of the way brains work, whereas conciseness makes use of imaginary system (reading code blocks like images). "
Data should be slim. A good rule of thumb is to never define methods on your models. This is not always the case. Better put: "Data object interfaces are simple and minimal: just enough to capture the domain properties, but without operations that are unique to any particular scenario" (Lean Architecture). The Data should really only consist of persistence-level methods, never how the persisted data is used.
"Jdon Framework : CQRS/DDD/ES Java Framework
Jdon Framework is a DDD + DCI + Domain Events(Event Sourcing/CQRS) framework for java, The domain model that being in-memeory will concurrently publish domain events to the consumers, so we can build a CQRS or EDA application, its event engineer is from Disruptor that be recommended by LMAX Architecture wriiten by Martin Fowler. (Nothing Blocks)
DCI:Data Context and Interactions, in JdonFramework, event publisher is a Role, and sending event/message is interactions of the Role, in a DCI context, the Role will be assigned(Mixin) to data model, so the injected data model can directly publish events to the consumers.
REST + DCI + Domain Events for Jdonframework"
"Immutability is abstraction. It does not "exist" in nature,World is mutable, world is permanently changing,So it's quite natural for data structures to be mutable that they describe the state of the real or simulated object at a given moment in time. but problems will arise in computer world when:"
" JdonFramework is a web application framework, it combines with rapidity and agility for your web application architecture. JdonFramework = Domain Model + In-Memory + Domain Events(Event Sourcing or CQRS) "
An EMF Model (files of type *.genmodel) is your hub for importing/exporting other metamodel formats, linking to other EMF models, and generating implementation code. Out of the box, EMF can import XML Schema Definitions (XSDs) into Ecore Models (files of type *.ecore). Similarly, EMF can export Ecore Models to XSDs. But without an understanding of the differences between these two metamodels, and without knowing how to control the mapping process, the results will often be less than desired.
"
Quick Sequence Diagram Editor is a tool for creating UML sequence diagrams from textual descriptions of objects and messages that follow a very easy syntax.
It supports actors, constructors, destructors, threads and on-diagram comments that can be used to represent conditions or loops (see example).
Thanks to the FreeHEP Vectorgraphics library, diagrams can be exported in various formats, including PDF, (E)PS, SVG, SWF, EMF, GIF, JPEG.
Quick Sequence Diagram Editor automatically lays out lifelines and messages, there is no need to drag and drop something onto a canvas. So a user should be able to create a nice sequence diagram in a small fraction of the time that one of the grand UML tools would consume.
The aim of the tool is to save you from lots of the stupid work that WYSIWYG applications require, by trading off not too much flexibility. It beats these applications by far when it comes to insert or remove objects and messages. This can be done by just inserting or removing a line of text, the tool will do all the rest."
"You can browse through the design patterns by clicking on one of the short-cut links to the right or opening up one of the following master lists, each of which displays the entire pattern catalog in a different sorting order: "