3.10 and beyond Enhancements, Cleanup, and Repair
Last updated at 3:58 pm UTC on 25 September 2006
Here are some things that need to be done.
I have been hoping that some of the squeak releases could be dedicated to refactoring and repair.
3.7, 3.8 and 3.9 have all been feature adding releases.
3.9 added so many releases
- my own morphic enhancements,
- dgd's smallland improvements,
- a new UI framework
- a services framework.
(you get the idea)
A little time do digest it all would be in order.
And probably won't get a chance to happen.
However I can think of several concete things to do:
1) Clean up unimplemented calls.
In 3.9 there are on the order of 200 methods called but not implemented.
They can be broken down into groups and the groups eliminated from the list.
What remains will be a call to action. Either implement the methods or remove the callers.
2) Code review.
Code can be visually reviewed and given a form of triage.
People projects could be started to clean up things needing clean up.
We could make a list of things that call for a second iteration. (Rethink, Refactor, Rework.)
A good smell testing report on an existing release should help.
There are ways to get graphics of class diagrams. Some attept should be made to publish one.
A concordence of messages should be made. For each message what are the classes that use them.
What is their meaning when they are used. Is there conflict or homonyms (same message but different meaning in different classes.)
A guide as to what words to use in what situations would get programmers on the same page.
I play in morphic so I will get a little more specific here.
There are about six classes that implement thumbnails in differnent variations.
These should be imploded into hopefully one set of methods in one class.
Leaf classes should be identified and put into their own packages.
This step should be repeated until a package stucture for morphic makes sense.
And all packages are of reasonalbe size.
c) System Windows
This is a class that has too many ivars. It is ripe for refactoring.
The Label area should probably have its own class. That would simplify the responsibilities greatly.
There are probably other opportunities here as well.
Well this is a start. consider this page under construction. Add what you think would be good.
This is also brain storming so keep comments constructive. Put negative comments elsewhere not here.
One upsmanship on the other hand is encouraged.