代码改变世界

利用Nginx做负载均衡

2013-09-27 16:02 by 地图315, 364 阅读, 0 推荐, 收藏, 编辑
摘要:最近正在研究Nginx,Nginx作为反向代理服务器,可以对Web服务器提供加速,并且具有负载均衡的功能。 首先我要在官网下载Nginx(http://nginx.org/en/download.html),目前最新稳定的版本为1.0版本,Linux和Windows版本我都下下来了,在两台服务器上做网站负载均衡。在Windows版本中,将压缩包进行解压,执行命令:?1start nginx这样就可以启动nginx服务了。而执行命令:?1nginx -s stop可以停止服务。这是我在192.168.3.82的IIS服务器上,添加两个站点:这两个站点分别添加两个文件index.html,两个文件 阅读全文

在多台服务器上简单实现Redis的数据主从复制

2013-09-27 16:00 by 地图315, 249 阅读, 0 推荐, 收藏, 编辑
摘要:Redis的主从复制功能非常强大,一个master可以拥有多个slave,而一个slave又可以拥有多个slave,如此下去,形成了强大的多级服务器集群架构。下面我演示下怎样在多台服务器上进行Redis数据主从复制。这里我假设有两台服务器,一台是Windows操作系统(局域网IP:192.168.3.82),一台是Linux操作系统(局域网IP:192.168.3.90),在两个操作系统都安装redis,Windows操作系统使用cygwin工具进行安装,命令为:?123$ tarxzf redis-2.2.2.tar.gz$ cdredis-2.2.2$ make可以通过"make 阅读全文

Head First - 01.策略模式(Strategy Pattern)

2013-09-26 15:12 by 地图315, 168 阅读, 0 推荐, 收藏, 编辑
摘要:策略模式定义了算法族,分别封装起来,让它们之间可以互相替换,此模式让算法的变化独立于使用算法的客户。当你需要给朋友留下深刻印象,或是影响关键主管的决策时,请使用“这个”定义!设计原则:1、找出应用中可能需要变化之处,把它们独立出来,不要和那些不需要变化的代码混在一起;2、针对接口编程,而不是针对实现编程;(针对超类型supertype编程,多态)3、 多用组合(composition),少用继承OO基础:抽象、封装、多态、继承OO原则:封装变化;多用组合,少用继承;针对接口编程,不针对实现编程要点:良好的OO设计必须具备可复用、可扩充、可维护三个特性模式不是代码,而是针对设计问题的通用解决方案 阅读全文

23种设计模式(6):模版方法模式

2013-09-26 15:11 by 地图315, 170 阅读, 0 推荐, 收藏, 编辑
摘要:定义:定义一个操作中算法的框架,而将一些步骤延迟到子类中,使得子类可以不改变算法的结构即可重定义该算法中的某些特定步骤。类型:行为类模式类图: 事实上,模版方法是编程中一个经常用到的模式。先来看一个例子,某日,程序员A拿到一个任务:给定一个整数数组,把数组中的数由小到大排序,然后把排序之后的结果打印出来。经过分析之后,这个任务大体上可分为两部分,排序和打印,打印功能好实现,排序就有点麻烦了。但是A有办法,先把打印功能完成,排序功能另找人做。[java]view plaincopyabstractclassAbstractSort{/***将数组array由小到大排序*@paramarray*/ 阅读全文

《Head.First设计模式》的学习笔记(9)--外观模式

2013-09-25 15:58 by 地图315, 233 阅读, 0 推荐, 收藏, 编辑
摘要:意图:为子系统中的一组接口提供一个一致的界面,Facade 模式定义了一个高层接口,这个接口使得这一子系统更加容易使用。结构:例子:假设你有一套杀手级的家庭影院系统,内含DVD播放器、投影仪、自动屏幕、环绕立体声等。那么当你想看一部DVD时,需要做哪些事情呢(用最土的方式)?1、将灯光调暗;2、放下屏幕;3、打开投影仪;4、将投影仪的输入切换到DVD;5、将投影仪设置成宽屏模式;6、打开功放;7、将功放的输入设置为DVD;8、将功放设置为环绕立体声;9、将功放音量调到中;10、打开DVD播放器;11、开始播放DVD。我想如果每次看DVD时都要进行这样一番折腾,那我宁愿不看了。上面的操作暴露了哪 阅读全文

Head First--设计模式(装饰者模式)

2013-09-25 15:22 by 地图315, 190 阅读, 0 推荐, 收藏, 编辑
摘要:从现在开始,我将以写一个小软件的方式来进行模式识别的学习,包含需求分析,功能模块设计,原理图设计,程序实现这个几个部分,可能具体的模式模块不可能都包括在内。 需求分析:星巴兹咖啡店已经遍布全世界的很多对方,我们需要写个软件对它的咖啡店进行管理,主要是客户需要咖啡种类的管理,例如,我想要一个奶油咖啡,另一个人可能需要一个摩卡咖啡,所有,咖啡的种类会有很多,也就是可以理解为,咖啡加上它的修饰者,会产生很多的咖啡种类。并且,咖啡的不同的修饰者的添加数目不定,相同的修饰者添加数目也不定。所以,如果使用类继承,会产生类爆炸的情况,我们将使用装饰者模式进行设计。装饰者模式:动态地将责任附加到对象上。若.. 阅读全文

设计模式读书笔记-----适配器模式

2013-09-25 15:11 by 地图315, 403 阅读, 0 推荐, 收藏, 编辑
摘要:假如我们又这样软件系统,我们希望它能够和一个新的库搭配使用,但是这个库所提供的接口与我们的软件系统不兼容,我们不想改变现有代码就能解决这个问题,怎么办?这个时候我们就需要将这个新的库接口转换成我们所需要的接口,这就是适配器模式设计动机。一、模式定义 何谓适配器模式?适配器模式就是将一个类的接口,转换成客户期望的另一个接口。适配器让原本接口不兼容的类可以合作无间。 在适配器模式中,我们可以定义一个包装类,包装不兼容接口的对象,这个包装类就是适配器,它所包装的对象就是适配者。 适配器提供给客户需要的接口,适配器的实现就是将客户的请求转换成对适配者的相应的接口的引用。也就是说,当客... 阅读全文

敏捷开发之 12条敏捷原则

2013-09-09 17:15 by 地图315, 992 阅读, 0 推荐, 收藏, 编辑
摘要:1、我们最优先要做的是通过尽早的、持续的交付有价值的软件来使客户满意。2、即使到了开发的后期,也欢迎改变需求。敏捷过程利用变化来为客户创造竞争优势。3、经常性的交付可以工作的软件,交付的间隔可以从几周到几个月,交付的时间间隔越短越好。4、在整个项目开发期间,业务人员和开发人员必须天天都在一起工作。5、围绕被激励起来的个体来构建项目。给他们提供所需要的环境和支持,并且信任他们能够完成工作。业务和技术是引起不确定的二个主要方面,人是第三个方面。而业务和技术又必须由人来执行,所以能够激励人来解决这些问题是解决不确定性的关键。只要个人的 目标和团队的目标一致,我们就需要鼓舞起每个人的积极性,以个人为中 阅读全文

网站的性能优化与安全(高效C#编码优化)

2013-09-09 16:08 by 地图315, 307 阅读, 0 推荐, 收藏, 编辑
摘要:1. Foreach 比 For 性能高30%2. 避免是使用ArrayList, 因为任何对象到ArrayList都有封装为Object,出来还要拆箱。 用泛型去掉3. HashTalbe取代 StringDirectionary, NameValueCollection, HyBridCollection4. 为字符串容器,声明为常量 const String c = "Active"; MyObject obj = new MyObject(); obj.Status = c;5. if(String.Compare(str1,str2,true) == 0){} / 阅读全文

面向对象的5条基本设计原则

2013-09-09 16:07 by 地图315, 287 阅读, 0 推荐, 收藏, 编辑
摘要:这几天重新看了一遍《大话设计模式》,发现果然有不同的感悟,而且自己也上网找了《敏捷软件开发—原则、模式与实践》一书来看,那本书的序言中有一段话我觉得很有道理:“美的东西比丑的东西创建起来更廉价,也更快捷。”设计一个软件不关要追求代码的优雅问题,更关乎生产成本等。技术大师们在对软件架构的研究中经历了很长时间的摸索,从面向过程到面向对象,从设计原则到设计模式,总结了许多设计上的经典法则,而我们就只是站在巨人的肩膀上眺望远方而已。 从《大话设计模式》中,大家一定会发现其中的经典的23个模式背后,其实都遵循着一些基本的原则的。而设计原则又由设计模式来实现,这就是二者相辅相成的关系,所以了解原则对于.. 阅读全文
上一页 1 2 3 4 5 6 7 8 9 10 ··· 12 下一页