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.
Delay of message sending into the future is a very powerful pattern and is often the preferable way of dealing with temporal problems compared to batch job that will run a query on the domain model and update some aggregates, Greg Young explained at the recent DDD Exchange conference in London.
High performance systems is about clean and representative models, the code doesn't have to be ugly, obscure and hard to read, Martin Thompson stated at the recent DDD Exchange conference in London.
We need to constantly challenge DDD to find the weak spots, Eric Evans stated in his keynote at DDD Exchange yesterday in London when walking through and challenging his own fundamental assumptions of Domain-Driven Design.
This article has been updated based on community and Jing Chen (Facebook)’s reaction. (See the Update section below.) Facebook came to the conclusion that MVC does not scale up for their needs and has decided to use a different pattern instead: Flux.
This article includes advice for doing enough up-front architectural design to provide the needed structure to start a project, aligning the team with the architect’s vision and assessing the possible risks.
InfoQ asked Kin Lane, the leading API evangelist, to share his views on open API designs and on what led him to launch the API Commons initiative with Steven Wilmott. He explains how translation and interoperability between the emerging API description languages matters, and how an open internet culture should prevent API Commons from making the same mistakes as past initiatives like UDDI.
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.