Hi,

The answer is to use Convention over Configuration. 

I've been meaning to add this to the wiki for awhile - on how to do this with 
D2W. 
Here it is:

http://wiki.objectstyle.org/confluence/display/WO/How+to+Write+D2W+Rules

Thanks,
Ravi

On 13/11/2009, at 5:04 AM, [email protected] wrote:

> Message: 4
> Date: Thu, 12 Nov 2009 16:19:57 +0100
> From: Sz?ntai K?roly <[email protected]>
> Subject: Writing maintainable and extendable D2W rules
> To: [email protected]
> Message-ID: <[email protected]>
> Content-Type: text/plain; charset=ISO-8859-2; format=flowed; delsp=yes
> 
> 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 protected])
Help/Unsubscribe/Update your Subscription:
http://lists.apple.com/mailman/options/webobjects-dev/archive%40mail-archive.com

This email sent to [email protected]

Reply via email to