CQS - Command Query Separation. It does not seem very well-known. It is especially nice for public APIs because if makes your user less afraid about the possible side effects of calling your functions/methods. They know exactly when they are making changes.
I would even go so far that the event driven architectural style in general is usually underrated, with respect to encapsulation/decoupling it provides. Even something like the ports&adapter architecture (or clean architecture) that specifically aims at decoupling is usually explained in terms of defined methods of known interfaces.
CQS - Command Query Separation. It does not seem very well-known. It is especially nice for public APIs because if makes your user less afraid about the possible side effects of calling your functions/methods. They know exactly when they are making changes.
I would even go so far that the event driven architectural style in general is usually underrated, with respect to encapsulation/decoupling it provides. Even something like the ports&adapter architecture (or clean architecture) that specifically aims at decoupling is usually explained in terms of defined methods of known interfaces.
I like this one. I think a lot of people writing Redux code are using it and aren't aware of it, if they are using actions & selectors.