[Seaside] How does a newbie get past the feeling of trying to understand an elephant whilst looking through a keyhole?

Philippe Marschall philippe.marschall at gmail.com
Sat Apr 29 12:14:08 UTC 2006


2006/4/29, Stephen Davies <stephen.l.davies at gmail.com>:
> Hi,
>
> I'm trying to get familiar with Squeak.  I used Smalltalk/V way back,
> have and read and understand the Smalltalk 80 book, so it's not
> completely new to me....
>
> But Squeak is so much bigger.  I'm really struggling to get an overall
> sense of the beast - I can't see the wood for the trees and for me, at
> least, the environment seems to contribute to that because of the
> method-by-method interface to the code seems to make it harder to get
> the big picture.  Methods are presented in alphabetical order, without
> much clue as to how they relate.  Similarly for classes.
>
> Are there any pointers/suggestions?  I feel like I'm missing some tool
> I don't know about.  It's great that you can see everything, but
> understanding for me would be aided with some sort of "gradual
> revelation"; a way to replace all the details of a class or bunch of
> classes with conceptual documentation - showing in a screen or two the
> overall story of that class's purpose and place in the system.  And a
> way to dip under that to the implementation as needed.
>
> Any comments or suggestions for me?

There is lots of stuff in seaside that you don't need to know about.
So there's not much point in learning it you're already struggling.
I'd recommend to start with the things that you really need:
WAComponent, WATask, WARenderCanvas and WATagBrush subclasses or
WAHTMLBuilder and perhaps WARenderedHtmlRoot or WASession. Just with
these should should get pretty far.

The same goes for Squeak, only learn what you need, when you need it.
There's just too much stuff. What you almost certainly need is the
Collection hierarchy OrderedCollection, SequeancableCollection,
Dictionary, String and maybe streams (WriteStream, ReadStream).

Now about classes and methods.
Methods should be grouped by protocol (eg rendering, actions,
accessing) to give you a better overview. This is not done for a lot
of methods in seaside which is bad. Browsing senders and implementers
can also help.
For classes there's the OmniBrowser (you can get it from SqueakMap, in
the open Menu it's called 'Image Browser') which lays out classes in
the inheritance tree. Here you can also browse references and the
hierarchy.

I hope this helps somehow

Cheers
Philippe


More information about the Seaside mailing list