摘要:
一步步实现自己的框架系列:插件框架实现 不好意思各位同学,本系列文章更新比较慢,因为我也要工作,况且还需要抽出时间编码验证理论,当然找借口总归是不好的,我们都是人,需要休息与娱乐嘛。 其实.net平台已经有自己的插件框架,比如MEF,MAF这些都是.net自带的框架,前者注重灵活,后者注重物理隔离。不过这不是今天的重点,今天的重点是做我们自己的框架。 第一步:插件模型设计 既然是插件框架就会有插件,就会有放插件的地方,我们就需要设计插件容器,这样既可以灵活的管理插件,也使代码的层次结构更加清晰,图示紫色部分是插件与插件容器部分,外边蓝色的就是我们需要使用插件的拥有者,我发现一张图片的效果...
阅读全文
posted @ 2013-05-27 09:46
HackerVirus
阅读(223)
推荐(0)
摘要:
Windows下搭建Octopress博客您需要掌握的使用Octopress来搭建博客,还是有一定门槛的,看完本文后,希望您不会觉得很难。Octopress是一款基于Jekyll的静态站点生成系统,使用Ruby实现,所以您需要懂点Ruby的知识,其实会几个命令就行;Octopress的博客内容是通过Markdown来书写,所以您需要了解Markdown的编写规则,Markdown 语法说明可以让你在几分钟之内熟悉Markdown的语法,在Windows下可以使用MarkDown Pad或是使用在线的编辑器http://mahua.jser.me/进行编辑;Octopress通常会部署在GitH
阅读全文
posted @ 2013-05-27 09:44
HackerVirus
阅读(221)
推荐(0)
摘要:
CQRS + DDD + MDP 实现快速应用程序开发背景企业需要“快速的”和“高质量的”交付应用,采用传统的三层架构+数据驱动开发可以带来快速交付,但是高质量视乎无从保证,这篇文章我谈谈我准备如何应对这种需求。思路CQRS + DDD + MDP(元数据驱动编程)看图解说从读和写的角度思考一些问题。UI层的编码量占据了整体的50%-80%(我自己的经验)之间。UI层的主要目的是展示,即读取。UI层团队的开发人数比例不符合他们的编码量(企业应该加大对UI层人才的投资和引进)。UI层团队的编码水平相对较差(我自己的经验,我见过好的UI人员,月薪2W)。UI层在代码级别相对容易抽象和重用(企业应用
阅读全文
posted @ 2013-05-27 09:41
HackerVirus
阅读(204)
推荐(0)
摘要:
数据结构之栈(Stack)与队列(Queue)(本文为个人学习数据结构课程和三年磨一剑的<<大话数据结构>>后的笔记,如有侵权,请直接联系我,立即删除)(杯具了,昨天写的保存的时候,着急了没看,早上来看没有发布成果,只有从头再写一遍了)一.栈(Stack) 1.定义:仅在表尾进行插入和删除操作的线性表 2.栈的抽象数据类型: ADT栈(Stack) Data 同线性表.元素具有相同的类型,相邻元素具有前驱和后继关系. Operation InitStack(*S): 初始化操作,建立一个空的栈. DestoryStack(*S):...
阅读全文
posted @ 2013-05-26 22:39
HackerVirus
阅读(373)
推荐(0)
摘要:
集成服务监控器-green.monitor发布在大型企业应用开发中,一个项目经常需要依赖于多个项目集成,经常某个集成服务的升级或者不工作,会导致你所工作的服务也挂掉,甚至影响你的开发流程。你是否还在接到测试团队或者运维团队的某个Bug,而自己花费了大量时间终于查出来是某个集成服务升级或异常,在这里浪费了大量时间,在笔者为所在项目建立了一个第三方集成服务监控的Monitor,去实时监控项目所依赖的所有集成服务,数据库。现在开源在githubhttps://github.com/greengerong/green-monitor,在其sample目录下有个使用demo。mavendependenc
阅读全文
posted @ 2013-05-26 22:34
HackerVirus
阅读(223)
推荐(0)
摘要:
Aspose Word模版使用总结篇2带示例继上篇:Aspose Word模板使用总结9.创建word模版,使用MergeFeild插入图片10.插入图片示例 string tempPath = Server.MapPath("~/Docs/Temp/Template.doc"); string logoPath = Server.MapPath("~/Content/logo.jpg"); var doc = new Document(tempPath); //载入模板//提供数据源 String[] fieldNames = new String[]
阅读全文
posted @ 2013-05-26 15:20
HackerVirus
阅读(733)
推荐(0)
摘要:
今天帮助David 调程序,他的程序是做Windows下目标程序分析,其中有个数组存放目标程序heap中所有数据结构,David的程序遍历目标程序全局数据段所有内容,如果某个值落在heap中某个数据结构地址范围内,就把它找出来,并建立从全局数据段到该数据结构的一个路径。David给我演示时, 说运行Toy program 没问题,但运行一个比较大的真实程序时,就会出现性能问题,果然,我们等了二十多分钟,还是没有算完。于是我检查了他的代码,告诉他问题可能出在检查指针是否指向有效数据结构时,他是用的线性查找方法,如果试着使用二分查找法,可能会快很多,因为算法复杂度从O(N)降到了O(logN)。没
阅读全文
posted @ 2013-05-26 15:20
HackerVirus
阅读(300)
推荐(0)
摘要:
千万级并发连接的秘密既然我们已经解决了过万并发连接(C10K concurrent connection problem)的问题,现在如何升级到支持千万级的并发连接?你会说:“不可能”。不,现在,一些系统通过使用一些不广为人知的先进技术,已经能够提供千万级的并发连接。为了明白这是如何实现,我们找到了Errata Security的CEO——Robert Graham和他在Shmoocon 2013上精彩绝伦的演讲——C10M Defending The Internet At Scale(译者注:FQ的同学可以去看看)。Robert解决这个问题的方法如此技艺高超,此前我从未听说过。他首先讲了一
阅读全文
posted @ 2013-05-26 15:17
HackerVirus
阅读(513)
推荐(0)
摘要:
Windows下Hadoop eclipse开发平台搭建搞了一个下午,在Linux和Windows下都成功了,步骤相差不大。一些小问题,google一下就能解决。1.必要条件 Cygwin :我的版本是目前最新的2.774 java JDK hadoop 0.20.2 迅雷连接(有可能已经失效):thunder://QUFodHRwOi8vZGwuY3IxNzMuY29tLy9zb2Z0My9oYWRvb3AuemlwWlo= eclipse2. java安装 具体参考百度。。。。。3.Cygwin的安装 可以按照默认的提示安装到自己需要存放的位置,但是在安装时需要注意下面几点: ...
阅读全文
posted @ 2013-05-26 15:05
HackerVirus
阅读(232)
推荐(0)
摘要:
元数据驱动界面,支持三级配置背景信息系统开发中,配置表格、树和表单的过程占据了开发的近一半的时间(可能更多),如果要支持运行期间修改配置,如:修改表格布局、表单布局、查询面板,就会更加花费时间。这篇文章我就介绍一下如何使用元数据驱动UI的开发。思路支持三级元数据配置:生成期配置:使用代码生成器生成,只能由生成器修改。运行期配置:使用配置修改器修改,运行期由维护或实施人员修改。开发期配置:由开发人员维护。三级配置,由上到下优先级越来越高,下级继承上级同时覆盖上级。如下图所示:实现配置 + 代码生成器生成器项目结构generated/Metadata.ejs生成后的应用项目结构user/app/v
阅读全文
posted @ 2013-05-26 15:02
HackerVirus
阅读(485)
推荐(0)