When using an IDisposable object in C# you have some pretty clear expectations on when that object is disposed. While the same thing is technically true with defer in Go, I've seen a lot of people misunderstand when exactly the deferred method is called.
2023-05-11
2023-04-13
Testing a periodic worker
I came across somebody that was asking about how to test their code. They had a function that would do certain work at short intervals and then some other work after a longer period of time. They provided a simplified version of the code and it looked something like this. They had coverage for the short period work (I guess functions foo and/or bar in the simplified example had some side effect they could test for.
2022-12-08
Go for C# developers: LINQ
When I worked in C# I loved LINQ. I also probably used it more than I should have. I have recently looked into some options to bring LINQ to a Go project so let me share some observations.
TL;DR: I don't think we'll see much use of LINQ in idiomatic Go. Nor should we desire it.
2022-11-24
Go for C# developers: Unicode strings
There are a few gotchas with strings in Go if they contain unicode characters.
2022-09-08
Go for C# developers: Using keywords as identifiers
It doesn't happen very often but sometimes there is a variable name that makes sense that happens to be a reserved word in the language. In C# when this happens you prefix it with "@" so you get @new as a variable name. Not quite as clean with the prefix, but clear what is going on. Go takes a different approach.