Fork me on GitHub

2014年3月9日

摘要: enode框架 2.0 step by step之整体架构介绍前言enode框架简介enode架构图command handler一次只处理一个command让domain生活在in memory中event store的设计关于重复的command的幂等处理和聚合根可能存在的并发冲突的判断关于domain event大数据量的考虑enode物理部署结构图前言今天是个开心的日子,又是周末,可以轻轻松松的写写文章了。去年,我写了enode 1.0版本,那时我也写了一个分析系列。经过了大半年的时间,我对第一个版本做了很多架构上的改进,最重要的就是让enode实现了分布式,通过新增一个分布式消息队列 阅读全文
posted @ 2014-03-09 01:02 HackerVirus 阅读(412) 评论(0) 推荐(0)
摘要: C#的Task和Java的Future自从项目中语言换成Java后就很久没有看C#了,但说实话我是身在曹营心在汉啊。早就知道.NET4.5新增了async和await但一直没有用过,今天看到这篇文章总算有了点了解,突然发现Task这个玩意不就是Java中Future这个概念吗?这里冒昧引用下Jesse Liu文中的C#代码:staticvoidMain(string[] args){Console.WriteLine("Main Thread Id: {0}\r\n",Thread.CurrentThread.ManagedThreadId);Test();Console. 阅读全文
posted @ 2014-03-09 01:01 HackerVirus 阅读(649) 评论(0) 推荐(0)
摘要: (视图,索引)-视图的主意点:不能和表的名称相同,如果某一列为函数,表达式,常量或者与来自多张表的列名相同,必须为列定义名称,不能在试图上创建索引if exists(select 1 from sys.sysobjects where [name]='view_recordInfo') drop view view_recordInfogocreate view view_recordInfoas select 记录编号=r.Recordld,会员卡号=r.BeginTime,电脑编号=p.PCId from recordInfo r inner join PCInfo p o 阅读全文
posted @ 2014-03-09 00:51 HackerVirus 阅读(207) 评论(0) 推荐(0)
摘要: MVC ValidationAttribute 服务器端自定义验证客户端验证上文只说了客户端的自定义验证,这样对于用户的输入还是不够可靠,用户完全可以绕过我们定义的客户端验证。所以仅有客户端的验证还是不够的,我们还需要在服务器端进行再次验证。ValidationAttribute服务端验证要继承自ValidationAttribute,并重写IsValid虚方法来自定义自己的验证规则,ValidationAttribute声明大致如下public abstract class ValidationAttribute : Attribute{//验证失败提示消息public virtual st 阅读全文
posted @ 2014-03-09 00:39 HackerVirus 阅读(425) 评论(0) 推荐(1)
摘要: 1、出现原因1、同一个类型,有两个变化的维度(两个维度的抽象:一个抽象部分的抽象,一个实现部分的抽象)2、如何应对这种“多维度的变化”?如何利用面向对象技术来使得同一类型可以轻松地沿着两个方向变化,而不引入额外的复杂度?2、具体的例子数据库操作 操作类型:增删改查(具体功能的实现部分) 操作对象:客户,订单,产品…(对应上面的增删改查是1对多的关系(通过聚合关系联系起来))手机软件 软件功能:通讯录,游戏 支持品牌:M(摩托骡拉),N(喏鸡呀)计算机软件 软件功能:游戏,开发工具,绘图软件… 运行平台:Windows,Unix….过度的使用继承: ——以手机软件为例:以手机品牌分类:以手机软件 阅读全文
posted @ 2014-03-09 00:33 HackerVirus 阅读(417) 评论(0) 推荐(0)
摘要: Windows环境下,将Django部署到Apache Web Server在Windows上部署Django(用mod_wsgi)会出现各种奇怪的问题,现简单记录下配置过程及遇到的错误及解决方法。环境搭建 windows 7python 2.7.3 (注意最好是32位的,因为Apache目前对64位支持非常不友善,尝试了好多次,64位的太高大上,众多不兼容)Apache2.2.10 (直接下载apache_2.2.10-win32-x86-no_ssl.msi就行)Django-1.6.1 (官网下载)配置思路 ... 阅读全文
posted @ 2014-03-09 00:20 HackerVirus 阅读(292) 评论(0) 推荐(0)

2014年3月7日

摘要: 16个ASP.NET MVC扩展点【附源码】1、自定义一个HttpModule,并将其中的方法添加到HttpApplication相应的事件中!即:创建一个实现了IHttpmodule接口的类,并将配置WebConfig。 在自定义的HttpModule中,可以将一个方法注册到HttpApplication的任意一个事件中,在之后执行HttpApplication一些列事件时,按照事件的顺序(事件又按照添加方法先后的顺序)执行注册在事件中的方法!+ View Code+ View Code例:创建一个HttpModule(实现IHttpModule接口),并将一个方法注册到HttpAppli. 阅读全文
posted @ 2014-03-07 18:29 HackerVirus 阅读(294) 评论(0) 推荐(0)
摘要: 图文大话编程语言史投递人itwriter发布于 2014-03-07 17:16评论(2)有298人阅读原文链接[收藏]«» 英文原文:Code reviews and bad habits 所谓大话就是恶搞,本文中的关于各种编程语言的描述,你不可全信,也不能全信。作者在描述史实时加入了很多个人情感和社会流行元素,配图基本是靠谱的。这也许就是寓教于乐吧。 以上图片上的文字内容来自这篇文章。00来自:www.vaikan.com找优秀程序员 阅读全文
posted @ 2014-03-07 18:23 HackerVirus 阅读(204) 评论(0) 推荐(0)
摘要: 工作经常使用的SQL整理,实战篇(二)工作经常使用的SQL整理,实战篇,地址一览: 工作经常使用的SQL整理,实战篇(一) 工作经常使用的SQL整理,实战篇(二) 工作经常使用的SQL整理,实战篇(三) 接着上一篇“工作经常使用的SQL整理,实战篇(一)”继续讨论,这一篇中主要讨论增删改查,连接,分组和排序,通配符,视图,存储过程和事务,游标,触发器这些东西。6.增删改查插入--插入用户表数据insertintoTse_User(UserID,UserName,RealName,Email,Mobile)values(111,'zhangsan','zhangsan&# 阅读全文
posted @ 2014-03-07 17:53 HackerVirus 阅读(235) 评论(0) 推荐(0)
摘要: gopush-cluster 架构前言gopush-cluster是一套golang开发的实时消息推送集群,主要分享一下开发这套系统的想法和思路。架构主要分为三个模块来开发,comet/web/message。comet主要负责消息排队、消息推送以及和客户端的连接维护;整套系统依据是消息ID顺序原则获取消息(客户端本地获取最大的消息是1,那么之后获取的消息就是大于1的,获取离线消息的时候也要从上次最大消息ID来获取),因此消息推送以后需要在comet中排队然后发起RPC给message实现存储。message主要负责消息的存储和读写;接受来自comet模块的消息进行持久化,或者接受web模块的 阅读全文
posted @ 2014-03-07 17:45 HackerVirus 阅读(279) 评论(0) 推荐(0)