A short update on the original posting. I've now implemented the pattern I suggested in the original post in a reference application and it's running.
My goals for doing the work were to address two issues: 1/ My GWT/GAE productivity: after a short learning curve it had sped up but it slowed right down again 2/ I found it easier not to write unit tests (a dangerous state of affairs) - they made the project messy, infiltrated the code, were difficult to write and slow to run The current implementation: * Adds a generic RPC mechanism (the pipe) * Doesn't use the command pattern. Instead everything is an event. Selected events from the event bus are sent over the pipe and responses are fired back. This makes the pipe invisible - no more coding service interfaces * I've added a layer (Stratus) on top of Bigtable-JDO inspired by Grails create, find, update, delete * Added a NullPipe and mock implementation of Stratus - I can now run end-to-end testing: presenters to database - i.e. everything but the composite itself without deploying to GAE. 7 unit test files run in around 0.5 seconds and developing is fun again! Findings so far * Ray's presentation was really helpful * Commands as events (aka asychronicity on steroids!): I'm kinda OK with this. I'm aware of David's posting above so I'm not 100% sure although still positive about my implementation. You do loose the procedural feel of the service call and AsyncCallback return although it is really asynchronous. I expected it to be difficult to test but it's not. I need more experience with it * I moved the definition of the Viewer (RR's Display interface) to the Presentation interface. Sorry Ray, it was in the wrong place * I dropped the idea of using HasClickHanders, HasValues, ... in favor of methods like getPassword(), and addSignInClickHandler() in the Viewer interface. I think it's a very elegant idea but it doesn't sit well with EasyMock and I prefer tested code to elegant code and don't think I loose much * MVP is great, really easy to test and so, to develop I still need to figure out a position on places / history (see posts above). My real application makes heavy use of History and I like it a lot. But I still don't have a comfortable pattern that joins the viewers and history together yet. --~--~---------~--~----~------------~-------~--~----~ You received this message because you are subscribed to the Google Groups "Google Web Toolkit" group. To post to this group, send email to [email protected] To unsubscribe from this group, send email to [email protected] For more options, visit this group at http://groups.google.com/group/Google-Web-Toolkit?hl=en -~----------~----~----~----~------~----~------~--~---
