#softwareArchitecture #philosophy
Lately I've been implementing declarative predicates:
person.do_with_name(
name -> act_on_name
)
and its sibling:
person.do_with_name(
name -> act_on_name,
() -> warn_name_is_missing
)
and I like that a lot.
But it has 2 obvious draw-backs.
1. Deep nested stacks;
2. Code running off the side of the screen.
Draw-back 2 is fixed by moving the actions and warnings into their own procedure.
Draw-back 1 is more elusive.