Cool
Camillo can I see the code?
I was planning to look for the old autocategoriser.

Stef

> I just wrote a simple classifier which is going to be used in Nautilus.
> Basically it is an extensions of the existing code.
> 
> Methods are classified using the following rules:
> 
> 1. known prefixes (initialize.* => initialize-reseleas, test.* -> testing..)
        could we have initialize and not initialize-release

> 2. getters and setters of instance variables
> 3. know protocols of super implementors
> 4. gather all implementors in the system and choose the most used protocol.
> 
> I guess that will cover most stuff, of course known prefixes will have to be
> extended...
> 
> 
> On 2013-01-30, at 20:52, Chris Muller <[email protected]> wrote:
> 
>>> To be honest I have problems understanding why method categorization is so 
>>> important.
>> 
>> It provides a look into the mind of the author.
>> 
>>> Often I don't care a single bit about categories because I don't understand 
>>> them. I often categorize just to make lint happy :)
>> 
>> Ha!  I remember when I used to voluntarily submit myself to lint's
>> slavery.  For a while I was putting in selectors to ignore or whatever
>> the filtering capability it had -- until one day I said, "enough".
>> Since then I mostly just check for "Bugs" -- let lint work for ME.
>> Perhaps a better approach to help you relax would be to remove that
>> particular Lint rule..?  :)  Ahh, freedom.  :)
>> 
>> Categories they are "integrated documentation" and, the fact that some
>> methods remain 'as yet unclassified' IS meaningful -- it indicates
>> that the class is either private or single-purpose.  There are a lot
>> of "code elements" in the system (classes, methods, categories,
>> packages, etc.) and so sometimes, as you said, classes are simple
>> enough that additional category elements are not needed.
>> 
>> Categories are the domain of humans, not machines.  They're for the
>> writer to communicate to the readers.  Auto-categorization does not
>> increase the effectiveness of categories -- in fact I think it would
>> dilute it.
>> 
>>> What is the use? Declaring usage patterns?
>> 
>> Yes.
>> 
>>> .. Declaring visibility?
>> 
>> Yes.
>> 
>>> Use as method extensions marker?
>> 
>> Yes.
>> 
>> anything you like just classify? I can understand that it can help
>> making the access of certain methods of a class easier. But that is
>> particular true for classes with a lot of methods. Most of the classes
>> are rather small. In most of my own developments I would consider most
>> huge classes a design problem in my code. So I would try to fix that.
>>> And finally it is not easy to learn about them because the browser is not 
>>> helping. If you browse through the methods of a class the category pane 
>>> doesn't get updated. So even if I want to learn by getting used to them it 
>>> is hard.
>> 
>> Two ways to do that (at least in Pharo 1.4, not sure about 2.0).
>> 
>> 1) With focus on the  methods list, press Shift+Command+C.
>> 2) Turn on System | Settings | Code browsing | Show annotation panes.
>> 
>>> I would make the none categorized term weaker by naming it "uncategorizied" 
>>> so at least I have the change to deliberately not categorizing my methods 
>>> without being annoyed by someones opinion about what is essential.
>> 
>> +1.  Because "as yet" implies it "will" or "needs" to be classified,
>> which isn't always true.
>> 
> 
> 


Reply via email to