InfoQ Homepage Design 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).
-
Bad Practices Building Microservices
When adopting a microservices architecture, using an external architect to create the design of a service instead of helping a team make their own decisions about design and implementation is one of several traps or bad practices that Vladimir Khorikov has experienced in his work.
-
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.
-
Designing and Storing Aggregates in Domain-Driven Design
Creating and working with well-designed aggregates is one of the least well understood tactical patterns found in Domain-Driven Design, Vaughn Vernon explains in two articles giving some guidelines to composing aggregate boundaries and alternatives to an ORM when storing them.
-
JetBrains Updates All Their .NET Tools Starting with ReSharper 9
JetBrains has announced new RTM versions for their .NET tools, including ReSharper 9, dotTrace 6, dotCover 3, dotMemory 4.2, dotPeek 1.3 and TeamCity Add-in 9.0. JetBrains has created a single installer and platform for these tools. When attempting to install ReSharper, developers are presented with the option to install other .NET tools which will share the platform.
-
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.
-
Relation of Agility and Modularity
This post describes the relation of Agility and Modularity. Why modularity is important and how can we use it is described in OSGi white paper.
-
Facebook & Instagram Lessons on Android Development for Emerging Markets
Facebook and Instagram shared from their experience improving their apps to perform better on various Android devices and over different network connection speeds during the session Scaling Android Apps for Emerging Markets recorded at @Scale 2014.
-
Google’s Guidelines for Creating and Publishing Android Apps
Google has published “The Secrets to App Success on Google Play”, a playbook meant to educate Android developers on creating applications that have greater chances to be appreciated by users, downloaded by more people and obtain better results.
-
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.
-
Using Complexity Measurements to Improve Software Quality
Complexity is a direct indicator of software quality and costs: if the complexity for any code is high, the quality of that code will be lower and it will cost more to manage it. Complexity measurements can be used to estimate development and test activities and to decide where refactoring is needed to improve quality and prevent problems.
-
Designing Systems for Testability
Testability must be explicitly designed in the system said Peter Zimmerer from Siemens AG. Test architects should drive testability and collaborate with architects, designers and testers in using good design and engineering practices. At the QA&Test 2014 conference Peter gave a tutorial about design for testability for embedded software systems.
-
Alan Cooper Talks About Face 4 and Issues in UX Design
Alan Cooper shares his views on the state of UX Design and how the fourth edition of his book, About Face, helps designers address challenges such as flat design, wearable devices, and implementing goal-directed design.
-
A Look at MongoRepository for .NET
Most of the open source projects we share with you on InfoQ increase the capabilities of another library or technology. MongoRepository is different in that it intentionally limits the capabilities of the underlying library. We’ll let Rob Janssen why it does this in his own words.