Timetravel in C# done right
Testing things where you need to fake time is not hard given the right abstractions. That is why when I read this article I felt really sad. Because while the article describes one way to fake time it does so by breaking three fundamentals which is pretty hard in three lines of relevant code...
Posted by cellfish at 07:18 5 comments:
Asynchronous enumerations - again
Almost 2 years ago I wrote about this problem with accessing data from Azure and returning it in a LINQ friendly way. Well not long ago the discussion came up again only this time it was in regard to access data in a Cassandra cluster.
Posted by cellfish at 07:11 No comments:
Labels: .net, collections, patterns, tap, task
Returning 403 or 404 - that is the question
I think it is safe to say that anybody who is serious about security will tell you that security through obscurity is no security. Yet a lot of people think obscuring is a great way to increase security like for example return 404 rather than 403 on REST APIs when the caller does not have rights to retrieve an existing resource.
Posted by cellfish at 07:04 No comments:
When people work with the Dictionary class in .Net there are two common assumptions that I see used a lot. Worst part is that these assumptions are both wrong.
Posted by cellfish at 06:28 No comments:
The ultimate programming language
One of my favorite bloggers had an article last month that resulted in a rather interesting conclusion; that the ultimate programming language is a language without a lot of features most developers take for granted.
Email as password manager?
A lot of people these days rely on some (software) password manager to keep track of all different passwords you need. Obviously there are two risks with this approach.
To await or not to await - that is the question
One question that comes up quite often is if you should always use async/await or not. Sadly enough the answer is not simple because there is a trade-off between performance and ease of understanding exceptions.
Posted by cellfish at 06:07 No comments:
Labels: .net, patterns, performance, tap, task
Yet another estimation rant
Lately I've been discussing estimation a lot with both colleagues and friends so I guess it is time to go at it again. As I've mentioned several times before; I'm not a believer in estimates. The process of estimating is good in order to understand and break down complex problems but the estimate itself as limited (if any) value in my opinion.
Don't let your constructor create the world around it
I recently listened to a developer podcast about the async/await feature in .Net. And I was terrified when the host asked about using those key words in the constructor.
Posted by cellfish at 05:23 No comments:
I try to live by the motto; starting the debugger is a failure when it comes to code I write. That means that through logging and just reading the code it should be possible to figure out what is going on in my code. However quite often I have to work with code I did not write and then some advanced breakpoint tricks come in handy.
Posted by cellfish at 05:04 1 comment:
Subscribe to: Posts (Atom)