Re: Writing maintainable and extendable D2W rules
Re: Writing maintainable and extendable D2W rules
- Subject: Re: Writing maintainable and extendable D2W rules
- From: Mark Wardle <email@hidden>
- Date: Thu, 12 Nov 2009 22:29:08 +0000
I suspect my wish to comment my rule files can be traced back to using
too many specific rules rather than going for convention over
configuration!
Best wishes,
Mark
On Thursday, November 12, 2009, Anjo Krank <email@hidden> wrote:
> I for my part try to:
>
> - use what is already in the model:
>
> (smartProp.type="String" && smartProp.size> 50) => use largeString
>
> - put as much stuff in the model as possible, eg, I have entity.userInfo.SIZE=small|medium|large, which allows me to
>
> (smartRel.destEnt.userInfo.SIZE='large') => componentName="Whatever"
>
> - use parentEntity.name if possible
>
> Otherwise I *mostly* group like (e=Father && (p=x || p=y)).
>
>>> P.S: Is it possible to speak about "rule refactoring"?
>
> Sure... it's not like the fight club?!
>
> Cheers, Anjo
>
>
>
> Am 12.11.2009 um 21:22 schrieb Mark Wardle:
>
>> Not to hijack this thread but as a related issue, I wish I could add
>> comments to my rule files.... It would be so helpful while learning...
>>
>> Mark
>>
>> 2009/11/12 Szántai Károly <email@hidden>:
>>> Hi,
>>>
>>> What is the best practices for writing good, _maintainable_ and extendable
>>> D2W rules? Especially in the left-hand side.
>>>
>>> What do I mean? Let's see a very simple example. Which of the following is
>>> more maintainable, more extendable?
>>>
>>> This?
>>>
>>> 100: entity.name = 'Father' and task = 'edit' and propertyKey = 'firstName'
>>> => componentName = "D2WEditString"
>>> 100: entity.name = 'Father' and task = 'edit' and propertyKey = 'lastName'
>>> => componentName = "D2WEditString"
>>> 100: entity.name = 'Mother' and task = 'edit' and propertyKey = 'firstName'
>>> => componentName = "D2WEditString"
>>> 100: entity.name = 'Mother' and task = 'edit' and propertyKey = 'lastName'
>>> => componentName = "D2WEditString"
>>> 100: entity.name = 'Child' and task = 'edit' and propertyKey = 'firstName'
>>> => componentName = "D2WEditString"
>>> 100: entity.name = 'Child' and task = 'edit' and propertyKey = 'lastName' =>
>>> componentName = "D2WEditString"
>>>
>>> Or this?
>>>
>>> 100: entity.name = 'Father' and task = 'edit' and (propertyKey = 'firstName'
>>> or propertyKey = 'lastName') => componentName = "D2WEditString"
>>> 100: entity.name = 'Mother' and task = 'edit' and (propertyKey = 'firstName'
>>> or propertyKey = 'lastName') => componentName = "D2WEditString"
>>> 100: entity.name = 'Child' and task = 'edit' and (propertyKey = 'firstName'
>>> or propertyKey = 'lastName') => componentName = "D2WEditString"
>>>
>>> Or this?
>>>
>>> 100: entity.name = 'Father' and task = 'edit' and propertyKey like '*Name'
>>> => componentName = "D2WEditString"
>>> 100: entity.name = 'Mother' and task = 'edit' and propertyKey like '*Name'
>>> => componentName = "D2WEditString"
>>> 100: entity.name = 'Child' and task = 'edit' and propertyKey like '*Name' =>
>>> componentName = "D2WEditString"
>>>
>>> Or this?
>>>
>>> 100: (entity.name = 'Father' or entity.name = 'Mother' or entity.name =
>>> 'Child') and task = 'edit' and propertyKey = 'firstName' => componentName =
>>> "D2WEditString"
>>> 100: (entity.name = 'Father' or entity.name = 'Mother' or entity.name =
>>> 'Child') and task = 'edit' and propertyKey = 'lastName' => componentName =
>>> "D2WEditString"
>>>
>>> Or this?
>>>
>>> 100: (entity.name = 'Father' or entity.name = 'Mother' or entity.name =
>>> 'Child') and task = 'edit' and (propertyKey = 'firstName' or propertyKey =
>>> 'lastName') => componentName = "D2WEditString"
>>>
>>> Or this?
>>>
>>> 100: (entity.name = 'Father' or entity.name = 'Mother' or entity.name =
>>> 'Child') and task = 'edit' and propertyKey like '*Name' => componentName =
>>> "D2WEditString"
>>>
>>> Or this?
>>>
>>
>> This email sent to email@hidden
>
> _______________________________________________
> Do not post admin requests to the list. They will be ignored.
> Webobjects-dev mailing list (email@hidden)
> Help/Unsubscribe/Update your Subscription:
>
> This email sent to email@hidden
>
>
--
Dr. Mark Wardle
Specialist registrar, Neurology
Cardiff, UK
_______________________________________________
Do not post admin requests to the list. They will be ignored.
Webobjects-dev mailing list (email@hidden)
Help/Unsubscribe/Update your Subscription:
This email sent to email@hidden