A small script that gives the most referenced classes that are not commented:
I run the test in an image with Moose and Spy.
-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
"Get the number of references per class"
d := Dictionary new.
Smalltalk allClasses do: [ :cls | cls methods do: [:cm | (cm literals select: 
[:l | l isKindOf: Association ]) 
                do: [:assoc | 
                        (assoc value isBehavior)
                                ifTrue: [d at: assoc value put: (d at: assoc 
value ifAbsentPut: [0] ) + 1]]]].
associations := d associations asSortedCollection: [:a1 :a2 | a2 value < a1 
value].

"Get the classes that are not commented"
associations select: [:ass | ass key comment isNil or: [ass key comment isEmpty 
or: [ass key comment asString includesSubString: 'xxxxxx']]]
-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=

The first 30 entries:
SortedCollectionTest->307
HeapTest->304
IntervalTest->250
DictionaryTest->192
BagTest->167
RxMatcherTest->166
PluggableTextMorph->149
MooseModel->144
UIThemeWatery2->132
SystemChangeNotifier->132
PPSmalltalkParserTests->129
FAMIXClassNavigationTest->128
PPJavaSyntax->128
PPSmalltalkGrammarTests->128
RBRefactoryTestDataApp->123
NSFileStream->118
NSRWBinaryOrTextStream->109
LogicalFont->109
NSMultiByteBinaryOrTextStream->108
UIThemeW2K->103
MCWorkingCopy->101
BrowserEnvironment->97
DemoSettingStyle->94
PPJavaLexiconTests->94
MCClassDefinition->93
NSAbstractInflateStream->92
MCWorkingCopyBrowser->91
NSCollectionStreamTest->91
GMMetaObject->91
ExceptionTester->90


Cheers,
Alexandre


On 7 Dec 2010, at 10:48, Stéphane Ducasse wrote:

