Move as much as possible of the behaviour away from the Entities into Value Objects when working with Aggregates, As more behaviour is needed this is added as new value objects, Paul Rayner recommends in a series of blog posts covering aggregates, entities and value objects, all concepts from Domain-Driven Design (DDD).
Successive changes to architecture and technology throughout the lifetime of an application can lead to a fragile and fragmented codebase that is hard to understand and maintain, an anti-pattern named Lava Flow or Lava Layer that Mike Hadlow often finds in enterprise software, especially in large, mission critical and long-lived software.
Layered systems are an architectural style used essentially to avoid coupling, the biggest enemy of software maintainability, with Ports and Adapters, or a Hexagonal Architecture, an example of such an architecture, Ian Cooper explains in a presentation about architecture styles, specifically the Hexagonal Architecture.
Domain-Driven Design (DDD) together with Onion Architecture is a combination that Wade Waldron believes has increased his code quality dramatically since he started using it a few years back. Using DDD was a kick-off but together with Onion architecture he found his code to be more readable and understandable, and far easier to maintain.
Oracle's latest update to Java, 8 update 11, introduced a breaking change that has affected a range of third-party tools, including JRebel, Groovy and Google's Guice library.
Martin Thompson answers a few questions about the opportunity for developers and architects to introduce custom protocols to their system's interaction points.
This article has been updated based on community and Jing Chen (Facebook)’s reaction. (See the Update section below.) Facebook came to the conclusion that MVC does not scale up for their needs and has decided to use a different pattern instead: Flux.
Independently from each other, Richard Warburton in a presentation, and Mark Seemann in a blog post both talks about object-orientation and the SOLID design principles from a functional programming perspective.
The patterns & practices group at Microsoft have released a guide with solutions and patterns suitable when implementing cloud-hosted applications. The guide contains ten guidance topics together with 24 design patterns targeting eight categories of problems covering common areas in cloud application development. Also included are ten sample applications to demonstrate the usage these patterns.
Russ Miles recently shared some thoughts and ideas about the needs for adaptability in a system and how his implementation of the Hexagonal Architecture can help in achieving this. He used a Java and Spring based application to exemplify how such a system can be implemented.
Andras Nemes, a web developer on the .NET platform, is doing a series of blog posts on the SOLID design principles and other design patterns he has found interesting in object-oriented programming and design, currently on D in SOLID, the Dependency Inversion Principle. Earlier he has among other patterns covered Command, Builder, Visitor, Bridge and Observer.
Use events for interactions between small business components to bring simplicity to a system’s architecture, Russ Miles suggests in a recent presentation about simple event-driven components, as a follow-up on his talk a month earlier where he laid the architectural ground for his ideas about simplicity.
Using events for interactions between small business components can bring simplicity to a system’s architecture, Russ Miles explained in a presentation last week talking about Architectural Simplicity through Events.