Unit Test的工作总结(1)

最近屌丝又被他们弄过去做产品的Unit Test(为啥每次啥活都是本屌干?)。其实单元测试本身写起来是比较容易的,只要对软件的结构和逻辑比较熟悉即可。但问题是要写单元测试的产品是一个维护了十多年的老产品,代码有将近百万行,经过了N次更新换代,代码也被无数的人改过。在这种情况下,在之前开发的过程中根本就没有为单元测试考虑过(使用了大量的异步调用、匿名方法等极难进行测试的东西),再加上产品的结构和逻辑本身就很复杂,所以我也在这两周几乎把能碰的钉子都碰到了。所以要在这里进行记录一下(顺便满足一下某些人的催更……)

学习一下.NET里面较为高级的保证线程安全的方法吧

说到线程安全,不要一下子就想到加锁,尤其是可能会调用频繁或者是要求高性能的场合。对于性能要求不高或者同步的对象数量不多的时候,加锁是一个比较简单而且易于实现的选择。比方说.NET提供的一些基础类库,比如线程安全的堆栈和队列,如果使用加锁的方式那么会使性能大打折扣(速度可能会降低好几个数量级),而且如果设计得不好的话还有可能发生死锁……