View this PageEdit this PageAttachments to this PageHistory of this PageHomeRecent ChangesSearch the SwikiHelp Guide
Hotspots: Admin Pages | Turn-in Site |
Current Links: Cases Final Project Summer 2007

BackrowBoys

I am going to relate only general OOA\D\P ideas, and groupwork ideas as well.

1. Coding in pairs is very helpful
2. agree on some mutual coding standards, here is a good one for blocks...
(someObject = someValue) ifTrue: [
"do some code in here"
].
3. transfer files in .st format, and delete old code before fileing in
4. I would do you GUI from scratch, use SystemWindow as a base, and make as many general (not app-specific) classes do as much as possible. Gui specific stuff should be limited as much as possible (on GUI). for example:
make a SystemAlertWindow class do all the gruntery of popping up a window. then u can just say (SystemAlertWindow new: 'some message').

5. return "true" or "false" with quotes for boolean values.
6. in morphic, u have to send the "accept" message before u can get an updated value from something like a text box, it may be a good idea to make all your own PluggableListMorph and PluggableTextBox and whatever else that overides "contents" to "accept" before returning the contents. (we didnt do that).
7. have as few direct object pointers as possible. Unique identifiers are better, especially for deletion.
EX:
(Genealogy persons) - OC of Person object, the ONLY references to the Person objects in memory.
family has HusbandId and wifeId but not a wife or husband (object).
family has husband: aGenealogy message which finds the person with husbandId inside aGenelogy. this is better design.

8. use "self halt". it is good for debugging, gives u a break point and stack trace. use temporary values when applicable. EX
Family>>wife: aGenealogy
| person |
(aGenealogy isKindOf: Genealogy) ifFalse: [self halt]. "shoudl not!"
person := (aGenealogy findPerson: self).
(person isKindOf: Person) ifFalse: [self halt]. "Should never happen"
^person.
"we use person so if self halt, then u see the value, better for debugging and expanding the function"

9. use collections, they are your best friends.
do, collect, select, reject, all very nice!

10. pay special attention to the Observer pattern (Morphic).
u need to understand it to understand morphic.

Link to this Page