HNHacker News
TopNewBestAskShowJobs

dmustillo

26 karma · joined April 12, 2022

submissionscomments
dmustillo··on Thunderbird 102
It blows my mind how many comments here think you are wrong. You are absolutely correct. A new user does not care how great x,y,z feature is if they can't do basic things that are ubiquitous in other operating systems. New users might hear Unix is better, but if it doesn't feel that way, they're going to go back to what they know works when the next deliverable/project/essay/game comes out.
dmustillo··on Get familiar with workspaces
I struggled with this a lot. Drove me nuts we couldn't get decent code coverage because of error handling for errors I don't even know how to replicate in the first place.

Plus once your code throws one error, every bit of calling code also needs to handle that error. The problem cascades through a codebase quickly. Seemed like a huge violation of DRY principles.

Rob Pike (my understanding as one of the main guys who created the language) has actually addressed this, it's a good read:

https://go.dev/blog/errors-are-values

Tldr refactor your error handling to treat it like code. DRY and SOLID principles would apply and etc. Article makes example of handle your errors in one place rather than 20 by using no-ops on remaining operations after an error occurs.

I don't actually agree with the choice, as it takes one key library which throws errors at every call (like I'm dealing with now) for this to just become a huge pain to do. I had to completely change business logic to implement his suggestion, which isn't always viable (and I'm subsequently finding that out that that wasn't completely viable for us first hand now). Also a lot more boilerplatey type no value add type code needs to be written.

I much prefer unchecked exceptions for the most part, but at least I can understand WHY error handling is the way it is in Go.