I hope to respond to your post soon; quite busy with multiple clients right now.
I know in the past I have made specific decisions to simplify manual coding, even though it made IDE support more complex. In addition, I think some features I've introduced made certain edge cases of Tapestry more "concise", but not necessarily better (*) and probably harder to support in an IDE. (*) What I've found is that some of the very concise features made it much more complicated to explain what Tapestry is doing at any point in time. Everything becomes a checklist. On Thu, Nov 22, 2012 at 7:37 AM, Alessio Gambi <[email protected]> wrote: > Gentlemen, > > my name is Alessio Gambi, I have a PhD in Informatics from the University > of Lugano (Switzerland), a M.Sc. from the Politecnico of Milan (Italy) and > another M.Sc. form the University of Illinois at Chicago (USA). > > As you guessed, I am also a huge fan of T5; therefore, I would like to > contribute to the community. > > Differently from many of you, I do not want (at least for the moment :) ) > became an active developer *of* the framework itself. > And I plan to contribute by developing, or better, formalizing high level > knowledge about development of T5 applications, and also by developing tools > that support the programmers and the other actors involved in this (fun) > process of making T5-based applications. > > I go straight to the point so I do not take much of your time. > > Goals > > Goal n1 > Define a methodology that is tailored on and specific to Tapestry5. The > framework offers a great deal of functionalities and features that must be > used at the right time, for precise purposes, and in the intended way. > In other words, develop according to the T5 way of doing things, while > avoiding as much as possible "The Hard Way"® > > Goal n2 > Design and implement as set of tools that support such a specific > development process. Here, I am talking about means to improve the quality > of the design, not to ease the implementation by automate activities, and > not > to reduce the time to produce code. > > > Some motivating examples just to stimulate further discussion: > > Example: You are just arrived in a company where they have plenty > of T5 modules (aka Library and Application Modules) and you are asked to > find or define the best datatype (hint: this is a keyword) to use in a > brand new requirement. > How do you proceed? Note: You do not have access > to the code of such modules. > > > Example: You are given an Library Module that was developed by a > colleague that left the company, the module is 1K LOC and makes a lot > (hint: A LOT) of contributions, service definitions, customizations. > Your boss asks you to explain how that module fits > in the main application. How do proceed ? Note: some services override T5 > default behavior, there are ClassTransformationWorkers-here and there. > > > How can you help ? > > Do not blow up the dev-list with flames-like mail... contact me in > private, unless you feel it is better to share your thoughts/experiences > with the dev community. > > > For Goal 1 I need stories (as sort as possible, but not shorter !) that > tells me your experiences as developers of T5 applications, and as > developers of the framework itself. > Dev apps with T5: > - How do you usually organize your work ? Agile vs Waterfall ? > - How do you plan pages/components/services? > - Do you evolve your code? I start by putting everything in a > page, then I realize there's a change for a component, then I evolve the > component by adding some AJAX, ... > - Do you adopt some specific pattern ? I like to define a > Service*Source that will create instances of * because then I can > contribute to that ** > - How do you approach the integration with other frameworks ? > - Common Use Case and Scenarios? > - ... > > Dev T5 itself: > - I am interesting to understand your > motivations/assumptions/requirements about the different features of the > framework that you developed somehow. > - Can you list if there are new roles that developers cover with > T5 ? Tester -> Page tester, component tester, service tester, service > integration tester ? Component development ? Datatype designer ? Validator > designer ? > - ... > > Do not be shy, I will not just you, and I do not assume that everything > MUST be in favor of Tapestry... I would like also to see also weaknesses > of T5 and its limitations. > > For Goal 2 I need requirements and helps with the code. > Requirements: > - What king of activity of you process do you like to be supported > ? Any suggestions on how you plan to do that ? > > Help with the code: > - The first step is to extract the info from the framework itself. > How do you do that without patching or touching core, internals and ioc ? > Simple example: How can I recover the configuration of a service > after everything is initialized ? > > - The second step is in organize the information. Are these info > about validation? Are that related to TypeCoercion ? BeanEditing/Displaying > ? > BTW: what are the main area of knowledge that you can identify in > Tapestry ? Services, Data, DataTransformation, Pages, Navigation, > Components? > > > > If I can get enough things I plan to start writing down and disseminate. > If you like to contribute we can setup a mini-task-force. If you like to > review and comments on the various > outcome that is fine anyway. > > > > Cheers > > -- Alessio > > > -- Howard M. Lewis Ship Creator of Apache Tapestry The source for Tapestry training, mentoring and support. Contact me to learn how I can get you up and productive in Tapestry fast! (971) 678-5210 http://howardlewisship.com
