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
> >
>
>
>

Reply via email to