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).
Less functionality can make a better product according to the “Worse is Better” concept described 25 years ago by Richard P. Gabriel. According to Kevlin Henney and Frank Buschmann we can learn from the worse is better concept for development and architecture with agile and lean.
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.
The Google Developers YouTube channel has posted a set of 16 videos on Android Performance Patterns outlining a number of performance issues developers stumble across when creating applications for Android, along with advice on dealing with them which we will present in summary.
Niels Pflaeging, founder of the BetaCodex Network, did the opening talk organize for complexity - how to get life back into work on the second day of the Dare Festival Antwerp 2014. He explained how decentralizing organizations is paramount to increase their performance and agility.
Organizations look for ways to increase their agility and becoming more adaptive and responsive. There a new wave of modern ways for managing organizations, supporting transparency and self-organization, taking off. LiquidO is an organizational governance model for arranging activities and decisions and giving credit, allowing everybody in an organization to take part in management activities.
To become agile you might need to change the core values and beliefs of an organization. Applying value systems from spiral dynamics can help organizations to go from doing agile to being agile as Dajo Breddels showed in the path to agility at the XP Days Benelux 2014 conference.
Software Development is often considered to be knowledge intensive, therefor organizations look for ways to enable continuous learning. “We need learning organisations and they start with learning individuals” says Marcin Floryan. Individual learning can be difficult and scaling individual learning even more challenging. What can organizations do to become a continuous learning organization?
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.
The Apache Camel team recently released version 2.14, their 66th release. Camel is an open-source integration framework that provides components based on the popular enterprise integration patterns. It allows an application to define route and mediation rules in many domain-specific languages (DSLs), for example with Java, XML, Groovy and Scala.
Testing embedded software and systems for the Internet of Things has to involve physical, sensory and emotional interactions says Gerie Owen, Business Solutions Analyst from Northeast Utilities. InfoQ interviewed Gerie Owen and Peter Varhol about how testing differs for the internet of things and embedded software and systems, and on dealing with expectations and experiences of people in testing.
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.
The recently released version v1.0.0 of HazelcastMQ adds a Java STOMP client and server implementation as well as an Apache Camel component. HazelcastMQ is a provider of a messaging layer on top of the basic Queue and Topic data structures in Hazelcast, an in-memory data grid. STOMP is the Simple (or Streaming) Text Orientated Messaging Protocol, an interoperable wire format.