Writing maintainable and extendable D2W rules
Writing maintainable and extendable D2W rules
- Subject: Writing maintainable and extendable D2W rules
- From: Szántai Károly <email@hidden>
- Date: Thu, 12 Nov 2009 16:19:57 +0100
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