On Jun 3, 2010, at 10:37 AM, Ludovic Dubost wrote:
Le 03/06/10 10:31, Vincent Massol a écrit :
Hi devs,
We have avoided this discussion but it's time to settle it. We need to decide if
there are candidate macros that we should write as wiki macros in our default XE
distribution. And if so what are the rule for deciding whether a macro should be written
as a wiki macro or as a java macro.
Some ideas:
- java macros are much easier to test
- java macros are easier to develop since you have a full-fledged IDE (debugging, syntax
coloring, code validation, etc)
- java macros can obey styling rule, such as checkstyle passing
- wiki macros can be removed so users can't be sure the wiki macro will always be
there since it's only provided with the default XAR
Proposal
=======
- If the macro is a generic macro then it should be written as a Java macro
- If the macro is application-specific (for ex a macro specific to the Blog application)
then it can be written as a Wiki macro
WDYT?
I believe there is some other cases where it should be a wiki macro, it's when the
macro is highly presentational and when there is a good chance the advanced user would
like to be able to change the macro to add parameters or modify it's presentation.
In this case it's very important to make the macro easily modifiable and that's
what Wiki macros allow.
Indeed anything related to presentation/style (colors, fonts, texts, etc) should be
modifiable by the user so that part needs to be externalized from the java macro somehow.
One idea is to have these macros provide a cssLocation/jsLocation parameter pointing to
place where to put custom css/js. When not specified the macro would use default css/js.
Ideally we would have a full-fledged IDE in the wiki and we would write everything as wiki
macros but this is not the case and we're a few years away from this so I'm not
sure it's a good idea to do so right now.
BTW this is a bit similar to the discussion as to whether the Blog application should have
a Java module that implements its code logic and only keep the presentation part in wiki
page vs what we have right now, i.e. the whole application in wiki pages.
For testing, I believe we should make a simple testing
framework that allows to test a simple wiki macro (which does not use jsx or other stuff).
Making a wiki macro testing framework that works without a running XE is probably quite a
lot of work. Need to think more about it.
Thanks
-Vincent