03 2012 档案

读书笔记 - 软件的组成->测试
摘要:一个可运行的软件由四个部分组成 1. 可执行的代码 2. 配置 3. 运行环境 4. 数据任何一个部分发生变化都会软件的行为发生变化在很多团队中往往他们只测试代码;而忽略了,或者没有完整的测试其他几个因素,因此在之后的部署过程中会遇到不少的问题频繁的小规模测试(一般是每次check-in都会触发一次测试)可以较好的保证代码的质量这里就需要AAT(Automatic Acceptance Test) 和一个持续 集成/构建/测试 的过程再结合以适当的手动测试,可以较好的保证软件的质量我们的测试一般要覆盖到以下的环节 1.成功的编译 2.成功的单元测试 3.满足软件质量标准,如代码覆... 阅读全文

posted @ 2012-03-20 21:16 听说读写 阅读(385) 评论(0) 推荐(0) 编辑

Why Sessionless Web Application ?
摘要:什么是Sessionless Web Application Session相信大部分朋友都听说过,不使用Session的程序就是Sessionless, (注意,只是不用Session,并不代表不用Cookies,当然我们也要尽可能的少依赖cookis)为什么Sessionless (stateless)Session往往是在某一台机器的内存中的,往往一台机器宕机以后,Session信息就丢失了.如果不需要保持Session,应用程序和架构设计将会比较简单,维护也会更简单为了保持Session 粘性, 某用户在第一次访问之后的每一次访问都要回到上一次访问的那台服务器那么,如果一台服务器压.. 阅读全文

posted @ 2012-03-20 20:52 听说读写 阅读(2085) 评论(5) 推荐(1) 编辑

读书笔记 - 自动化部署的优势
摘要:自动化部署和手动部署比较的优势1.手动部署容易出现错误,而自动化错误概率很低 (会出错)2.如果部署过程不是自动化的,那么这个过程既不可重复也不可靠,需要很多的时间进行调试和排错(需要额外的时间)3.手动部署的流程往往需要记录在文档中,这个文档需要额外的维护时间,而且往往和最新版本的部署不是一致的(更新滞后),而且经常也是不完整的 自动化部署脚本往往没有这个方面的问题4.自动化部署本质上是鼓励协作的,对于有一定水平的人员来说,通过看部署脚本来了解部署流程往往比通过文档来理解部署流程来的容易 这里并不是说文档不重要,文档可以很好的给人一个大的印象(Big Picture),而细节部分 通过直.. 阅读全文

posted @ 2012-03-19 23:11 听说读写 阅读(2454) 评论(0) 推荐(0) 编辑

轻量级 Lock Free 线程安全的 Queue<T> 的C#2.0实现
摘要:最近在维护一些C# 2.0的代码....发现各种线程不安全的实现2.0里面又没有ConcurrentCollection的相关类不得已,自己写了一个,本来想用传统的lock实现的, 不过考虑到其中的操作非常轻量级...最终还是用了Lock Free使用原子操作 InterLocked 替换掉常用的lock关键字 public sealed class SafedQueue<T> { #region private Fields private int isTaked = 0; private Queue<T> queue = new Que... 阅读全文

posted @ 2012-03-18 13:37 听说读写 阅读(3989) 评论(2) 推荐(0) 编辑

Lock Free ObjectPool<T>的C#实现 (对象池)
摘要:最近实现了一个LockFree的对象池主要的想法是: 1.复用构造出来的对象 2.避免重复创建和销毁对象对GC造成的压力 3.避免重复创建对象造成的资源消耗最适合的场景是: 1.构造对象很慢,并且需要构造很多个对象的情况主要技术特征: 1. C#4.0的实现(可以降级到2.0) 2. 内部没有使用普通的lock,而是使用Lock Free的实现方式 3. 将常用的取回对象的方式,换成委托运行, 这样的话ObjectPool可以帮你自动将对象压回队列 4. ObjectPool支持对象池上下限的设置(如果移除该功能性能还会提高很多!)以下是实现代码: /// <summar... 阅读全文

