I've submitted the first major pull request for this epic at
https://github.com/apache/rave/pull/3. Please review when you have the
chance.

Note that I did go back on an earlier comment I made to Chris and ended up
introducing Backbone.js as a way to manage persistent state in models and
move to event-driven views.


On Thu, Feb 14, 2013 at 8:22 AM, Matt Franklin <[email protected]>wrote:

> On Wed, Feb 13, 2013 at 11:29 PM, Erin Noe-Payne
> <[email protected]> wrote:
> > With the my recent patches and the previous thread on underscore.js, I am
> > beginning work on refactor rave's javascript base to better modularize
> > functionality and isolate dependencies. I have laid out a roadmap for the
> > refactor listed the primary goals in a new epic (
> > https://issues.apache.org/jira/browse/RAVE-891). They are copied below.
> > Please give any feedback.
>
> IMO this is great and I look forward to helping in any way I can.
>
> >
> >
> > Goals:
> > - refactor rave js with extensibility in mind. Build modules to be
> > configurable, and write the default rave ui / client as a configuration
> > rather than hard-coded.
> > - Look for opportunities and keep focus on backend as services delivering
> > json data, reduce the workload of thick views (jsps). Allow the client to
> > manage views and state with more flexibility
> >
> > Roadmap:
> > - Establish rave.ui namespace that manages all ui interactions
> > - Find all instances of inline html and dom building in rave.js, move to
> > client side templates available on rave.ui.templates
> > - Isolate all dependencies on jquery, handlebars and other libraries
> inside
> > rave.ui files (except ajax), such that an implementer could remove these
> > dependencies and easily replace with an implementation using other dom
> > manipulation or templating libraries. The only dependency of rave core
> code
> > should be underscore.js utility library.
> > - Establish rave.ajax namespace. Isolate all jquery ajax dependencies
> here,
> > such that an implementer could overlay their implementation with a
> > preferred ajax library. See backbone.js sync for a reference (
> > http://backbonejs.org/#Sync).
> > - Update providers (rave_opensocial, rave_wookie) to establish a
> consistent
> > interface for gadget objects and properly set up and tear down gadgets.
> > Currently there are some issues with not correctly firing lifecycle
> events
> > or creating potential memory leaks with gadget closing.
> > - Investigate, refactor or remove rave_person_profile.js. Appears to be a
> > lot of duplicated code, not clear why it is a separate file.
> >
> >
> > Thanks,
> > Erin
>

Reply via email to