InfoQ Homepage Patterns Content on InfoQ
-
Aggregates, Entities and Value Objects in Domain-Driven Design
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).
-
Using the "Worse is Better" Concept with Agile and Lean
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.
-
Architecture, Technology and the Lava Layer Anti-Pattern
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.
-
Google’s Android Performance Patterns
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.
-
Decentralizing Organizations to Deal with Complexity
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.
-
Liquefying an Organization to Increase 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.
-
How Spiral Dynamics Can Help To Become More Agile
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.
-
Becoming a Continuous Learning Organization
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?
-
Exploring the Hexagonal Architecture
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 with Onion 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.
-
Apache Camel 2.14: Java 8, Spring 4, REST DSL and Metrics
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 the Internet of Things
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.
-
Java 8 Update 11 Broke Third Party Tools
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.
-
Protocol Design and Implementation with Martin Thompson
Martin Thompson answers a few questions about the opportunity for developers and architects to introduce custom protocols to their system's interaction points.
-
HazelcastMQ v1.0.0 with a STOMP and Apache Camel Implementation
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.