Re: [TFUI] Re: UI Guidelines and Acceptance Testing

Chris Hanson <[email protected]>
Newsgroups gmane.comp.programming.test-first-user-interfaces
Message-ID <[email protected]>
On Jul 24, 2004, at 4:33 PM, Phlip wrote:
> Great. I'm saying the right thing the wrong way. When
> I speak of GUI events, I mean the event queue, and its
> activity. GUI toolkit architectures forces event
> receivers themselves to be event driven.

Not necessarily, not at the raw event/queue level.  Framework code may 
operate at the raw event/queue level, and then send messages to 
particular objects when events trigger particular states.

For example, the only time you generally need to worry about mouse 
events in Cocoa is when you're implementing a custom control that needs 
to actually perform mouse tracking (rather than just send its action to 
its target on a click).  So a custom kind of button generally doesn't 
need any event handling, while (say) a round knob control only needs 
some minimal event handling to track the mouse.

I think talking about "events" and "the event queue" is getting 
low-level when you don't need to.  You don't need to simulate raw user 
input to do most test-first human interface development.  Rather, you 
need to simulate the framework interaction that results from user 
input.  For some frameworks, these are the same thing.  For other 
frameworks, one or the other is easier.

> That will suggest that your Representation Layer
> should not have state (in the DDD sense - it can have
> proxy objects containing reference data), and the
> Logic Layer
>  ought to be event driven. The events that drive it
> come either from its tests or (via the Representation
> Layer) from its GUI.

Model-View-Controller.  Model objects are where the actual state of the 
application lives.  Views just display whatever a controller hands 
them, and hand a controller whatever the user gives them.  Controllers 
mediate between model objects and views.

This is simple, standard terminology that doesn't require talking about 
"Logic Layers" and "Representation Layers," and it's also a very easy 
and natural way to structure applications in many frameworks.  It also 
happens to, at least with some frameworks, be easy to do test-first.

> Are there Carbon or Cocoa clones for Win32?

Carbon and Cocoa are very different.  Carbon is a procedural API based 
on the original Macintosh Toolbox.  Cocoa is a collection of 
object-oriented frameworks based on NeXT OpenStep.  Cocoa and its 
developer tools -- which are an integral part of the Cocoa developer 
experience -- are only available for Mac OS X.  The full Carbon API is 
available only on Mac OS X; a subset is available on Mac OS 9 for 
cross-compatibility.

   -- Chris

-- 
Chris Hanson <[email protected]>
http://www.livejournal.com/users/chanson/



------------------------ Yahoo! Groups Sponsor --------------------~--> 
Make a clean sweep of pop-up ads. Yahoo! Companion Toolbar.
Now with Pop-Up Blocker. Get it for free!
http://us.click.yahoo.com/L5YrjA/eSIIAA/yQLSAA/nhFolB/TM
--------------------------------------------------------------------~-> 

To unsubscribe, email:
TestFirstUserInterfaces-unsubscribe-hHKSG33TihhbjbujkaE4pw@public.gmane.org
 
Yahoo! Groups Links

<*> To visit your group on the web, go to:
    http://groups.yahoo.com/group/TestFirstUserInterfaces/

<*> To unsubscribe from this group, send an email to:
    TestFirstUserInterfaces-unsubscribe-hHKSG33TihhbjbujkaE4pw@public.gmane.org

<*> Your use of Yahoo! Groups is subject to:
    http://docs.yahoo.com/info/terms/
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.