<br><br><div class="gmail_quote">On Wed, Feb 6, 2013 at 4:41 PM, Caitlin Bestler <span dir="ltr"><<a href="mailto:caitlin.bestler@nexenta.com" target="_blank">caitlin.bestler@nexenta.com</a>></span> wrote:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
<div text="#000000" bgcolor="#FFFFFF"><div>
<div>On 2/6/2013 1:31 PM, Doug Hellmann
wrote:<br>
</div>
<blockquote type="cite">
<div class="gmail_quote"><br>
<div><br>
</div>
<div>Entry points takes care of all of this. The code can live
anywhere, and each entry point gets a nice, short, unique name
to use in the configuration file. Developers can point to
anything they want, and non-developers don't have to know
class names. We all win.</div>
<div><br>
</div>
<div>Doug</div>
<br>
</div>
</blockquote>
<br></div>
Entry points are certainly more user friendly than raw classnames,
but they are still an intrusion of internal architecture<br>
into the user domain. It is still making the user think of
processing steps, rather than just objects to be stored.<br>
<br>
It may be sufficiently friendly that it is better than having two
layers of configuration, but better labeling of the pipes<br>
does not change the fact that you are asking the end user to
understand the plumbing.<br>
<br>
</div>
</blockquote></div><br><div>I'm not sure what you mean by "making the user think of processing steps" or "objects to be stored".</div><div><br></div><div>Let's use a concrete example. Monty's changes map names like "baremetal" and "hyperv" to the virtualization drivers in nova. After the changes are merged, the user could put "hyperv" in their configuration file instead of "nova.virt.hyperv.HyperVDriver". That decouples the code organization from the specification of which driver to use, although the driver does still have to be named. It sounds like you have an idea to improve on that further, to make it even easier for the user. How do you see that working?</div>
<div><br></div><div>Doug</div><div><br></div>