I'm having trouble deciding the best way to handle splitting up if block checks for different architectures. I may be handling the scenario completely wrong, so let me know if that is the case, or if this is a duplicate.
As a simple example, suppose we have two parameters to consider for a web script: member status (non-member, member type-A, type-B, type-C) and form submission/non-form submission. Forms may be submitted by both members and non-members. Currently, the script would ideally be split up as such:
Members (A, B, C)
->Non-Forms
->Forms
Non-Members
->Non-Forms
->Forms
...however, it could be set up the other way:
Forms
->Members
->Non-Members
Non-Forms
->Members
->Non-Members
I suppose this is a specific case, so there will be considerations for why you may or may not want to process forms before other tasks, etc. However, I am looking for the general criteria for deciding such architecture division schemes in the future, not considering special case with obvious considerations, so that I can figure it out for myself. (Note: Security is, of course, a concern in this situation so there is good cause to seperate member and non-member functionalities, which is something I might consider as an 'obvious consideration'. If you have anything you want to add for this case, though, I will be all eyes.)