On Thu, Oct 11, 2012 at 10:03 AM, Victor Vasiliev vasilvv@gmail.com wrote:
I think instead of using individual constant, we should finally introduce a Capabilities class.
It should have a single static method, has(), which indicates whether a certain capability is registered within the system. At the beginning, capabilities will be listed as static members of that class, but we may do something more clever at the future.
I would also suggest that we introduce a policy of adding a capability for any new hook we add. Or we could parse docs/hooks.txt in order to avoid duplication (probably moving it somewhere).
I think this is a good idea. The case for that is here: http://martinfowler.com/bliki/FeatureToggle.html
Gotta love an article that starts with "Imagine you are releasing into production every two weeks..." :)
Some bikeshedding: I'm a little concerned with using the term "Capabilities", since I generally hear that term more frequently in designing software security models: http://en.wikipedia.org/wiki/Capability-based_security
Rob