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      (Webobjects-dev@lists.apple.com)
Help/Unsubscribe/Update your Subscription:
http://lists.apple.com/mailman/options/webobjects-dev/archive%40mail-archive.com

This email sent to arch...@mail-archive.com

Reply via email to