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

help-circle
  • 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.












  • But it can also be a matter of (inexperienced) devs just deciding, fuck it, I won’t try to merge it, I’ll just copy my changes elsewhere and throw away the repo.

    Pretty sure that’s actually it. Git has a learning curve and, for example, some naive rebase not working out as intended can be scary if you don’t know what you’re doing.


  • It works well - for a Windows subsystem. It is well-integrated but also separate which can be annoying sometimes.

    For example, you might code in Python in VSC against a WSL folder but make a script to eventually run in Windows. You need to install and update Python twice then - a Linux and a Windows version (obvious, but can be annoying).

    WSL is also really slow, especially for filesystem heavy stuff. You know how on Linux programs sometimes run faster via Wine/Proton than on Windows itself? Yeah, this is the other way around.