上一页 1 2 3 4 5 6 ··· 11 下一页

2012年5月19日

.net 开发人员面试题 - 多线程

摘要: 最近园子里好多人谈到了招聘面试,特别是多线程这个问题出现了很多次;多线程也是我在面试中很喜欢问的一个题目,和大家分享一下(仅限.net)为什么喜欢在面试中问这个问题 因为这是一个很好的了解面试者知识深度的问题,在现代CPU都是多核的背景下,多线程作为一种能充分发挥CPU资源的技术使用的越来越广泛. 而且这个问题可以把普通的应用开发人员(增删改查)和有一定技术深度/专研精神的人区分出来 (此外:没吃过猪肉好歹要见过猪跑吧,没见过猪跑...这个就有点诡异了)背景: 面试.net中高级软件工程师/架构师 (事先可能不知道对方的目标等级,要在这次面试过程中确定, 多线程不是初级/中级开发人员... 阅读全文

posted @ 2012-05-19 16:01 听说读写 阅读(13949) 评论(39) 推荐(9) 编辑

2012年5月16日

.net 开发人员的瓶颈和职业发展

摘要: 现在社会比前几年浮躁了,越来越多的人抱怨薪水低,高薪工作不好找;诚然这有CPI的压力,可是也有很多人没有认清自己的职业发展.很多.net程序员个各种纠结,想拿高薪又拿不到,想提高又不知道怎么能提高.我也经历过这样的阶段.......各种纠结和迷茫,各种悲剧......不知道路在何方,在此我把我的经验和看法分享给大家,希望能给大家一点帮助.(本文只代表我的个人观点)关于职业/薪水瓶颈的问题:(在本文中,我们假设薪水就是能力的真实体现,不考虑运气等因素,并且薪水以上海为标准,其他城市乘以相对比例)瓶颈一: 入门 (薪水<0) 在这个阶段没有老师就是各种悲剧,各种概念的混合,各种纠结,各种蒙. 阅读全文

posted @ 2012-05-16 22:31 听说读写 阅读(22424) 评论(123) 推荐(59) 编辑

2012年5月8日

PPT - Garbage Collection in .Net (内存管理)

摘要: Garbage Collection in .Net描述了.Net GC原理高性能和稳定性Demo最佳实践PPT下载:http://files.cnblogs.com/PurpleTide/GC.pptx范例代码下载:http://files.cnblogs.com/PurpleTide/Code.7z工具: windbg sos sosex备注:很多内容是口述的,ppt只是大纲 阅读全文

posted @ 2012-05-08 21:35 听说读写 阅读(478) 评论(5) 推荐(0) 编辑

2012年5月4日

.Net常识 值类型和引用类型

摘要: 值类型和引用类型是.net里面的一个基本概念在面试的时候也经常遇到关于这个概念有很多误解,经常听到下面的说法1.两者的区别是值类型分配在堆栈上,引用类型分配在堆上 这句话不对,至少不准确2.值类型性能更好, 这句话要考虑情况先补充一些背景资料常见的值类型有:大部分原生类型,例如int float long 各种自己定义的结构体等等常见的引用类型有:string 各种Class 数组(包括int[]这种的)堆栈:在这里指的是执行堆栈堆:在这里指的是托管堆,就是LOH+G0+G1+G2让我们先来看看第一点:两者的区别是值类型分配在堆栈上,引用类型分配在堆上1.假设在一个方法里面有一个语句是 v.. 阅读全文

posted @ 2012-05-04 10:19 听说读写 阅读(1957) 评论(5) 推荐(1) 编辑

2012年5月3日

【设计原则和建议】 类

摘要: 类是C#中最重要的一个概念,也是最难表述的一个概念1.类的职责一定要清晰 不要设计超级类 尽量精简这条其实比较难准确的表述,更多的是要靠设计人员的经验;2.如果类中不存在实例成员,那么将类设计为static的3.如果可以,将类设计为sealed的 性能, 调用可能的虚方法对性能是有损失 防止意外的行为, protected的成员会被子类修改,有的时候会造成不可预料的结果 降低复杂度4.避免嵌套太深的继承关系 理由和第三点一致5.避免嵌套类 类中的类...有的时候和命名空间有冲突,会让人迷糊 而且每次使用也很麻烦6.如果类中有实现了IDispose的成员,或者是父类实现了IDis... 阅读全文

posted @ 2012-05-03 20:22 听说读写 阅读(402) 评论(1) 推荐(0) 编辑

2012年3月20日

读书笔记 - 软件的组成->测试

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

posted @ 2012-03-20 21:16 听说读写 阅读(381) 评论(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 听说读写 阅读(2069) 评论(5) 推荐(1) 编辑

2012年3月19日

读书笔记 - 自动化部署的优势

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

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

2012年3月18日

轻量级 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 听说读写 阅读(3986) 评论(2) 推荐(0) 编辑

2012年3月16日

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 听说读写 阅读(3714) 评论(5) 推荐(2) 编辑

2012年3月15日

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 听说读写 阅读(1004) 评论(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 听说读写 阅读(1748) 评论(1) 推荐(2) 编辑

2012年3月10日

一些.Net面试题 (BS 方向)

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

posted @ 2012-03-10 22:11 听说读写 阅读(26073) 评论(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 听说读写 阅读(2826) 评论(5) 推荐(1) 编辑

2011年12月23日

面试-算法 已经排好序的数组中求两个数的和等于N

摘要: 已知一个拍好序的数组,长度为M在其中找两个数,其和为N刚刚拿到这个题目的时候,首先的常规想法是遍历循环求出所有数的和,最终其值为N的就是结果,这个算法时间复杂度为o(N*N)可能还有一些扩展的想法,那就是先把数组中比N大的元素去掉,这样少检查几个元素这是典型的程序员思维,太早开始考虑实现细节了作为一个算法题目首先要把算法复杂度降低下来,然后再考虑常数C。。。不要太早开始考虑这种相对不重要的问题由于要寻找的是一个数对,假设这里存在解的话,考虑用N减去数组中的每一个值生成一个新数组M2,假设M2的值在M中出现,那么就可以找到解,(用两个指针 一个从M的左边 一个从M2的右边)算法复杂度可以做到o( 阅读全文

posted @ 2011-12-23 22:34 听说读写 阅读(2933) 评论(6) 推荐(0) 编辑

上一页 1 2 3 4 5 6 ··· 11 下一页

导航