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 20:22:35 +0000
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?
>
> 100: (entity.name like '*ther' or entity.name = 'Child') and task = 'edit'
> and propertyKey like '*Name' => componentName = "D2WEditString"
>
>
> I think all of them have pros and cons. The first one is very simple and
> clean. The last one is very tricky and compact.
>
> What do you think?
>
>
> Thanks
>
> Károly
>
> P.S: Is it possible to speak about "rule refactoring"?
>
>
>
>
> _______________________________________________
> 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