API name change ideas for Infusion 1.0

Colin Clark colin.clark at utoronto.ca
Wed Apr 1 03:11:42 UTC 2009


On 31-Mar-09, at 12:18 PM, Aaron Brown wrote:

> Colin Clark wrote:
>> * Fluid.js: fluid.findKeyInObject()
>> This is a framework utility that performs reverse lookups in an  
>> object:
>> pass in a value, and you'll get its associated key. This name always
>> confuses me about the order and nature of the arguments.
> I'm new enough to fluid that I don't have an informed suggestion for
> most of the name changes, but this one is pretty generic.
> How about "fluid.getKeyByValue('some value')"
> I think using the term "object" in the method call is unnecessary  
> since
> key-value pairings only happen in specific kinds of objects in the  
> first
> place.  Fluid may have another naming convention for "get..." "set..."
> functions, so fill in whatever term you'd normally use.  The original
> "find..." may also imply to the developer that it's not always a cheap
> operation to perform - it requires an iterative scan over the hash to
> find the result - so that prefix may be worth keeping.
> By the way: Does this function return an array if multiple keys hold  
> the
> same value?  If so, perhaps it should be "getKeysByValue", or even two
> separate functions, one that returns the first match and one that
> returns all.

All good questions. JavaScript is a bit different in that key/value  
pairs aren't limited to objects like hash tables or maps; all objects,  
by nature, can hold key value/pairs. Given this, I agree with you that  
the extra term "object" is unnecessary, since everything in the  
language is an object.

The "find" prefix was, as you point out, originally intended to imply  
to developers that it's not necessarily a cheap lookup to perform. We  
decided to leave it off for brevity, but we'll need to mention in the  
API documentation that it is indeed implemented as a linear scan over  
all keys in the object.

We don't currently support returning an array if multiple keys hold  
the same value at the moment. It may be a good feature to add. At the  
moment, we stop as soon as we find the first hit.

Thanks again for your feedback and involvement. Naming is always hard,  
and it's great to get ideas from the community,


Colin Clark
Technical Lead, Fluid Project
Adaptive Technology Resource Centre, University of Toronto

More information about the fluid-work mailing list