pe 28. tammik. 2022 klo 10.12 Matthias Metzger (noobyma...@yahoo.de.invalid)
kirjoitti:

> Hi,
>
> On 1/28/22 1:47 AM, Martin Terra wrote:
> > to 27. tammik. 2022 klo 23.00 Matthias Metzger
> (noobyma...@yahoo.de.invalid)
> > kirjoitti:
> >
> >> Hi,
> >>
> >> On 1/27/22 5:52 PM, Martin Terra wrote:
> >>> Hi!
> >>>
> >>> I am curious how this would compare to a declarative ui.
> >>>
> >>> You would define your ui in pojo, almost like swing, and then you have
> a
> >>> generic rendering helper/factory layer tailored to your project, which
> >> then
> >>> handles *all* the nitty gritty stuff.
> >>>
> >>> Only when you create a new feature, would you worry about its targets
> etc
> >>> which you would implement onto the rendering helper/factory layer.
> >>>
> >>> There might be parts of such structure that could be reusable across
> >>> projects.
> >>>
> >>> Would this overcome the need for DSL, or would you consider it DSL as
> >> well?
> >>>
> >>
> >> Disclaimer: The following is just my opinion.
> >>
> >> I think, something like this would be a DSL, because it's a language
> >> specifically designed to describe UIs. Internally, there might even be
> >> two DSLs. One for modeling and describing a UI as pojos, XML, JSON or
> >> functions (in this specific example it's the sealed interface Html) and
> >> one for creating instances of these things (what you see as div {
> >> text("Hello") }). And then there might be other DSLs for specific
> >> frameworks.
> >>
> >> Creating a DSL for describing UIs generally and trying to abstract away
> >> Wicket specifics, to then write some Wicket specific renderer again is
> >> something I have tried in the past and I just don't see the practical
> >> value, since it just makes the implementation much more complex. But
> >> maybe I misunderstood you.
> >>
> >
> > For us the benefit is two-three-fold. First, I'd say
> > all formcomponents/labels in an ui follow patterns which can be
> canonized.
> >
> > Second, reuse.
> >
> > You can use a label on a panel and you can use the same label in a table
> to
> > render (or search) the same data. You can also use it to render a column
> in
> > a spreadsheet. Goal is to never implement a label twice.
> >
> > Or you can use a command item in a menu (or in a button on a panel) to
> > access the same action. Goal is to never implement an action twice.
> >
> > Lastly, there are efficiency ganis from centrally tested components which
> > now furthermore can more easily be automatically tested as they have
> > standard types and standard expected outcomes.
> >
> > No more "I forgot to handle that special case again" when you are reusing
> > the same component type you once already solved.
> >
> > If you have a new developer, they can start by using the existing
> > components or creating similar ones. No need to explain wicket potholes
> > "ah, this is a wicket trick, here you need to do this first before doing
> > that, and you need to remember this....and in this special case...do that
> > don't do that" instead they will pick the closest one from library and
> see
> > all implementation requirements or hooks it has (optional and required
> > implementations/extensions).
> >
>
> I am not sure, I am following here. To clarify: You are arguing, that
> the DSL I've shared should not be done like that, because it would be
> better to solve the problem of a declarative, generic UI, that can be
> "compiled" (in the sense of factories/adapters) down to Wicket?
>

Well, there might be some (cross-project) reusable paradigms and patterns
and templates, which we could call dsl.

I'm not arguing, just bringing up an alternative approach for
consideration, maybe they could co-exist as well.

**
Martin


> Best regards
>
> Matthias
>

Reply via email to