Beefy Boxes and Bandwidth Generously Provided by pair Networks
Clear questions and runnable code
get the best and fastest answer
 
PerlMonks  

Re: Is this a simple, robust, and maintainable design?

by arkturuz (Curate)
on Feb 03, 2011 at 09:15 UTC ( [id://885929]=note: print w/replies, xml ) Need Help??


in reply to Is this a simple, robust, and maintainable design?

I'd also appreciate some suggestions for improving the system.

I would suggest reversing the logic of variable names starting with 'NOT_'. It can be quite confusing to follow the logic once the whole system becomes pretty complex. So, why not name your states like 'CHECKED', 'VERIFIED', etc. and functions like 'is_checked', 'is_verified', etc. It's much easier to follow the reasoning, IMO. Notice that you don't have variables like 'NOT_BROKEN' or 'NOT_COMPLETE'.

  • Comment on Re: Is this a simple, robust, and maintainable design?

Replies are listed 'Best First'.
Re^2: Is this a simple, robust, and maintainable design?
by GrandFather (Saint) on Feb 03, 2011 at 19:56 UTC

    'Negating' the NOT states actually implies the next state. The negation of NOT_CHECKED to CHECKED actually makes CHECKED semantically the equivelent of NOT_VERIFIED. I'd change the sense by changing NOT_CHECKED to NEEDS_CHECK to retain the state but to avoid the seeming double negatives scattered through the code.

    True laziness is hard work
      That's pretty insightful. It would be a relatively easy change that would make everything much clearer.
Re^2: Is this a simple, robust, and maintainable design?
by neodon (Novice) on Feb 03, 2011 at 19:35 UTC
    I absolutely agree with you on this. Having negated attributes and then negating them again in conditions is pretty confusing. Thanks for pointing it out!

Log In?
Username:
Password:

What's my password?
Create A New User
Domain Nodelet?
Node Status?
node history
Node Type: note [id://885929]
help
Chatterbox?
and the web crawler heard nothing...

How do I use this?Last hourOther CB clients
Other Users?
Others examining the Monastery: (6)
As of 2024-04-24 20:04 GMT
Sections?
Information?
Find Nodes?
Leftovers?
    Voting Booth?

    No recent polls found