Fork me on GitHub

2013年5月30日

摘要: 防止并发修改 之 离线悲观锁代码示例(离线悲观锁)背景系统会出现并发,上篇文章我介绍了如何使用“离线乐观锁”保证并发,离线乐观锁适合处理那些重新编辑成本不大的单据,如果某个单据用户花了10分钟进行编辑,提交时你告诉他出现并发了,他心里肯定会骂娘的,今天介绍的“离线悲观锁”就可以避免这种情况。思路小明签出了源代码,小强就不能签出了,我们目前的源代码系统就是用的这种悲观策略。实现核心代码离线悲观锁管理器接口 1 using System; 2 using System.Collections.Generic; 3 using System.Linq; 4 using System.Text; 5 阅读全文
posted @ 2013-05-30 09:44 HackerVirus 阅读(363) 评论(0) 推荐(0)
摘要: .Net JavaScriptSerializer处理DateTime的误解Fish Li今天发了一篇火爆的《ASP.NET常被忽视的一些细节》,其中有一个地方我认为他大大的冤枉了微软.Net 类库设计人员,你打开链接就直接跳到了重点,先直接粘贴过来引用如下:Fish LiDateTime的JSON序列化在SP.NET3.5中,微软为ASP.NET为设计了一个JSON序列化的工具类, System.Web.Script.Serialization.JavaScriptSerializer,这个类的使用很广泛,而且比WCF的那个JSON序列化类的兼容性要好。 不过,这个类有一个问题,在序列化Da 阅读全文
posted @ 2013-05-30 09:36 HackerVirus 阅读(223) 评论(0) 推荐(0)

2013年5月29日

摘要: 隐藏在mock之后的‘快感’最近某同事抱怨他们的测试难写,经常花费在测试的时间比产品代码更多,而且每次重构后都必须修改一大堆的测试。和同事闲谈后得知,在其项目中大量的使用了mock,或者说对mock的使用过度极端对所谓的单元测试“快速”,“独立“的过度。 在前边转载过《软件开发中没有所谓正确的方法》,当你把某一种方法论作为银弹使用的时候,早晚魔鬼会伴随在你身边。 Mock给我带来了感知,剥离了类与类之间的依赖,有助于我们更好的工作在当前的关注点 .但同时由于太多的对场景的假设,导致这块代码成为了信息的孤岛,甚至很多时候不得不用mock的第二特性verify,order,以至于你的测试关心的不. 阅读全文
posted @ 2013-05-29 22:51 HackerVirus 阅读(150) 评论(0) 推荐(0)
摘要: iOS数据库应用一:SQLite保存数据的方式很多,plist files, XML, 或者 文本文件,但是效率不高。SQLite提供了在大数据中高效查询、检索的本地存储功能。SQLite is an open source library, written in C, that implements a self-contained SQL relational database engine. You can use SQLite to store large amounts of relational data. The developers of SQLite have optimiz 阅读全文
posted @ 2013-05-29 21:49 HackerVirus 阅读(193) 评论(0) 推荐(0)
摘要: NAnt构建实例前言NAnt,一款大名鼎鼎的.NET开源构建工具,功能强大,易于定制。悲催的是开源的工具往往文档匮乏,广大程序猿们有时发现了看起来很酷的工具,可迟迟无法上手,时间就这么被残酷地浪费掉了。在园子里搜索了一下,讲“持续集成”或者“每日构建”的不少,合我心意的不多,要么只能入门,要么起点太高。正好这两天不忙,学习了一下NAnt的使用方法,下面就由我来通过一个实例,演示利用NAnt搭建一个自动化构建环境。通过本文的构建,最终实现的效果为:首先从SVN下载最新代码;利用NAnt编译代码;利用NUnit进行单元测试;生成单元测试结果报表以及代码覆盖率报表。希望通过这篇文章,让打算使用NAn 阅读全文
posted @ 2013-05-29 21:44 HackerVirus 阅读(193) 评论(0) 推荐(0)
摘要: 使用自定义的MessageSource实现对properties的复用Spring框架的Web项目中可以使用properties文件来存储需要显示在jsp页面的一些值,比如label值或者error messages。然后通过Spring提供的ResourceBundleMessageSource将这些properties文件注入进来使用。一个简单的配置如下。123456789 <bean id="messageSource" class="org.springframework.context.support.ResourceBundleMessageSo 阅读全文
posted @ 2013-05-29 21:42 HackerVirus 阅读(1248) 评论(0) 推荐(0)
摘要: 联邦企业架构之FEA实施指南(下)3. 企业架构过渡战略 上述针对片段架构和片段过渡战略开发的描述从本质上讲是在组织的各个业务层面以及对其进行支持的服务层面对组织如何改善其效能进行指导。但正如一个水桶的最大盛水量是由其最短木板决定的一样,在组织中一个部分的优化并不代表整个效能的改善,因而如何从组织全局的角度将各个片段的过渡战略进行优化整合才是能够使组织获得最优效能改善的最佳方法,而这一方法的最终产出就是优化组合了各片段过渡战略的企业架构过渡战略,因而每个片段过渡战略也可以说是企业架构过渡战略的一个细粒度的子集。 企业架构过渡战略是一个有效的企业架构的重要内容,它为组织在指定时间内实现目标架构描 阅读全文
posted @ 2013-05-29 21:32 HackerVirus 阅读(727) 评论(0) 推荐(0)
摘要: Openstack中的LoadBalancer(负载均衡)功能使用实例Openstack Grizzily版本发布后Quantum的功能更加完善。 下面我们测试一下在实际应用中的非常有价格LoadBalancer功能.步骤:1.创建两个虚拟机,启用http服务,监听80端口root@AuthServer:~# nova list+--------------------------------------+------+--------+-------------------------------+| ID | Name |... 阅读全文
posted @ 2013-05-29 21:30 HackerVirus 阅读(508) 评论(0) 推荐(0)
摘要: 被MemoryStream狠狠地坑了一把Stream是.net数据流操作的一个封装,它提供统一的流读写规则,为后期开发这方面的功能提供了很大的便利性.有些场景下是直接操作byte[]比较灵活所以Stream派生出MemoryStream从byte[]构建一个stream来方便开发人员使用.但在使用的时候碰到了一个非常坑爹事情.一个非常意想不到的结果...应用代码?123456789101112131415stringvalue = "111111111";stringvalue1 = "2222222222222222222222";System.IO. 阅读全文
posted @ 2013-05-29 16:42 HackerVirus 阅读(310) 评论(0) 推荐(0)
摘要: Linux 学习笔记[1]1.Linux目录结构与windows不同,linux 的部分目录结构如下:其中/为所有目录的根目录 bin 存放二进制可执行文件(ls,cat,mkdir等) boot 存放用于系统引导时使用的各种文件 dev 用于存放设备文件 etc 存放系统配置文件 home 存放所有用户文件的根目录 lib 存放跟文件系统中的程序运行所需要的共享库及内核模块 mnt 系统管理员安装临时文件系统的安装点 opt 额外安装的可选应用程序包所放置的位置 proc 虚拟文件系统,存放当前内存的映射 root 超级用户目录 sbin 存放二进制可执行文件,只有ro... 阅读全文
posted @ 2013-05-29 16:42 HackerVirus 阅读(162) 评论(0) 推荐(0)