I’ll give 2 talks on monday 10 november and tuesday 11 november at PrioConference in Baden Baden, Germany. Here are the abstracts:
Architecture and Dependencies (Monday 15h30 – 16h45)
Why do we architect our software? Why do concepts such as component, abstraction, cohesion, layering or IoC are nowadays so popular? In this session, we will address these questions through the prism of dependencies. With appropriate tooling, a code base architecture can be concretely seen as a graph of dependencies. Good architectural practices and patterns results in enforcing some simple structural properties on this graph. Amongst properties exposed, we will focus on directed acyclic graph and on the need to keep components at low-level.
This session aims at being practical oriented. Several real-world code bases will be dissected with the tool NDepend to illustrate principles and explanations presented.
Avoid architecture regression with active conventions (Tuesday 11h45 13h00)
What the last decades taught us is that the code source is the design. Documentation on the reasons why a particular architectural decision has been taken sits aside the code base. Quickly, such architectural documentation becomes obsolete because the cost of keeping it in-sync with the code base is too high. Intentions behind design decisions get lost and as a result, the implementation ends up violating the initial guidance. This phenomenon is known as architecture regression/design erosion.
In this session we will propose a way to avoid architecture erosion through the idea of custom active conventions. Concretely, custom conventions presented are written in the dedicated language Code Query Language (CQL), supported by the tool NDepend. CQL lets write conventions about a large range of architectural principles such as IoC, layering, cohesion, immutability/purity or encapsulation. Such convention is qualified as active because once integrated into a build process, it automatically warns as soon as it gets violated.