Refactoring helps to move towards cleaner code that is easier to understand and maintain. It takes practice and experience to recognise code smells: symptoms of bad design which indicate deeper problems in the code. Tools can be helpful to refactor in small steps and prevent breaking the code.
Juval Löwy has pioneered a method of building service-oriented applications in which each class represents a service onto itself. While these applications may initially seem like 'class explosion', they are actually the product of a truly decomposed system; one that has been properly analyzed and designed. Juwal explains his intent and describes how development teams can improve from this process.
As part of the ongoing transition to the module system, CORBA and other Java EE modules won't be included in the default classpath from Java 9 onwards. These modules will still be available, but specific command line flags will have to be used to be able to use them. The change will only affect non-modular applications targeting Java 9, for modular ones already need to indicate their dependencies.
Software industry pioneer, prolific author, researcher, consultant and photographer Edward Yourdon died on January 20, 2016
JAX London 2015, which took place from 12th to 15th October at the Business Design Centre in London, United Kingdom, gathered many of the experts in the areas of Java, Microservices and other modern development practices. Although the topics were varied, the overall message seemed to indicate both that these technologies are maturing, and that users are learning to use them more effectively.
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.
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.
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.
Implementing Domain-Driven Design (DDD) concepts using object orientation principles with state and behaviour often gives you a muddled mutable model, instead building domain objects with only state and behaviour as standalone functions leads to a better realization, Debasish Ghosh claims in a recent blog post.
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 final version of the Object-Relational Mapping, ORM framework Hibernate 4.3 was recently released and is now a certified implementation of the JPA 2.1 specification, (JSR 338), released in May 2013.
With a long history of data-driven development, Julie Lerman shares her experiences moving into using her skills with Domain-Driven Design in three articles, with examples in C# using Entity Framework
Architecture is about intent, we have made it about frameworks and details, Robert C. Martin, “Uncle Bob”, stated earlier at this year’s DDD Exchange Day in London. Robert refers to a book by Ivar Jacobson from 1992 and brings the original thoughts about use cases into architecture models, e.g. Hexagonal architecture and Clean architecture to improve these models.
The Open-Closed Principle, OCP, part of the object-orientation SOLID principles, was recently criticised by Jon Skeet and Robert Ashton who both believes the principle is doing more harm than good. Robert C. Martin, who identified the principles in the early 2000s, however, defends the principle, arguing that you have to look at the full description, not just the short definition.