上一页 1 2 3 4 5 6 7 8 9 10 ··· 27 下一页
  2013年7月7日
摘要: stackoverflow上有人问,为什么不能把委托放在一个接口当中?投票最多的第一个答案第一句话说,“A Delegate is just another type, so you don't gain anything by putting it inside the interface.”翻译过来大致意思就是:委托只是一种类型,把委托放在接口中你什么也得不到。看上去挺拗口的,如果你也感觉这句话说的不知所云,那么只能求助于MSDN的接口和委托的定义。接口:只包含方法、属性、事件或索引器的签名。 实现接口的类或结构必须实现接口定义中指定的接口成员。委托:是一种定义方法签名的类型。 当 阅读全文
posted @ 2013-07-07 19:02 JeffWong 阅读(3278) 评论(0) 推荐(0) 编辑
  2013年6月9日
摘要: 大型网站中都会用到分布式缓存,现在经常使用的成熟可靠的分布式缓存产品有Memcached、Redis、Velocity等等。开发中我们在设计实现缓存层的时候,通常会按照业务模块,定义一些有意义的缓存键。比如,在一个非常典型的电子商务网站中,我们会缓存常用的字典表,如省市区县、商品分类、商品等等,一种常用的定义缓存键的方式如下: /// <summary> /// 缓存键管理 /// </summary> public class CacheKeyManager { /// <summary> /// 区域 /// </su... 阅读全文
posted @ 2013-06-09 16:57 JeffWong 阅读(2820) 评论(4) 推荐(4) 编辑
  2013年5月12日
摘要: 在酷壳上看到博主陈皓写的最新文章疫苗:Java HashMap的死循环。博主看问题非常透彻,代码分析到位,而且图文并茂,很容易让人理解一个死循环是怎么产生的。在博文中,耗子叔叔分析的最重要的一点就是HashMap在ReHash的这个过程中,由于多线程操作容器,意外地很隐蔽地构造了一个环形链接导致了死循环(Infinite Loop)。给我的启示简单总结如下:一、单线程改造为多线程也是个技术活正如我们看到耗子叔叔博客里写的那样,原来是单线程的应用程序,”后来,我们的程序性能有问题,所以需要变成多线程的,于是,变成多线程后到了线上,发现程序经常占了100%的CPU“。考虑到是淘宝的工程师曝出来的问 阅读全文
posted @ 2013-05-12 16:40 JeffWong 阅读(3441) 评论(0) 推荐(2) 编辑
  2013年4月20日
摘要: 一、WP第三方应用程序限制WP一次仅允许一个第三方应用程序在前台运行,这就意味着用户在操作手机的时候只能开启一个第三方应用,让人觉得WP是一个单任务操作系统。但是和普遍理解的单任务操作系统不同,WP提供了一种机制,这就是Tombstone(墓碑),它能够让用户在不同的第三方应用之间切换时保留用户曾经的操作状态(这是多任务操作系统最擅长做的事情),提升用户体验。二、TombstoneTombstone直译过来就是“墓碑”,还可以直观理解为休眠、挂起、暂停或者冻结等等,在WP中它表示程序终止的一个标记,但是不能理解为彻底终结进程并退出应用程序。Tombstone能够为Windows Phone提供 阅读全文
posted @ 2013-04-20 17:30 JeffWong 阅读(1010) 评论(0) 推荐(2) 编辑
  2013年3月10日
摘要: 一、页面导航windows phone页面导航可以通过两种方法进行设置:一种是直接在XAML中设置;另一种则需要通过编码在托管代码中实现。二者相同的地方是它们最终都需要使用NavigationService类,再调用Navigate方法实现导航。1、在XAML中设置导航最简单直接的方式,找到控件,为属性NavigateUri赋值即可,以常用的HyperlinkButton为例:其中,使用“/”意味着这是一个相对链接,Silverlight for Windows Phone目录层次的路径操作比较严格,如将前面的“/”去掉,编译器将报错并停止运行。2、托管代码中设置导航(1)、直接传入URI . 阅读全文
posted @ 2013-03-10 17:39 JeffWong 阅读(1407) 评论(2) 推荐(3) 编辑
  2013年2月4日
摘要: 根据个人的开发和系统调优经验,大部分的内存溢出(及内存泄漏)都和不好的开发习惯有直接关系,有几个开发经验可以有效预防OOM,总结下贴出来和大家分享。一、批量和分页老生常谈的话题,简单,但是非常实用。每个合格的coder对数据的处理,必须要有分页或批量多次的意识。大数据量的读取或查询结果集是内存占用大... 阅读全文
posted @ 2013-02-04 19:59 JeffWong 阅读(9466) 评论(34) 推荐(33) 编辑
  2013年1月13日
摘要: 在维护系统的时候发现有个工作经验超级丰富的同事在C#代码中使用了goto,这段代码是一个很长的方法,goto的作用是为了复用两段逻辑。当我第一次看到goto是为了复用一段C#代码的时候感觉无比诡异,总是觉得哪里不对劲。午餐的时候再次和几个同事讨论起这个问题,大家兴致很高从goto一路扯到了反模式,设计和复用。下面浅显谈谈我的一些想法。一、反模式有一句话说的很好,知道反模式的唯一作用就是避免使用反模式。我的那位同事说有时候用用反模式很管用,比如因为特殊情况,你所维护的系统代码写得很长,思路跳跃,用用反模式就可以节省代码。我的观点是,在面向对象的设计观念里复用代码的最好做法是合理抽象,运用组合或者 阅读全文
posted @ 2013-01-13 20:35 JeffWong 阅读(1577) 评论(1) 推荐(0) 编辑
  2012年12月4日
摘要: 一、需求和初步实现很简单的一个windows服务:客户端连接邮件服务器,下载邮件(含附件)并保存为.eml格式,保存成功后删除服务器上的邮件。实现的伪代码大致如下:GetAndSaveMail public void Process() { var recordCount = 1000;//每次取出邮件记录数 while (true) { using (var client = new Pop3Client()) { ... 阅读全文
posted @ 2012-12-04 23:16 JeffWong 阅读(1962) 评论(0) 推荐(3) 编辑
  2012年11月7日
摘要: 刚刚看到一篇博客,原帖链接:http://www.cnblogs.com/HCCZX/archive/2012/11/07/2758036.html通常想到子查询或者临时表外加聚合函数都是没错的,但是真写起来发现SQL语句比较不那么人道,阅读体验不好。追求优雅的Coder通常一看到是SQL Server 2005+,条件反射地想到窗口函数和公用表表达式CTE。一种SQL查询实现如下:WITH ScoreInfo AS (SELECT [Student_No], [Student_Name],[Chinese],[Math],[English],[totalScore] ,DENSE_... 阅读全文
posted @ 2012-11-07 21:47 JeffWong 阅读(3215) 评论(1) 推荐(1) 编辑
  2012年11月6日
摘要: 本文的写作冲动来源于今晚看到的老赵的一则微博“大家知道System.Collections.Generic.List<T>是一种什么样的数据结构?内部的元素是怎么存放的?还有Dictionary<TKey,TValue>呢?…”。 查了一下书,如果参考数据结构和算法里介绍的线性表和哈希表的特点,非常 阅读全文
posted @ 2012-11-06 22:03 JeffWong 阅读(1421) 评论(3) 推荐(5) 编辑
上一页 1 2 3 4 5 6 7 8 9 10 ··· 27 下一页