2017-11-05 10:16 GMT+01:00 Esteban Lorenzano <[email protected]>: > > > > On 5 Nov 2017, at 06:00, Stephane Ducasse <[email protected]> > wrote: > > > > Hi guys > > > > Why do we rename class Sort to introduce terms that have unknown, > > unclear, undocumented meaning? > > +1 > > > > > To me PluggableSortFunction is MUCH better than CollatorBlockFunction. > > but pluggable is also bad, IMO. > also I see there is some incoherence in the names: >
agree with Esteban, Pluggable pouah! > ChainedSortFunction -> this is kind of ok, but I think a > “ComposedSortFunction” is better. > But there can be several kind of composition... For example wrapped as illustrated with UnderfinedSorter refactoring that I proposed. Personnally I like Chained because it explicitely tells the kind of composition SortByPropertyFunction -> shouldn’t be “PropertySortFunction” ? (coherent > with the previous one) > +1 for PropertySortFunction, or maybe just PropertySorter CollatorSortFunction -> this is like a “BlockSortFunction” or > “ValuableSortFunction” ? > CollatorBlockFunction is only a proxy to the block so as it answers to #threeWayCompare:with: protocol rather than value:value: It's a Block view as a CollatorFunction. The name first surprised me negatively, but after reflexion it tells what it is. 1) Collator indicates that the block (valuable) will return -1, 0 or +1 2) It's not necessarily a block, it could be anything understanding value:value: But, the valuable should return -1,0,+1, so apart <=> (threeWayCompareTo:) it ain't gonna be anything but a block in practice. For <=> we would want a DefaultSortFunction and would not use a CollatorBlockFunction. 3) Function refers to SortFunction. For this, I'm neutral, whether you call it Sorter or SortFunction I don't care. SortFunction kind of implies these are stateless, so it's a rather good and accurate name. Maybe a Sorter could be more confusing, because a Sorter could be thought as having the sorted collection as instance variable (statefull). Nicolas > Esteban > > > > > Stef > > > > >
