设计模式
zb219
这个作者很懒,什么都没留下…
展开
-
在程序里加debug和release两种方式
在配制节里加个debug的节,在页面重写 protected override void OnError(System.EventArgs e) ,在错误处理前判断这个配制节.globa 里面的方法protected void Application_Error(Object sender, EventArgs e) { string error=Server.GetLas原创 2007-05-21 14:40:00 · 747 阅读 · 0 评论 -
分表时的多维度查询
如果我们把一些数据按城市分表,那按用户查怎么办,我们可以做以下的表用户a 北京,上海用户b 上海,广州,重庆用过行列转换的方式,把一个用户用了哪些表存起来,然后,我们union表的时候,就不用union全部表的比如我们的日志如果是按时间分表2010,2011,2012我们按时间段查询可以精确的确定用了哪些表这时如果我们按用户来查用户a 2010,原创 2014-12-22 17:53:36 · 3681 阅读 · 1 评论 -
关于复杂排序
其实以某个字段排序并不符合客户要求,客户要求大多是,某种类型数据原创 2014-11-18 17:23:40 · 618 阅读 · 0 评论 -
架构的理解
架构只会让系统越来越复杂,程序员的工作量越来越多,并需要更多程序维护构架本身的代码架构是为了解决企业系统发展的瓶颈而产生的比如,要利用新的技术,如nosql,架构上需要支持要进行数据分库,不得不进行系统重构要更换数据库系统,不得不要收集整理数据库连接点由单系统转成分布式.系统太乱,不得不需要新的架构来把系统整理,概念化,这里需要有新的形式,更方便,清晰的阐述系统.比原创 2012-05-01 20:38:19 · 656 阅读 · 0 评论 -
一致性哈稀解释
首先有个0-2的32次方的环型区间,就是 4 294 967 296下一位就是0.每个服务品的ID的哈稀值都落到这个区间里面.比如服务器12321,3435,64,24422,6455key值计算一个哈稀值,如3242,然后按顺时针计算,把key存到一个最近的服务器上,就是服务器3435 这时如果增加服务器或减少服务器,只会影响一个区段的key储存位置的更新原创 2012-03-25 14:13:14 · 616 阅读 · 0 评论 -
自想一架构设计
我们把业务逻辑分配为工作者和管理者,工作者做具体的事情,管理者负责分配,调控工作者做完一件事情要报告给管理者,管理者根据业务流程再把下一个工作交给另一个工作者,或者,交给另一个管理者.图中的worker为工作者,就以普通的电子商务为例下一张订单是从前台触发的,通过本地的loadbalaner.dll,分配到一个work服务器组的wcf服务,一个worker(可以是一个项目,或一个cs文原创 2011-12-30 18:09:48 · 447 阅读 · 0 评论 -
一些设计发展方向
一.不要让CPU老在50%以下,应该用到他的7成,所以要高并行.二,当数据库访问峰值到了1秒钟2次访问的时候,可以每秒向内存推数据.让客户端访问内存.三,为了让一个复杂的操作能速度反映,我们用了队列,在队列里面完成每步操作.这么做是通过增加总体数据访问量来减少峰值.但我们的数据库的压力越来越大.把一个复杂操作的数据全部存入内存,分线程并行操作,一个线程进行存数据库,其它线程的操作的数据原创 2012-01-14 19:35:38 · 372 阅读 · 0 评论 -
公司搜索架构
数据泵推数据到memoryDB,各客户端从memoryDB取数据到本地cache,页面调用本地cache发展过程为什么客户端不直接调memorydb的数据,是因为有时候网络不稳定,会导致前台无用,和网络传输数据比较大. 这里面有很多细节,主要用到了线程控制,和异步列队,虽然用了很多机器,但可以让搜索不用读数据库. 数据泵方面要推大量数据,所以先要拆分数据请求,比如以城市原创 2011-12-09 16:34:09 · 575 阅读 · 0 评论 -
提高性能各种方法
1.行列转换减少循环.sql2005提供行列转换的方法,使代码成本减少,像下面的数据集合日期 项目A 项目B 项目C1-1 0 1 01-2 1 0 11-3 0 1 1 1-4 1原创 2011-08-16 22:32:34 · 394 阅读 · 0 评论 -
一种事件主导流程的设计模式的思考
三个角色一是事件触发者二是事件广播者三是事件处理者 事件触发者 触发事件 广播者接收事件 通知所有的事件处理者 事件处理者挑选自己需要处理的事件处理 这样做的好处是可以把相同的业物逻辑放在一起来处理 比如我们的业务逻辑需要一些相同的工作,比如发短信,减库存,支付扣款等 你看,我们新建一张订单 我们一般会写个生单接口,在这个方法里面,你要插入订单表,减库存原创 2011-11-01 21:07:21 · 775 阅读 · 1 评论 -
用继承带替一堆if.else
当我们要处理一堆实体类时,往往判断某个属性值,做不同的操作,比如某食品加工厂面包类,苹果类,鱼类如果是面包加工面包的方法如果是苹果加工苹果的方法如果是鱼类加工鱼类的方法这样,程序会有一堆if,else和一堆方法换个思维一个基类叫食品,里面有个方法叫加工食品,面包类,苹果类,鱼类都继承它,实现自己的加工方法食品类=new 面包类面包类.加工方法原创 2008-06-13 14:09:00 · 807 阅读 · 0 评论 -
对于signalr的一些思考
signalr,在没有html5的情况下,是通过js不断的轮询拿数据是拉得到返回值时,再去请送。但是要注意的是,假设有100个页面,对IIS有100的并发,但它并不会查100次数据庘。他对数据庘的访问频率是恒定的。如果简单的实现效果的话,应该是这样刚一个request发给服务端以后,并不是立刻去查数据庘,而是在等一个标量,如果这个标量为零,则等100毫秒,再访问,直到这个标量为1,原创 2014-12-25 23:30:27 · 1111 阅读 · 0 评论