代码改变世界

随笔分类 -[01].Net Framework

大叔手记(17):大叔2011年读过的书及2012年即将要读的书

2012-01-04 09:39 by 汤姆大叔, 25911 阅读, 收藏, 编辑
前言2011年是大叔最累的一年(基本上都是晚上12点以后睡觉,早上6点30分起),读得书也是异常的多,一方面要保持自己的技术在最前列,另外方面技术管理和项目管理方面的东西也要进一步进阶,2011年读过的书超过60本(也包括只收藏不读的书,还有一些非常小的英文电子书就不列了),除了一些大牛的书,其它的书基本上都是粗读的(一周一本),同时2012年的书也是按照这个计划来安排的,即:国际/国内大牛的书通读,一般的书粗读,以保证技术人员和管理人员的先进性:)。带 [荐]字的都是推荐大家读的。看了这篇帖子,大家千万别像我这么变态地读书,因为大叔已经不怎么亲自Coding了,所有以大量的时间读书。大叔在这

大叔手记(10):别再让面试官问你单例(暨6种实现方式让你堵住面试官的嘴)

2011-12-19 09:26 by 汤姆大叔, 30640 阅读, 收藏, 编辑
引子经常从Recruiter那里得到抱怨:“汤姆,为什么面试者每次回去的时候都感觉良好,而你却说此人达不到Senior级别?”我都是微笑着说:“感觉不一定都是对的哦。”Recruiter:“那你就不能问点别的么?为什么每次面试者都说你问的是单例?”我只能解释:“单例挺好的,可以问出很多基础知识哦。”Recruiter:“大叔,单例我都懂了,不就是程序运行的时候只能有一个实例么?我打电话招人的时候经常都帮你问过了呢!做开发的没几个不懂!”我Faint。。。为避免引起误会加注:问这个题目的目的不是仅仅为了单例,而是考察相关的基础知识,比如静态构造函数,私有构造函数,锁,延时创建对象, readon

大叔手记(8):Interface Attributes != Class Attributes

2011-12-16 08:58 by 汤姆大叔, 2750 阅读, 收藏, 编辑
问题事情来源于很早之前Team成员一个不规范的设计,在MVC3的项目上,由于所有的Model都需要有一些基本的名称或者操作,加之应用了DI,所以就想当然地定义了一个接口,里面包含了一些接口属性和方法,可突然有一天要求在这些属性上应用一些验证约束和授权,于是接口代码改成了这样: public interface IModel { [Required] string ModelName { get; set; } [Permission(Configuration = "Debug")] void OutputMessage();...

【翻译】使用Lazy<T>和抽象包装类延迟加载复杂的系统参数

2011-11-18 10:39 by 汤姆大叔, 1668 阅读, 收藏, 编辑
.Net Framework4.0里的Lazy<T>虽然提供给我们很好用的延迟加载功能,但是其中需要load的值和值的loader代码是单独分开的,使用起来不是很方便,有没有什么好方法来解决这一问题呢?原始Lazy实现的问题:如下代码是我们常用的Lazy代码class Program{ static void Main(string[] args) { var temperature = new Lazy<int>(LoadMinimalTemperature); Console.WriteLine("Minimal room temperature:...