>> The good idae is to push and promote people to put class comments, but not 
>> to remove not commented classes from Dev, bacause otherise, you will need to 
>> remove 80% of the classes. 
> 
> 
> So this is simple to start fixing some of them. 
> I think that without such objectives we will never make any progress and we 
> should. 
> 
> so what are the first 5% of packages that are not documented.
> 
> Stef
> 
>> The next step would be a Pareto classification, as it can be accepted (I 
>> hope) that SUnit has more history (and it is documented elsewhere, like PBE 
>> book) than other classes which even the name of it or its methods may be 
>> insufficient to arrive at for what is the class.
>> 
>> We should create IRC meetings, sprints, etc. specially targeted to document 
>> these classes.
>> 
>> my .019999...
>> 
>> --
>> Cesar Rabak
>> 
>> 
>> Em 05/12/2010 20:07, Mariano Martinez Peck < [email protected] > 
>> escreveu:
>> 
>> On Sun, Dec 5, 2010 at 9:52 PM, Stéphane Ducasse <[email protected]> 
>> wrote:
>> 
>> Hi guys
>> 
>> I decided that I will not integrate any code that is not documented in Pharo.
>> 
>> I strongly suggest to remove from Pharo-dev packages whose classes are not 
>> commented.
>> 
>> 
>> I think this is not a good idea...look this approx:
>> 
>> 
>> 
>> | pharoCorePackages packagesDev nonCommentedClasses totalClasses |
>> pharoCorePackages := #('MultilingualTests' 'Morphic' 'ToolBuilder-Kernel' 
>> 'PackageInfo' 'Polymorph-ToolBuilder' 'Network-Kernel' 'Network-Protocols' 
>> 'Compiler' 'System-Finalization' 'Settings-Graphics' 'Collections' 
>> 'Network-RemoteDirectory' 'Traits' 'Network-URI' 'Settings-Display' 
>> 'Collections-Abstract' 'Settings-Compiler' 'MonticelloMocks' 
>> 'ScriptLoader11' 'System-Digital Signatures' 'System-Localization' 
>> 'MenuRegistration' 'Polymorph-TaskbarIcons' 'Monticello' 
>> 'ToolBuilder-Morphic' 'MCDirtyPackage' 'Collections-Weak' 
>> 'Settings-Polymorph' 'Tests' 'HelpSystem-Core-Utilities' 'SUnit' 
>> 'Collections-Text' 'Compression' 'Morphic-MorphTreeWidget' 'HelpSystem-Core' 
>> 'ToolsTest' 'Gofer-Core' 'Gofer-Tests' 'Collections-Stack' 'FreeType' 
>> 'MonticelloConfigurations' 'Polymorph-Geometry' 'Collections-Support' 
>> 'SUnitGUI' 'HelpSystem-Core-Model' 'Tests-VM' 'System-Change Notification' 
>> 'System' 'Tests-ObjectsAsMethods' 'HostMenus' 'Network-MIME' 
>> 'Network-RFC822' 'VB-Regex' 'TrueType' 'Depr
>> ecatedPreferences' 'System-Clipboard' 'System-Settings' 'MorphicTests' 
>> 'System-Serial Port' 'NetworkTests' 'Collections-Unordered' 'System-Changes' 
>> 'System-Object Storage' 'Collections-Traits' 'System-Platforms' 
>> 'Tests-PrimCallController' 'Morphic-TrueType' 'Multilingual' 'Graphics' 
>> 'Collections-Strings' 'KernelTests' 'System-FileRegistry' 'Tests-Bugs' 
>> 'ToolBuilder-SUnit' 'Tests-Release' 'Morphic-Balloon' 'Settings-Network' 
>> 'System-Applications' 'Polymorph-Tools-Diff' 'Settings-Tools' 'ScriptLoader' 
>> 'ST80' 'FreeTypeSubPixelAntiAliasing' 'Settings-Kernel' 'Settings-System' 
>> 'CompilerTests' 'System-Tools' 'System-Hashing' 'System-Download' 
>> 'Collections-Streams' 'Tests-SystemChangeNotification' 'GraphicsTests' 
>> 'Polymorph-Widgets' 'Kernel' 'Tools' 'Settings-FreeType' 'FreeTypeTests' 
>> 'Settings-Monticello' 'HelpSystem-Tests' 'Polymorph-EventEnhancements' 
>> 'System-Support' 'MonticelloGUI' 'System-FilePackage' 'System-Object Events' 
>> 'Announcements' 'System-Text' 'Exceptions' 'Network-
>> UUID' 'System-Pools' 'FixUnderscores' 'HelpSystem-Core-UI' 
>> 'GraphicsResources' 'Files' 'Gofer' 'Network-MailSending' 
>> 'Collections-Arrayed' 'CollectionsTests' 'Balloon' 'Network-Url' 
>> 'Collections-Sequenceable' ).
>> packagesDev := (PackageInfo allPackages
>> collect: [:each | each packageName])
>> difference: pharoCorePackages.
>> nonCommentedClasses := packagesDev
>> inject: 0
>> into: [:sum :each | sum + (((PackageInfo named: each) classes
>> select: [:aClass | aClass comment asString includesSubString: 'is 
>> xxxxxxxxx.']) size)].
>> Transcript show: 'nonCommentedClasses: ', nonCommentedClasses asString.
>> 
>> totalClasses :=  packagesDev inject: 0 into: [:sum :each | sum + 
>> (PackageInfo named: each) classes size ].
>> Transcript show: 'totalClasses: ', totalClasses asString.
>> 
>> 
>> 
>> Shows:
>> 
>> nonCommentedClasses: 1116
>> totalClasses: 1369
>> 
>> 
>> I'm not sure that I will look at code or answer question to code that is not 
>> commented.
>> We should change our mindset and it seems that we do not care, so we should 
>> take radical decisions:
>> less changes, less progress, more comments.
>> 
>> And for once I will not bash the past. Smalltalk was always with methods 
>> fully documented.
>> We are just plain lazy and this is a shame.
>> 
>> Stef
>> 
>> 
>> 
>> 
>> 
>> 
> 
> 

-- 
_,.;:~^~:;._,.;:~^~:;._,.;:~^~:;._,.;:~^~:;._,.;:
Alexandre Bergel  http://www.bergel.eu
^~:;._,.;:~^~:;._,.;:~^~:;._,.;:~^~:;._,.;:~^~:;.






Reply via email to