InfoQ Homepage Methodologies Content on InfoQ
-
Protocol-Oriented Programming in Swift
At WWDC 2015, Dave Abrahams, of C++/Boost fame and now lead of the Swift Standard Library group at Apple, introduced Swift as a Protocol-oriented language, and showed how protocols can be used to improve your code.
-
DDD and Living Documentation
Creating documentation is boring, it's often obsolete and misleading but with a new mindset both your documentation and code can improve, Cyrille Martraire explained in a presentation showing how to create living documentation when working with Domain-Driven Design (DDD) at this year’s DDD Exchange conference in London.
-
Eric Evans on DDD, Microservices and Boundaries
There is tremendous value in microservices, probably giving us the best environment we have ever had for doing Domain-Driven Design (DDD), Eric Evans stated in his keynote at this year’s DDD Exchange conference in London. Iteration is the most important key to good design and microservices is the second attempt, after SOA, to get things right.
-
Domain-Driven Design the Wrong Way
Applications claimed to have been built using Domain-Driven Design (DDD) in reality often consists of entities or DTOs separating data and logic together with services containing a mix of business and infrastructure logic, Gabriel Schenker states, noting that this also often applies early on to projects building new applications. Lack of knowledge is one major reason for this, Schenker believes.
-
Avoid a Canonical Data Model
Standardizing on common models for business objects that are exchanged within an enterprise, e.g. Customer, Order and Product together with the attributes and associations they have, might seem compelling but for Stefan Tilkov this creation of Canonical Data Models (CDMs) is a horrible idea which he strongly advices against.
-
Clarifying Domain-Driven Design Using a Trading Application Example
Domain-Driven Design (DDD) is an approach to building software emphasizing collaboration between domain experts, developers and others involved in order to meet business objectives, Naresh Bhatia explains introducing the DDD base concepts exemplifying with Bullsfirst, an example system of medium complexity from the financial trading domain.
-
Adoption of Agile in Eastern Europe
The gap in agile adoption between Eastern Europe and the US and Western Europe is becoming smaller. Scrum is the most widespread framework, Kanban adoption is growing and SAFe, LeSS, DAD are trending. The way that companies are transitioning to agile is significantly different in Eastern Europe.
-
The Benefits of Microservices
Gene Kim (moderator), Gary Gruver, Andrew Phillips and Randy Shoup have discussed some of the benefits of microservices in a recent online panel.
-
Behaviour-Driven Development Combined with Domain-Driven Design
Behaviour-Driven Development (BDD) is very much about conversations and examples but there is a software design part that can be used to bring BDD and Domain-Driven Design (DDD) practices together, combining the conversional bits with a domain-focused design activity, Konstantin Kudryashov explains in a presentation.
-
Exploring the Causes of Problems with the Analysis of Competing Hypothesis Method
The analysis of competing hypotheses (ACH) method can be used to evaluate multiple competing hypotheses when investigating problems. The method mitigates cognitive biases that humans experience when exploring the causes of problems.
-
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).
-
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.
-
Sharing Data Between Bounded Contexts in Domain-Driven Design
When using Domain-Driven Design (DDD) separating the concerns of a large system into bounded contexts with each context using its own data store there is often a need to share some common data. One way of doing that is to let each context publish events about changes, events that others can listen to, Julie Lerman recently explained in MSDN Magazine.
-
Lean Thinking Applied for Organizational Change
In lean, we co-design and continuously improve processes and tools to better serve individuals and interactions said Claudio Perrone. Lean views problems as a gap between the current situation and the standard and expectation. Am interview with Claudio about problem solving and learning, and on tools that can be used to apply lean thinking for change in organizations.
-
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.