`
leogao_emcom
  • 浏览: 82968 次
  • 性别: Icon_minigender_1
  • 来自: 大连
社区版块
存档分类
最新评论
文章列表
对于“架构”这个词,我是有爱有恨,主要是因为目前来说,这个概念被滥用了,所以就恨起来了,但是到目前为止还没有哪个词汇能描述有关软件设计话题全部的词汇,还是架构比较贴近,就像一个建筑师设计自己的房子一样 ...
基础结构: 在Java的Thread体系中,最基础的就是Runnable接口,它代表了一个线程功能的“契约”,或者是线程的功能在Java中的表述,因为线程不是哪个语言的特有,而是操作系统的特有,所以这里就给予一个中性的描述“此接口就是一个线程功能在Java中的表述”,请看它在Java中声明的结构: public interface java.lang.Runnable { public void run(); } 这类似Command设计模式,只提供一个方法抽象,代表所有的“命令”,这里也有这样的意思,也就是用这个接口就可以描述一个线程“想干什么”的问题,我们可以实现这个 ...
首先,必须明确的是,Java的并发包是针对线程的,那么就不得不先说明一下什么是线程: 线程(thread),有时也被被称为轻量级进程(Lightweight Process,LWP),是程序执行流的最小单元。线程是进程中的一个实体,是被系统独立调度和分派的基本单位,线程自己不拥有系统资源,只拥有一点在运行中必不可少的资源,但它可与同属一个进程的其它线程共享进程所拥有的全部资源,另外进程之间存在父子关系,但是线程只能共享所在进程的全部资源。一个线程可以创建和撤消另一个线程,同一进程中的多个线程之间可以并发执行。由于线程之间的相互制约,致使线程在运行中呈现出间断性。线程5种基本状态:     1. ...
当我们使用SQL直接在数据库里面操作是,批量更新一大批数据是很快捷的,比如 update Companys set BidPrice='1000' where Name='MS' 不管有多少条Name='MS'的记录都会被更新,而且直接作用于数据至少比较快。 但是当我们使用Hibernate的时候, ...
云计算在技术上并没有太多创新,从google的BigTable和开源的Cassandra中,你都可以发现很多算法都是很久以前人们就发明出来了的,但是正是在基于想利用众多廉价PC计算能力的想法下,却利用一些不时髦的和时髦的技术来实现出来了,并且带来一种新的商业模式, 我可以提供基础服务或者应用服务,你只需要在云端付费购买服务就可以了,像家里的自来水。这带来一场新的商业模式革命,想一下吧,如果一家公司想提供一种庞大的软件系统,而没有太多资金来搭建基础设施,那就用云计算吧,服务即平台,从平台提供商得到此基础设施服务的公司便可以创建自己庞大的软件系统。另外如果就是一个商业公司,想用信息技术开拓市场,比如 ...
走过7年的软件行业职业生涯,总想总结点什么,但是又不知道从何说起,只要沉思下来,发现无论是技术上的,管理上的,方法论上的,架构上的,等等这些都是人的思想指导而成的,最根本的问题是如何有一个正确的思想体系 ...
最近研究了一下Cassandra-一种混合型的非关系性数据库,这个数据库的设计理念是基于google的BigTable和亚马孙的Dynamo数据库模型,兼顾了它们的特性,并且开源。对于研究基于KV的数据库很有参考价值,我把研究结果作为附件附在这里。另外还提供两个客户端Demo程序(基于Thrift的客户端程序)。
我的一篇《 一个简单的基于约定优于配置(Coc)的对象工厂实现 》(http://leospace.iteye.com/blog/973744)已经对单纯使用Coc的方式实现DI进行了讨论,并且实现了一个最简的实现,目的是排除其他约束干扰以便于验证可行性。但是这个实现并不能应用于实际的开发,因为它并不能更加适应于实际的情况。实际的情况是有很多接口依赖(比如一个属性的类型就是一个接口),这时这个实现根本无法确认使用这个接口实现的哪一个!另外也没有办法知道一个值类型的属性具体的值,只能给赋予0,而且都是基于属性注入的方式,不符合实际要求,也不太灵活。 所以逐步增加针对实际应用的支持是必 ...
在历史上对Unix之失的讨论中,谈到过X系统的设计者在设计中的基本抉择是实行“机制,而不是策略”这种做法——使X成为一个通用图形引擎,而将用户 界面风格留给工具包或者系统的其它层次来决定。这一点得以证明是正确的,因为策略和机制是按照不同的时间尺度变化的,策略的变化要远远快于机制。GUI工 具包的观感时尚来去匆匆,而光栅操作和组合却是永恒的。 所以,把策略同机制揉成一团有两个负面影响:一来会使策略变得死板,难以适应用户需求的改变,二来也意味着任何策略的改变都极有可能动摇机制。 相反,将两者剥离,就有可能在探索新策略的时候不足以打破机制。另外,我们也可以更容易为机制写出较好的测试(因为策略太 ...
头站我一篇《一个简单的基于约定优于配置的对象工厂实现 》,想对其陆续做如下拓展: 1)增加针对接口类型或者值类型DI的处理逻辑:       拟用XML的并且模式匹配的方式解决接口DI的问题,值类型的DI准备采用注入注出的方式实现(参考Seam,并试图改进其概念) 2)增加基于代理的AOP支持,目标对象非侵入性设计,不需要继承框架或者Remoting基础结构提供的接口或者基类。 3)增加ObjectDeinition注册中心,将简化的XML解析出来的定义缓存。       提供文件监视器,一旦XML变化,缓存将失效并更新。 4)提供基于分布式策略的对象缓存,无状态对象的在其定义变化 ...
对于事物的看法,决定了其方法论,也就是做事或者作事的方法论,沿着一种指导原则而去发掘其内部规律并达到内外的一致性。先打个比方,一把直尺插进水里,你的眼睛看见那把直尺是弯的。但是,你关于直尺的知识与你的光学知识告诉你:直尺不是弯的,是直的,你之所以看见它是弯的,是因为光的折射现象。   从一个这样研究问题的思想为基本点,可以衍生出来:学习的方法,探索新知识的方法,发明的思维方法以及最普通的做事的方法,看待人生的方法等等。思想也是由原子组成的。   进入软件这个行业,我认为最基本的思维就是事实就是,能从表面的现象来引导出一些背后的事情,就像直尺插入水中一个道理。基于这一点,我们就会想到,要做 ...
原来有关Spring核心部分的源代码分析,比较乱,而且没有整理AOP的内容,近期找个时间好好整理一下。
Here is a slightly more detailed view, by .NET framework version:   Implemented   Partially Implemented   Not Implemented .NET 4.0   C# 4.0   ASP.Net 4.0   ASP.Net MVC 1 and MVC 2   System.Numerics   Managed Extensibily Framework - Shared with .NET via MS-PL license ...
About .Net 4.0   1. 兼容性一直是个令人很头疼的问题,在.NET 4.0中,在同一个进程中,不同运行时(CLR)上的组件可以同时运行,我们称之为In process Side by Side。     在Win32时代,我们一般开发一种叫做动态连接库或者COM的组件,为了减少私有安装带来的体积臃肿(也就是将被调用的组件部署到和自己同一个目录体系下,并且每个应用都会这样做,那么一个OS里面会被塞满N个同样的dll),想出了将N个应用都要调用的dll部署在一个“共享”的地方的想法,那么Win32是如何实现的哪,那就是使用注册表和System32目录,在应用程序安装的时候, 安 ...
可能需要根据特定的硬件及需求重新编译Linux内核。编译Linux 内核,需要根据规定的步骤进行,编译内核过程中涉及到几个重要的文件。比如对于RedHat Linux(每个发行版放置的目录可能不同),在/boot目录下有一些与Linux内核有关的文件,进入/boot执行:ls -l。编译过RedHat Linux内核的人对其中的System.map 、vmlinuz、initrd-2.4.7-10.img印象可能比较深刻,因为编译内核过程中涉及到这些文件的建立等操作。那么这几个文件是怎么产生 的?又有什么作用呢?   一、vmlinuz   vmlinuz是可引导的、压缩的内 ...
Global site tag (gtag.js) - Google Analytics