Summary of "Framework Futures" meeting recommendations

Antranig Basman antranig.basman at colorado.edu
Thu Feb 21 00:56:20 UTC 2013


We had an interesting community meeting this afternoon, as well as some excellent suggestions on possible 
uses of the new framework from the team. I wanted to summarise some of the more important recommendations 
which we should start adopting:

i) Every component written from now on should have "autoInit" applied - and we be making a continuous effort 
from now on to upgrade all old code to this standard. I demonstrated in the meeting the new implementation 
of the ProgressiveEnhancer which uses the new "dynamic grades" facility in order to obtain a standard 
workflow. This is believed to represent the most difficult of the cases we have in the framework - if anyone 
discovers a component which seems problematic to implement as "autoInit" they should report this 
immediately. There should be no further manual calls to lifecycle functions such as "initView", 
"initLittleComponents", "initDependents" etc.

ii) With the improved power of invokers and expander blocks, we should now be making strong efforts to 
eliminate all code written INSIDE lifecycle "init" functions (e.g. preInit, postInit, finalInit, etc.), 
which had become for a while our recommendation for "semi-modern" initialisation code. Because some areas of 
the framework are still incomplete, we can't yet succeed in this completely, but we should expect to be able 
to shed, say, 50% of the material we had, especially with the aid of the new "members" directive 
(FLUID-4918). The two main causes we expect for "unexplained" material remaining in init functions should be:

- a) Binding onto changeListeners and dealing with changeAppliers in general. This part of the framework is 
still very ancient and still has no standard for encoding in a declarative form. This will be pursued as 
part of the work package relating to the "new Renderer" which will follow upgrading the existing 
RendererComponent grade to current framework standards.
   b) Material which should be explained in terms of improved versions of the "visibility model" grade which 
Cindy has worked on for the VideoPlayer - that is, code which maps some aspect of appearance of DOM elements 
based on contents of the component's model. Part of these responsibilities will also lie with the "new 
Renderer".

If anyone finds any material inside an initFunction which they're unable to eliminate or explain in terms of 
a) or b) above, they should also report this immediately. The existing lifecycle functions will remain 
available for a few more framework releases, and can continue to be used with the same expectations on 
initialisation state of the component, but we expect to be able to reduce their contents down to nothing 
over the next few releases and eventually deprecate them properly. The absence of "autoInit" should be 
considered deprecated immediately.


Cheers,
A



More information about the fluid-work mailing list