posted @ 2012-03-16 22:22 听说读写 阅读(3721) 评论(5) 推荐(2) 编辑

Katama hash 算法的C#实现
摘要:Katama hash 是经常在分布式解决方案中见到的算法,网上已经有很多文章介绍这个算法或者其他的hash一致性算法前一阵子正好在做一个分布式系统的时候需要实现该算法,在网上找了找,发现用C#实现的都不是很好。。有一个搜索出来结果最前面最多的实现,性能没有优化过,代码可读性也不是很好。。然后各个C#的memcached library中的实现又耦合的太紧了,所以自己搞了下面的这段代码(参考了这位朋友的实现http://www.cnblogs.com/daizhj/archive/2010/08/24/1807324.html)还有Beit的实现using System;using Syste 阅读全文

posted @ 2012-03-15 20:25 听说读写 阅读(1007) 评论(0) 推荐(0) 编辑

在 Visual Studio 单元测试中使用CallContext 导致的 Unit Test Adapter threw exception: Type is not resolved for member... 异常
摘要:该问题的表现形式是: 在运行单元测试(或其他的VS测试类型)的时候 抛出异常Unit Test Adapter threw exception: Type is not resolved for member... 但是同样的测试在应用程序/网站中都没有问题该问题的根本原因是:Visual Studio运行测试代码的时候实际上是在一个独立的AppDomain中运行的,该AppDomain 无法找到CallContext中存储的类型所以抛出了这个异常,不过这个异常信息非常不清晰,只看异常信息很难找到问题原因目前为止有3个解决方案: 1.拷贝DLL到QAAgent32.exe所在的目录 (一... 阅读全文

posted @ 2012-03-15 19:20 听说读写 阅读(1750) 评论(1) 推荐(2) 编辑

一些.Net面试题 (BS 方向)
摘要:解决方案和思路类: 设计和策略: 1.有一个网站的中购买功能, 假设现在有很多用户(假设10000人)在抢购一个物品,该物品的库存只有10个,请问怎么设计一个系统支持这样的场景 2.一个用户中心,保存用户名密码和其他基本资料, 你会怎样设计?(尽可能好,考虑安全,性能,扩展,高可用等等..) 3.前端(HTML HTTP等..)优化策略 4.应用服务器(主要是Asp.net)性能优化策略 5.互联网应用程序常见的安全风险和解决策略 6.设计模式(一般问最简单的单件模式在C#中的实现) 7.如何保证你的软件/产品的质量 问题排查: 1.有一台生产环境的Web服务器出现... 阅读全文

posted @ 2012-03-10 22:11 听说读写 阅读(26085) 评论(21) 推荐(14) 编辑

开源一个小类库, 用于对象间灵活的拷贝属性,还有IDataReader到实体类的转换
摘要:功能一:背景: 编程中经常有这个需求,要在两个非常类似的实体类中,拷贝同名属性的值,(例如在WCF实体和EF实体中的拷贝...) 以往一般有两个方案 1.硬编码:执行效率很高,不过要写很多重复的代码, 2.反射: 灵活,不过效率非常低这里提供一个灵活性不比反射差的解决方案 https://github.com/xwj90/Clover.Copyer使用代码非常简单,如下所示, 只有一句话 //范例一 在两个对象直接拷贝属性 ClassA target = new ClassA(); ClassB source = new Class... 阅读全文

posted @ 2012-03-10 13:24 听说读写 阅读(2828) 评论(5) 推荐(1) 编辑

导航

< 2025年3月 >
23 24 25 26 27 28 1
2 3 4 5 6 7 8
9 10 11 12 13 14 15
16 17 18 19 20 21 22
23 24 25 26 27 28 29
30 31 1 2 3 4 5
点击右上角即可分享
微信分享提示