-
Notifications
You must be signed in to change notification settings - Fork 13
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
EDM design considerations #19
Comments
Maybe another one:
We currently use (some) inheritance in the EDM for two reasons: |
Can we implement these constraints via the GSL (and the tools that support it)? |
(I am obviously in favour of straight jackets that help us not to stray from the true path) |
Interesting suggestion! Not directly the GSL, but if the C++ Core Guidelines become 'extendable' and the static analysers will support 'customisable guideline profiles' (as seems to be suggested) then, eventually, I would expect the answer is 'yes'. |
Interesting indeed. This needs to be there early on, to make sure the rules are actually applied. Gerhard do you have c C++ AST translation of those requirements ? |
Unfortunately, no... Note that I do know how to write a check for 4) today: just try to inherit from an EDM class, and check that the compilation fails... 3) is hard, as it not a property of the EDM class, but of its usage, so a constraint on the event store methods. 1) is a performance requirement, and 2) is maybe not a property of an individual class... So automatic 'machine verification' may be difficult -- but I invite everyone to prove me wrong! |
I think if we can from the start provide a recipe for automatic checking we Once you have a working suite for automated testing (that is very easy to
On Thu, Nov 12, 2015 at 11:09 AM GerhardRaven [email protected]
|
|
So maybe we add
(note the use of 'should' and not 'shall' ;-) |
A suggestion (feel free to reject it) for the workshop (and after it) is to draw up
a ‘design guidelines’ for the various topics. This is what has already started here.
Let me add my three favourite ‘commandments’:
rationale:
If you look at GaudiAlg/GaudiAlg/TransformAlgorithm.h (assuming you’ve run
the script I sent out yesterday -- I will add a pull request for it) you will see a clear
example of why I want 1), and the impact it has (i.e. simplifies things) if you look at eg.
Tf/PatAlgorithms/src/PatMatch.cpp and Calo/CaloReco/src/CaloSinglePhotonAlg.cpp
which are two examples of code adapted to use TransformAlgorithm...
The text was updated successfully, but these errors were encountered: