随笔分类 - [20]DesignAnalysis设计分析
-
如何在高并发分布式系统中生成全局唯一Id
摘要:如何在高并发分布式系统中生成全局唯一Id又一个多月没冒泡了,其实最近学了些东西,但是没有安排时间整理成博文,后续再奉上。最近还写了一个发邮件的组件以及性能测试会在这个月整理出来,还弄了个MSSQL参数化语法生成器,会在9月整理出来,有兴趣的园友可以关注下我的博客。分享原由,最近公司用到,并且在找最合适的方案,希望大家多参与讨论和提出新方案。我和我的小伙伴们也讨论了这个主题,我受益匪浅啊……博文示例:GUID生成Int64值后是否还具有唯一性测试Random生成高唯一性随机码今天分享的主题是:如何在高并发分布式系统中生成全局唯一Id。但这篇博文实际上是“半分享半讨论”的博文:1)半分享是我将说下 阅读全文
-
在使用Kettle的集群排序中 Carte的设定——(基于Windows)
摘要:在使用Kettle的集群排序中 Carte的设定——(基于Windows)本片文章主要是关于使用Kettle的UI界面:Spoon来实现基于集群的对数据库中的数据表数据进行排序的试验。以及在实验过程中所要开启的Carte服务的一些配置文件的设置,还有基于Windows cmd 的相关Carte命令。文章主要分为六个部分:1.介绍carte 2.carte相关配置文件的设定3.carte服务的开启命令4.在kettle的图形界面中对集群进行相关的设定 5.使用kettle集群模式对相关的数据进行排序6.有关于集群调用子服务器的java源代码调用实现1.介绍cartecarte是由kettle.. 阅读全文
-
关联规则评价
摘要:关联规则评价前面我们讨论的关联规则都是用支持度和自信度来评价的,如果一个规则的自信度高,我们就说它是一条强规则,但是自信度和支持度有时候并度量规则的实际意义和业务关注的兴趣点。一个误导我们的强规则 看这样一个例子,我们分析一个购物篮数据中购买游戏光碟和购买影片光碟之间的关联关系。交易数据集共有10,000条记录,其中购买6000条包含游戏光碟,7500条包含影片光碟,4000条既包含游戏光碟又包含影片光碟。数据集如下表所示:买游戏不买游戏行总计买影片400035007500不买影片20005002500列总计6000400010000 假设我们设置得最小支持度为30%,最小自信度为60%。从上 阅读全文
-
对面向接口编程、按分层建项目的反思和新的分层结构思路
摘要:对面向接口编程、按分层建项目的反思和新的分层结构思路本着每隔一年就得折腾一个新框架的习惯,近期对以前框架繁琐的结构进行了一些反思,加上打算新框架放弃使用EXTJS,也深入研究了下Asp.net MVC 4。在此给大家汇报一下,也希望大伙提出宝贵意见。 先回顾一下我们以前的框架分层和目录结构:上图可以看出,基本是按照DDD的路子去划分项目的分层的,每层一个项目。点开业务领域层看下:如上图,业务领域层,数据访问层,应用层是采用面向接口编程。系统中有大量的单一实现的接口。接下来我们再到展现层看看:如上图,由于系统采用EXTJS做UI,所以会有大量的JS文件存在。 这个设计用了将近两年,大小项目将.. 阅读全文
-
响应式布局
摘要:那些年,我们一起玩过的响应式布局2013-08-11 12:17 by 靖鸣君,349阅读,4评论,收藏,编辑博客园的资源很丰富,也很精彩。不过这些精彩的东西放到一些移动终端上阅览就不堪入目了,体验相当不好。你可以忍受每一次打开博客,还得放大屏幕阅读么?整个屏幕都挤满了很小很小的文字,反正我是受够了。所以,我们需要改变!!! 先看看什么是响应式布局,你所看的这篇文章就是采用响应时布局~(现代浏览器才能看到效果)什么是响应式布局我的理解就是,为了让用户享受更好的体验效果,给用户展现最有价值的信息,让同一个页面在不同终端上有不一样的展现效果。比如你正在阅读的这篇博客,当你缩小(放大)浏览器窗口时( 阅读全文
-
使用Unified Communications Managed API获取Lync在线会议的链接地址
摘要:使用Unified Communications Managed API获取Lync在线会议的链接地址最近在项目上遇到一个问题,需要能够在程序中获取Lync会议的链接地址。Lync是微软出品的一套即时通信(IM)客户端软件,配合Microsoft Lync Server使用,其前身是Microsoft Office Communicator(MOC)。与Live Messenger相比,Lync更适合企业内部使用,因为它还具备一定的与企业级应用组件进行整合的功能。在Microsoft Office 2010/2013中,Lync已成为Office中的一个套件。在企业内部使用Outlook和Ly 阅读全文
-
.NET各大平台数据列表控件绑定原理及比较(WebForm、Winform、WPF)
摘要:.NET各大平台数据列表控件绑定原理及比较(WebForm、Winform、WPFWebForm 下的列表绑定控件基本就是GridView、DataList、Repeater;当然还有其它DropDownList、ListBox等。它们的共同的设置数据源方法:XXX.DataSource=数据源。那么这个数据源的格式,究竟有啥要求?最简单的方式是随便给弄个,然后等它抛异常:从上面的错误可以看的出来,基本上支持三种数据源绑定方式:IListSource,IEnumerable,IDataSource。说说Winform数据列表控件:WinForm 下的列表绑定控件基本就是DataGridView 阅读全文
-
Easyui + asp.net mvc + sqlite 开发教程(录屏)适合入门
摘要:Easyui + asp.net mvc + sqlite 开发教程(录屏)适合入门第一节:前言(技术简介)EasyUI 是一套 js的前端框架 利用它可以快速的开发出好看的 前端系统 web 它是在jquery的框架基础上面 现在越来越多的 企业用它来开发web系统extjs (功能很强大 但是非常复杂 速度 我感觉也没有 easyui快)easyui (比较适合初学者 小巧 而且 速度感觉还是可以 相对ext来说 )ASP.NET MVCSqlite 数据库(一个小型的数据库 不用安装 很多单机软件 利用他来做数据保存)工具 动软代码生成器 IDE(VS2010)物理框架是 win7 64 阅读全文
-
缓冲区溢出攻击
摘要:缓冲区溢出攻击//在这里定义任意的合法汇编代码}END://确定代码范围UINTbegin,end;__asm{moveax,BEGIN;movbegin,eax;moveax,END;movend,eax;}//输出intlen=end-begin;memcpy(buffer,(void*)begin,len);//四字节对齐intfill=(len-len%4)%4;while(fill--)buffer[len+fill]=0x90;//返回长度returnlen+fill;}因为C++是支持嵌入式汇编代码的,因此在函数内的汇编代码都会被整成编译为二进制代码。实现二进制转换的基本思想是读 阅读全文
-
高并发系统架构的认识(1)
摘要:对高并发系统架构的认识(1)对于一个需要处理高并发的系统而言,可以从多个层面去解决这个问题。1、数据库系统:数据库系统可以采取集群策略以保证某台数据库服务器的宕机不会影响整个系统,并且通过负载均衡策略来降低每一台数据库服务器的压力(当然用一台服务器应付一般而言没啥问题,找一台当备机放着应付宕机就行,如果一台应付不了,那么再加一台,但是备机还是要的,至少一台),另外采取读/写分离的方法降低数据库负载,再加上分库和分表进一步降低数据库负载,从而可以从容地应对高并发问题。当然成本会比较高,毕竟要这么多服务器。2、分布式缓存系统:建立分布式缓存系统是至关重要的,所有的读写都先进入缓存系统,然后由缓存系 阅读全文
-
如何优化运行在webkit上的web app
摘要:如何优化运行在webkit上的web app 近来公司有个web app 项目运行在移动版android系统上,发现在电脑上跑的很流畅的web页面在移动版webkit上非常不流畅。根本无法和native app相媲美。HTML5的性能还真是让人纠结啊的egg pain... 后来发现国外的Netflix 网络电视服务提供商的web app,全是HTML5实现的,而且2年前就跑在了250多种移动设备上,在40多个国家上市,UI非常流畅。所以觉得HTML5还是勉强有救的。公司找了Netflix的资料,决定对自身的web app项目进一步优化,到目前为止效果非常明显。不废话了,以下就是优化点:1、. 阅读全文
-
SpringMVC,Spring,Hibernate,Mybatis架构开发搭建之SpringMVC部分
摘要:SpringMVC,Spring,Hibernate,Mybatis架构开发搭建之SpringMVC部分辞职待业青年就是有很多时间来写博客,以前在传统行业技术强度相对不大,不处理大数据,也不弄高并发的,所以学不到什么高端编程技术和架构方法,那么我自己就琢磨搞一个SSH架构的东西出来,希望可以帮助到一些朋友,也希望大拿给出相应的指导意见。先从用了什么东西说起吧 SSHM=SpringMVC+Spring+Hibernate+Mybatis,至于为什么要这么搞,我先简要的说下。SpringMVC 我最初的想法就是,它比struts2小,属于轻量级的MVC框架,而且和spring可以完美结合在一起。 阅读全文
-
软件系统性能瓶颈真相
摘要:软件系统性能瓶颈真相请看一个测试:1、快速排序100次,然后计算排序一次所需要的时间。public QuickSort() { long beginTime = System.nanoTime(); //排100遍 int b[]=a.clone(); for(int i=0;i<100;i++){ quick(b); } long total = System.nanoTime() - beginTime; //18133 ... 阅读全文
-
权限组的设计和实现
摘要:ASP.NET MVC+EF框架+EasyUI实现权限管理系列(24)-权限组的设计和实现(附源码) ASP.NET MVC+EF框架+EasyUI实现权限管系列 (开篇)(1):框架搭建(2):数据库访问层的设计Demo(3):面向接口编程(4 ):业务逻辑层的封装 (5):前台Jquery easyUI实现(6):EF上下文实例管理(7):DBSession的封装(8):DBSession线程内唯一 (9):TT摸版的学习(10):VSS源代码管理(11):验证码实现和底层修改(12):实现用户异步登录和T4模板 (13):权限设计(14):主框架搭建(15):权限数据库模型和用户登... 阅读全文
-
瀑布流,五大插件一个都不少Bootstrap+jQuery+Masonry+imagesLoaded+Lightbox!
摘要:纯手工打造漂亮的瀑布流,五大插件一个都不少Bootstrap+jQuery+Masonry+imagesLoaded+Lightbox!前两天写的文章《纯手工打造漂亮的垂直时间轴,使用最简单的HTML+CSS+JQUERY完成100个版本更新记录的华丽转身!》受到很多网友的喜爱,今天特别推出姊妹篇《纯手工打造漂亮的瀑布流,五大插件一个都不少Bootstrap+jQuery+Masonry+imagesLoaded+Lightbox!》,希望大家喜欢!前言FineUI控件库发展至今已经有 5 个年头,目前论坛注册的QQ会员 5000 多人,捐赠用户 500 多人(捐赠用户转化率达到10%以上,在 阅读全文
-
Show 一下最新的动态属性扩展功能与键值生成器功能
摘要:Show 一下最新的动态属性扩展功能与键值生成器功能YbSoftwareFactory 各种插件的基础类库中又新增了两个方便易用的功能:动态属性扩展与键值生成器,本章将分别介绍这两个非常方便的组件。一、动态属性扩展 在实际的开发过程中,你肯定会遇到数据库字段不够用的情况,临时增加一个字段有时是很麻烦的一件事。例如需要修改 SQL 语句、视图、存储过程等等,即使你使用的是 ORM 组件,也需要增加和配置映射,每次修改完成后还需反复进行测试,非常的不方便,如果软件已经为客户部署好了的话,嘿嘿,不用说,肯定更让你头疼;而客户临时要添加新的字段的情况却是非常普遍的。另外,有些对象其实不适合放到一张主. 阅读全文
-
一个链接器的实现
摘要:一个链接器的实现「一」为什么要研究链接器? 于我来说,最主要的原因就是学习了。 去年差不多这个时候,我刚进入大学的计算机系,对于如何学习这个专业尚模糊不清。在开学一个月左右的时候,学院为了探索教学改革,要组建一个虚拟的试验班,让一个老师给我们做了一次宣讲(当时没想到这个老师就是给我重大影响的韩老师)。他先说了一些他所遇见的大牛的例子,这些大牛的共同特征就是基础特别好,对于计算机系统的底层非常了解。所以学院希望通过这个试验班,做一些教学方面的探索,看能不能培养出基础扎实的,更优秀的学生。还抛出了三个愿望:操作系统,编译器,数据库,希望我们走一遍,不仅知道他们的运行机制,还要能够动手实践出一个.. 阅读全文
-
缓存子系统如何设计
摘要:缓存子系统如何设计大家对这段代码肯定很熟悉吧:public List SearchUsers(string userName) { string cacheKey=string.Format("SearchUsers_{0}", userName); List users = cache.Find(cacheKey) as List; if (users == null) { users = repository.GetUsersByUserName(userN... 阅读全文
-
.NET框架设计—常被忽视的C#设计技巧
摘要:.NET框架设计—常被忽视的C#设计技巧阅读目录:1.开篇介绍2.尽量使用Lambda匿名函数调用代替反射调用(走进声明式设计)3.被忽视的特性(Attribute)设计方式4.扩展方法让你的对象如虎添翼(要学会使用扩展方法的设计思想)5.别怕Static属性(很多人都怕Static在Service模式下的设计,其实要学会使用线程本地存储(ThreadStatic))6.泛型的协变与逆变(设计架构接口(Interface)时要时刻注意对象的协变、逆变)7.使用泛型的类型推断(还在为参数类型烦恼吗)8.链式编程(设计符合大脑思维习惯的处理流程)8.1.链式编程(多条件(方法碎片化)调用9.部分类 阅读全文
-
基于Redis缓存的Session共享(附源码)
摘要:基于Redis缓存的Session共享(附源码)在上一篇文章中我们研究了Redis的安装及一些基本的缓存操作,今天我们就利用Redis缓存实现一个Session共享,基于.NET平台的Seesion共享用的最多的应该是SQLServer数据库实现,我之前参与的一个项目么么亲子社区就是用的SQLSERVER实现不同子域名之间的Session共享。先打个广告嘿嘿,么么亲子网:enmuo.com,i.enmuo.com就是通过SQLSERVER实现Session共享 欢迎大家访问。该片文章主要介绍主域名跟不同子域名之间的Session信息共享。纠正上一篇文章中关于RredisHelper类中的一个错 阅读全文