04 2013 档案
摘要:是一缓存,能够Set, Get value,哈哈,普通用法如下:public User GetUser(int userId){ UserInfo user = cacheService.Get("UserInfo:" + userId) as UserInfo;//cacheService是自定义的接口,具体的memcache实现代码被隔离了 if (user == null) { user = dao.GetUser(userId); cacheService.Se...
阅读全文
摘要:设计模式:简单工厂模式工厂方法模式抽象工厂方法模式单例模式外观模式生成器模式原形模式中介者模式代理模式观察者模式命令模式迭代器模式组合模式模版方法模式策略模式状态模式备忘录模式享元模式解释器模式装饰器模式职责链模式桥接模式访问者模式企业应用架构模式事务脚本大家都懂的写法领域模型DDD的建模方法:领域对象、value对象Unit of WorkEntity Framework已经集成这功能了Lazy Load同上查询对象针对Specification类的自定义资源库RepositoryDTO和Message和WCF有关系,对大数据的soap需要自定义压缩、还原,否则占带宽并发锁Entity Fr
阅读全文
摘要:HDFS-Hadoop Distributed File System,对大文件效率高,小文件效率低。和普通本地的文件系统区别在于HDFS中的文件是分布在多台计算机上的,并且访问文件需要通过HDFS中的NameNode来访问。比如一个文件1g,被分成了10份分别保存在计算机01-10中,当客户端要获取这个文件时,会发生:客户端request到NameNodeNameNode返回这个文件分布情况:会返回一堆DataNode列表和文件block对应关系DataNode就是保存文件block的各个计算机,就是数据节点客户端得知文件信息后,就直接和DataNode联系拿数据在一个HDFS集群中,如果N
阅读全文
摘要:架构要分阶段,而后分视图:把握需求特点,确定架构驱动力(预备架构)采用 二维需求观 来定出需求特定和非功能性需求优先级、取舍根据重大需求,确定概念架构(概念架构)细化架构设计,关注不同视图(4+1视图)逻辑视图开发视图运行视图数据视图物理视图*贯穿如上3过程的有*对非功能目标的考虑关注约束,要乘早。架构设计,除了关注架构本身外,还关注到人,比如,划分子系统原则中,有如下:职责分离原则通用专用分离原则技能分离原则(关注到了人)工作量均衡原则(关注到了人)************预备架构***********预备架构关注质量因素和相互冲突关系,需要谨慎做出权衡。质量点:持续可用性性能可扩展性安全性
阅读全文
摘要:要想性能高,缓存是关键,缓存处理更是关键最近一直在关注性能方面,回想起以前写cache的场景,纠结啊,一坨一坨的同步代码,都写在了业务方法中,更要命的是由于涉及到取缓存代码导致了多个方法中同时牵涉了很多处理缓存的代码、结构性基本上没有。由此粗略写了这个EventFramework,还没有优化,由于用到了反射,所以效率不高,还需要优化(今天刚搞出来的。。。)代码下载这个EventFramework能够将业务方法和相关event分离开(事件订阅),比如:事件订阅:Order.Add函数调用后,EventFramework能根据订阅的event,逐一进行调用(缓存处理可以放在这里,对处理缓存的结构比
阅读全文
摘要:性能低主要是由于I/O操作导致的延迟,导致了等待 ==>CPU很闲,处理速率却上不去解决办法: 减少I/O操作: 加入缓存来缓解I/O操作AppFabric或Memcached让出主线程,开启单独线程来处理I/O操作(主线程就能处理更多的IIS请求)PageAsyncTask, Parallel把大面积的数据(比如某字段中保存了1w个字符串,并且select了多行...OMG!),压缩后保存到磁盘,也能减少I/O消耗的时间ICSharpCode.SharpZipLib.dll如果系统是分多个物理计算机通信的,也要压缩message的内容,比如WCF自定义MessageFormat...
阅读全文
摘要:本篇通过一小段代码的console程序来进行性能的分析以及改进、直到后面的改进前、改进后性能比较结果。先看console代码(源代码下载):static void Main(string[] args) { int i = 10000; while(i-->0) { Core c=new Core(); c.Process(DateTime.Now.ToString()); } }public class Core ...
阅读全文
摘要:VS自带的Web负载测试真的很大程度上能和专业的loadrunner媲美(只是Web方面),上个report图吧(如何实现,请往下拉):看,能探测一堆的计数器(上面红色打叉的是代表超过了基线值)、还能跟踪sql的执行,下面讲讲如何实现的。样板代码下载大致过程分成如下:新建测试工程、添加Web性能测试(和实现)、 添加负载测试(和实现,负载测试实际上是不断的调用Web性能测试)、运行负载测试看结果、调整性能。新建测试工程:忽略(`(*∩_∩*)′)添加Web性能测试:实现Web性能测试(先了解测试对象,需求如下):我们需要分别给以上情况编写测试用例,如下:User Name不填、Email不填=
阅读全文
摘要:最近想写点技术总结,WPF正好从来没写过,就写这个了,分成4个例子,如下:Mouse移入移出效果DataGrid模版怪异Window效果Ribbon效果源代码下载Mouse移入移出效果效果图(分别是鼠标移动过3个button时的效果{当前按钮清晰显示、其他按钮模糊显示})XAML主代码如下:<Window x:Class="WpfApplication1.MainWindow" xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" xmlns:x="http:/
阅读全文
摘要:本文是自己对读写分离数据库方面的一些改进想法一般做数据库读写分离的标准情况是:1台写入数据库+2台查询数据库+1个请求转发器这样的配置容易出现这样的问题:1. 写数据库的写入成为瓶颈2. 查询所需时间还是很长(由于表很大导致)下面这些办法,欢迎大家给出各自的看法解决办法一: 1. 查询数据库:增加内存,以达到通过内存就可以获取大多数的数据,较少I/O耗时带来的延迟 2. 写入数据库:删除索引,以达到最快速的I/O写入耗时这样做的问题是:没有针对特别耗时的查询单独处理,因此当执行某些耗时的查询时,会显得特别慢解决办法二: 1. 查询数据库分成2种,分别为:普通数据读取数据库、特别耗时查询数据库
阅读全文
摘要:本文讲PlaceOrder函数的实现(重点在业务逻辑层),让我们来分别用不同的设计模式来实现吧:装饰器模式、代理模式、命令模式、状态模式、模版模式。假设我们实现需求如下: 在PlaceOrder函数中需要做如下工作 1. 检查权限,未登录的不能递交订单 2. 计算税 3. 记录日志好了,让我们分别来实现吧....当然,是用不同的设计模式分别实现。装饰器模式实现请看PlaceOrder函数方法体:public bool PlaceOrder(OrderInfo order) { try { ...
阅读全文
摘要:本篇是讲设计模式方面的,比较杂,不像书上的那样。我们先从很简单的一个需求开始:“想让系统中只存在一个SendEmailObject对象”代码:public class SendEmailObject { public bool Send() { Console.WriteLine("Email sent from : "+this.GetHashCode()); //加这个GetHashCode调用是用来查看instance是否同一个的 return false; } } pub...
阅读全文
摘要:本文是讲使用微软企业库来实现AOP和IoC/DI的,大家先装下微软企业库5.0,地址:http://www.microsoft.com/en-us/download/details.aspx?id=15104AOP的实现,使用PIAB(Policy Injection Application Block)比如想给这个TestManager类的Method2方法检查权限,有权限时才允许执行Method2方法体,最初的代码如下:public class TestManager{ public void Method2(int x) { Consol...
阅读全文
摘要:优点:开源,能自己修改代码,皮肤也能自己定制,能够单独引入项目(不需要复制进一堆无关的东西),对于简单的后台项目比较适用官网:http://paramquery.com/InfoQ上对ParamQuery的描述如下:排序分页浏览可以调整数据栏的大小可以调整表格的高度和宽度自定义主题隐藏或显示列像Excel那样冻结任意多列显示任意数据源格式,像HTML、数组、XML、JSON等可以用于任意服务端框架,像ASP.NET、MVC3、JSP、JSF、PHP等等虚拟滚动和渲染直接编辑单元格在所有主流浏览器(IE 6+、Firefox、Chrome、Opera等等)上拥有一致的外观和功能最简单的Demo:
阅读全文
摘要:OWASP(开放Web软体安全项目- Open Web Application Security Project)是一个开放社群、非营利性组织,目前全球有130个分会近万名会员,其主要目标是研议协助解决Web软体安全之标准、工具与技术文件,长期 致力于协助政府或企业了解并改善网页应用程式与网页服务的安全性。下表左边是2010年的排名,下表右边是2013年的排名,可以看出改变的地方有:2010年的Insecure Cryptographic Storage(不安全加密存储)和Insufficient Transport Layer Protection(传输层保护不足),在2013年合并为了一个
阅读全文