[ros-users] [Discourse.ros.org] [Next Generation ROS] Design By Contract

fkromer ros.discourse at gmail.com
Tue Feb 6 19:09:21 UTC 2018

In the web development domain *Contract Driven Contracts* (*Design by Contract* for microservice architectures) are considered best practice for quite a long time (consider this [web post "Consumer Driven Contracts"](https://martinfowler.com/articles/consumerDrivenContracts.html) from 2006). Most people developing microservices try to limit end-to-end testing to the absolute minimum because they are "difficult, slow, brittle, and expensive" and stick to [Service Component Tests](http://microservices.io/patterns/testing/service-component-test.html) and [Service Integartion Contract Tests](http://microservices.io/patterns/testing/service-integration-contract-test.html) instead.

These test patterns don't depend on instrumentation. Other patterns like some of the observability patterns listed on [microservices.io](http://microservices.io/patterns/index.html) don't depend on instrumentation but could be (conceptually) adapted to ROS2 as well and made available e.g. as packages to ease the implementation of concepts and avoid copy&paste kind boilerplate (compare [Spring Cloud](https://spring.io/) and the [Microservice chassis pattern](http://microservices.io/patterns/microservice-chassis.html)).

There are other well known concepts like [Distributed Tracing](http://microservices.io/patterns/observability/distributed-tracing.html) which requires instrumentation. Probably there is some potential for adoption to ROS2 for this concept as well if not already considered. (As instrumentation is hard to add later it usually needs early attention.)

But it is probably better to open one/several new thread for this/these topic(s), right?

[Visit Topic](https://discourse.ros.org/t/design-by-contract/2405/39) or reply to this email to respond.

More information about the ros-users mailing list