• 0 Posts
  • 78 Comments
Joined 8 months ago
cake
Cake day: March 21st, 2024

help-circle



  • Software patents usually are shitty like that. And weirdly “state or the art” doesn’t seem to apply to them. Their only purpose is trolling your competition and the consumer is left with fewer and poorer choices and higher prices due to royalty costs.

    One of the most infamous examples is Microsoft filing a patent for the mouse double click in 2002, getting it granted in 2004 while the thing was actually developed before the 80s (and not by Microsoft, of course).

    I question the usefulness for society of patents in general but software patents especially should be abolished.









  • If you go back to my example, you’ll notice there is a UserUniqueValidator, which is meant to check for existence of a user.

    Oops, right, I just glanced over the code and obviously missed the text and code had different class names. Another smell in my opinion, choosing class names that only differ in the middle. Easily missed and confusion caused.

    I don’t think our opinions are too far off though. You’re just scaling the validation logic to realistic levels and I warn that in practice coders extrapolate too quickly and too often, which results in too much generic code which is naturally harder to understand and maintain than specific code.


  • I would argue that the validate routines be their own classes; ie UserInputValidator, UserPasswordValidator, etc.

    I wouldn’t. Not from this example anyway. YAGNI is an important paradigm and introducing plenty of classes upfront to implement trivial checks is overengineering typical for Java and the reason I don’t like it.

    Edit: Your naming convention isn’t the best either. I’d expect UserInputValidator to validate user input, maybe sanitize it for a database query, but not necessarily an existence check as in the example.