CQRS stands for C ommand Query Responsibility Segregation and the basic rules are: Commands - Perform (side effects) actions on the system and don't return values. Queries - Return values but can't touch the system's state. Idealy, you don't mix them. Hence you can say, commands are dangerous, and queries are safe. Now, ruby doesn't have a specific type to say: this method (command) returns nothing, like void in C and other languages. So, the question is: How do you state that a particular method returns nothing? Based on comments from the ruby mailing list, people are using these approaches; 1. Return self. 2. Return nil. 3. Implicit return (which in general, ends up being nil). If I'd have to pick one, I'd go with the last one, but I also like to throw another option into the mix.... Why don't create a class for this particular use case? Let's say, Nothing! module Nothing class Nothing end def nothing @nothing ||= Nothi
There are two hard things in computer science: cache invalidation,
naming things, and off-by-one errors.