Just Test – Nuff Said? Nah.
Big discussion about unit testing. Views ranged from 100% coverage is necessary, to some code is not worth the trouble. The 100% camp was hit with this rebuttal:
How is the coverage measured?
Is it just checking which code blocks ran during the test?
What about covering different code paths?
Everyone was in favor and there were some interesting insights including an example of “correctness by construction” in Haskell:
…”correctness by construction” (aka “making illegal states unrepresentable”). This approach relies on a rich type-system (and, at a deeper level, an interesting fact technically known as the “Curry-Howard isomorphism”). Ideally, when this can be achieved you can completely discharge the need for a lot of unit tests (replacing sort of probabilistic certainty with actual certainty).
Plenty of good links were sent and summarized:
This study found bug reductions of 40-90% with 15-25% coding time added.
Some recommend testability above clarity.
I heard some talk about an A team being formed to take on a project. I’d like to see the problem these guys can’t solve.
Check out this interesting tool for translating a data model into a class model with proper naming and casing using either Entity Framework or Linq2SQL.
All in all, a quiet week as expected.
I hear that EF in .Net 4.0 will be a bit better. An experienced developer says:
A lot of the biggest issues I’ve had with EF … have been addressed in one way or another in the v2 that comes out with .NET 4. Self-tracking entities, POCO objects as entities, persistence ignorance, etc. etc. I don’t know how much they’ve improved the designer. The v2 looks much, much better. Generally, if you don’t see moving to .NET 4 in the medium term as likely, I would look seriously into nHibernate, but if .NET 4 is realistic, I would seriously consider EF v2.
I was doing a lot of Linq2SQL recently and it was easy and convenient – I’d highly recommend it. Except for the fact that its now obsolete. Linq2SQL is being tossed aside in favor of Entity Framework, which is not as lightweight or simple :(. I would look into NHibernate from what I’ve read of Entity Framework.
In another version or two Entity Framework may get more of Linq2SQL’s simplicity and ease of use. Oh joy.