摘要:
引言软 件系统面向对象的设计思想可谓历史悠久,20世纪70年代的Smalltalk可以说是面向对象语言的经典,直到今天我们依然将这门语言视为面向对象语言 的基础。随着编程语言和技术的发展,各种语言特性层出不穷,面向对象是大部分语言的一个基本特性,像C++、Java、C#这样的静态语言,Ruby、 Python这样的动态语言都是面向对象的语言。但 是面向对象语言并不是银弹,如果开发人员认为使用面向对象语言写出来的程度本身就是面向对象的,那就大错特错了,实际开发中,大量的业务逻辑堆积在一个巨 型类中的例子屡见不鲜,代码的复用性和扩展性无法得到保证。为了解决这样的问题,领域驱动设计提出了清晰的分层架 阅读全文
posted @ 2012-07-24 14:21
HackerVirus
阅读(208)
评论(0)
推荐(0)
摘要:
目前对一个大型的web业务系统进行修修补补,增加功能,完成工作之余,不得不对大量冗余的工作量表示抱怨。一个好的系统应该 对修改关闭,对扩展开放。下面开始意识流。。。。统一的命名规范与接口 命名规范没什么好说的,一个团队不一定要找最好的规范,但是必须统一。 接口与敏捷开发有些许的冲突,互联网的日新月异,敏捷的快速迭代,貌似不能再开发初期就把整个系统设计好。不过还是有很多的规范或者习惯在项目或者说全部开发初期约定好,比如方法名称的命名方式,重载的命名方式,参数顺序等等等等。 几个简单的例子。GetList的时候 返回值尽量用 IEnumable 而不是 List或者IList。重载的时... 阅读全文
posted @ 2012-07-24 14:21
HackerVirus
阅读(165)
评论(0)
推荐(0)
摘要:
本节摘要:最近频繁的去生产环境部署和发布项目,用了不少的linux命令,把这些用到的命令做一下总结和记录。linux命令汇总:先做几点声明:(1).这些命令是在redhat linux上运行的,在IBM AIX上使用可能有些就不行;(2).我并不会去介绍所有的命令,每个命令我也并不会去介绍所有的参数,我只介绍我用到并且是常用的;(3).介绍不分顺序,我只是对近一段时间用到的命令做一下回顾和总结;(4).我用root用户登录linux系统,然后在根目录下建了一个pantp目录,后面截图为黑底白字的操作都是在这个目录下进行;(5).命令下的(1)、(2)表示该命令常用的几种形式;.ls---显示当 阅读全文
posted @ 2012-07-24 09:35
HackerVirus
阅读(213)
评论(0)
推荐(0)
摘要:
摘要: 本系列意在记录Windwos线程的相关知识点,包括线程基础、线程调度、线程同步、TLS、线程池等。这篇来说说静态的Interlocked类和ReadWrite锁.NET中的InterlockedInterlocked的系列方法提供了对简单类型的原子操作(不会被打断的操作),因此这也是一种多线程共享变量,防止冲突争用的方法。比如下面的方法作用是以原子的方式递增整数i:?12inti = 0 ;Interlocked.Increment( refi);除此之外还包括Add、Exchange、CompareExchange、Decrement、Read和其中的某些泛型版本。如果看官使用过wi 阅读全文
posted @ 2012-07-24 09:28
HackerVirus
阅读(297)
评论(0)
推荐(0)
摘要:
许多研究都表明,用户最满意的打开网页时间,是在2秒以下。用户能够忍受的最长等待时间的中位数,在6~8秒之间。这就是说,8秒是一个临界值,如果你的网站打开速度在8秒以上,那么很可能,大部分访问者最终都会离你而去。 Google做过一个试验,显示10条搜索结果的页面载入需要0.4秒,显示30条搜索结果的页面载入需要0.9秒,结果后者使得Google总的流量和收入减少了20%。 Amazon的统计也显示了相近的结果,首页打开时间每增加100毫秒,网站销售量会减少1%。 由此可见,网页的打开速度,对于一个站长,尤其是对于营利性网站来说,是多么重要。但是,从输入网址到网页全部打开,这段时间内,浏... 阅读全文
posted @ 2012-07-24 09:23
HackerVirus
阅读(221)
评论(1)
推荐(0)
摘要:
最近3周一直都在学习Prism,留下点笔记,梳理下思路......要点1: 在CAL中,模块是实现Imodule接口的类,此接口仅包含一个方法,成为称为Initializae。如果把引导程序看做应用程序的Main方法,那么Initialize方法就是每个模块的Main方法。要点2: 对于Module中的Initialize方法中,提到的_contianer 和 _regionManager的作用需讨论一下。如果接口并未定义他们,那么他们从何而来?我们是否需要将逻辑硬编码到模块中以找出这些依赖关系? 幸运的是,后一个问题的答案是“否”,此时,IoC容器就派上用场。加载此模块时,它从容器中被解析出 阅读全文
posted @ 2012-07-24 09:19
HackerVirus
阅读(415)
评论(0)
推荐(0)