Already familiar with ASP.NET Web API? You sure? - Ido FlatowI had no idea Web API was so extensible and configurable. You can change pretty much everything in it’s pipeline; message handlers, filters, parameter binding, formatters and so on.
Turns out Web API can be cached, but you have to do a bit of manual coding to enable it. Essentially it’s a case of using max-age or expires headers as appropriate. Or, ETag headers can be used to version your cache. I can see this being quite a clever way of caching but it requires more setup.
Culture of review - Austin BinghamI’m very much sold on the benefits of reviews so much of this talk was familiar. But, saying that, I’d forgotten a few important things.
- Research has been done in this area. All the research mentioned in the talk suggested that code reviews are a effective way of finding code defects
- Taking your time is important. Don't review in a rush
- 200-400 lines of code per review is optimal based on research done at Cisco
Better code through bugs - Seb RoseThe question this talk was trying to address was how do you know you have a high quality test suite? In short, you don’t, there isn’t a reliable way to measure. This is where mutation testing comes in. Mutation testing is a fascinating concept. The framework being demoed, pitest, introduces bugs, called mutants, into your code. There are several different types of mutations. Examples include conditions boundary mutator, which changes conditional operators; increments mutator, which changes increments to decrements and visa versa; math mutator, which changes math operation operators.
For example, the conditions boundary mutator can change a >= to a >. Once the mutation is made your unit tests are run. If at least one test does NOT fail, you have a problem. It may be that you need another test case or there may be some other issue which needs to be fixed.
It sounds like a really interesting and potentially useful technique, but, there are problems.
- It can be slow
- You may not be able to achieve 100% pass rate. Some issues cannot be fixed
- There’s no good .NET mutation testing framework