段宏

导航

2013年1月18日 #

Lucene.Net使用探秘

摘要: 对于满足全文检索的需求来说,Lucene.Net无疑是一个很好的选择。它引入了增量索引的策略,解决了在数据频繁改动时重建索引的问题,这对于提高web的性能至关重要(其他相关特性大家可以参看官方文档)。Lucene.Net是基于文档性的全文搜索,所以使用Lucene.Net时要把数据库中的数据先导出来,这也是一个建立索引的过程。代码如下: 1 /// <summary> 2 /// Add Data into Indexes 3 /// </summary> 4 /// <param name="models">Data collectio 阅读全文

posted @ 2013-01-18 11:22 段宏 阅读(2217) 评论(4) 推荐(0) 编辑

2013年1月16日 #

使用正则表达式

摘要: 今天在项目中处理多字段搜索的问题时,需要从用户输入结果中提取字段名称和字段值,使用了下正则表达式,果然很强大:不仅验证了输的格式,还能根据模式中设置的分组提取字段值: 先写个单元测试验证下: 1.验证输入格式 View Code 1 [Fact] 2 public void RegexTest6() 3 { 4 var pattern = "^\\[(\\w+)[:]{1}(\\S+)\\]$"; 5 string test = "[hello:world]"; 6 string... 阅读全文

posted @ 2013-01-16 23:57 段宏 阅读(950) 评论(0) 推荐(0) 编辑

2013年1月13日 #

对于分页数据该如何缓存?

摘要: 对于分页数据的缓存问题,该如何处理呢? 下面就我在开发Web项目(基于Mvc架构,UI不共用DB的Model)时遇到缓存分页数据的问题,阐述我的处理过程: 首先,我想到的是以分页的索引为Key,缓存整个页面的数据。如此一来,对于已经加载过的页面,可以根据Key直接从缓存中取出即可(采用相对时间缓存的策略,即数据在之后的某一时间段内未被访问,则从缓存中清除)。这样即可以节省流量,又可以提高响应时间,自己觉得很满意。 接下来遇到的问题是:分页中的数据并不是保持不变的,可能修改或删除。在这种情况下,以上策略失效了。经过一个上午的思考,我的做法如下:保持上述缓存策略不变,但添加了对添加,修改... 阅读全文

posted @ 2013-01-13 17:13 段宏 阅读(9770) 评论(5) 推荐(1) 编辑

2013年1月7日 #

一些...

摘要: Time总是在你有所忙碌时匆匆溜走,在你无所是事时放慢脚步。无论如何,不要让它放慢脚步,只有那样才会觉得充实。不扯了,总结一下前几天学到的知识点:Cache:除总所周知的客户端缓存,服务器端缓存,缓存服务器外,发现还存在客户端代理缓存(如CDN),服务器端代理缓存。由于工作相关,只阐述下服务器端缓存。对于服务器端缓存,从项目架构角度考虑,也要细分,比如数据库端(DbCache),服务端(SeviceCache),前端(UICache)。缓存的处理和DB数据集的处理不同,缓存的主要操作就是添加,更新的处理采用关联的形式,可将对应缓存关联到文件,时间片,具体时间或其他缓存。常用的是基于时间的缓.. 阅读全文

posted @ 2013-01-07 23:10 段宏 阅读(382) 评论(0) 推荐(0) 编辑

2013年1月1日 #

单元测试的学习(2)

摘要: 上篇博文中谈到单元测试的要求,接下来遇到的是: 如何使代码便于测试? 解决上述问题的关键在于解除测试对象与被测试对对象间的依赖。比较常见的是引入一个Stub对象,来模拟真实对象。引入装对象的技巧如下:抽取接口,以允许替换底层实现。在被测试类中注入Stub对象的实现 引入接口的好处在于可以屏蔽下层的实现,更便于用Stub对象替换真实对象。抽取接口的过程就是代码的重构,为便于替换,建议采用面向接口的编程范式。完成接口的抽取后,如何注入Stub对象呢? IOC是一个不错的选择,利用构造方法注入,属性注入,参数注入均可。构造函数注入的优点在于,明确了对象的依赖关系,但后果是每增加一个依赖接口... 阅读全文

posted @ 2013-01-01 01:33 段宏 阅读(230) 评论(0) 推荐(0) 编辑

2012年12月29日 #

单元测试的学习(1)

摘要: 无论看开源代码还是读网志博客,都少不了单元测试的身影。它的重要性无需我在此赘述,你是否已养成编写单元测试的习惯呢? 一直以来,我都想着写代码的时候顺带着单元测试,但从想法产生但现在,写的单元测试也屈指可数。 就自身而言,由于平时接触的项目较小,代码的质量可以通过反复的调试修改来保证,因而也就促成了不写单元测试的结果(毕竟还没尝到单元测试带来的乐果)。随着工作和学习的深入,看到的开源代码和网友的共享代码也越来越多,它们的共性在于都会附上相应得单元测试,这让我开始萌生些单元测试的冲动(也只是停留在想法层面上。具体实施的一次,还是由于调试模式下无法测试,才想到用单元测试来验证)。 后来随着... 阅读全文

posted @ 2012-12-29 16:22 段宏 阅读(280) 评论(0) 推荐(0) 编辑