[置顶] 架构师,如何从梦想变成现实?

摘要: 这个题目,不是标题党,也不是为了给出答案,而是自问,写出来一些看法,和自己对未来几个月的规划,当然更加希望同僚能多提意见或建议。很久之前,从大学毕业开始,自己就一直做着“成为一个架构师”的梦,并且也在磕磕碰碰中前进和提升。但到现在已经工作了5年,却也还是不如人意。从最开始做技术支持,到码工,到高级码工啥的,角色好像变了,但总是觉得有非常非常多的东西要学,要不断地历练。到现在再换了一个环境之后,心里真是更加清楚自己到底有几斤几两。不能全面否定自己的进取,应该说来,自己对架构师的角色越来越清晰吧。首先说说自己到底想成为哪个方面的架构师。因为一直从事跟web相关的工作,什么前端,后端的开发都做过,所 阅读全文
posted @ 2011-06-29 21:44 eric_chen 阅读(5182) 评论(43) 推荐(7) 编辑

[置顶] java中的引用,你注意到没?

摘要: java中没有指针,到处都是引用(除了基本类型)。所以,当然,你肯定知道java的引用,并用了很久,但是是不是对此了解地比较全面?而这些引用有什么作用,且有什么不同呢?Java中有个java.lang.ref包,这里面都是描述引用对象的,包括了Reference,SoftReference,WeakReference和PhantomReference。其中,Reference是基类其他三个类的基类。下面就这几种引用对象做个说明。 强引用(Strong References)我们每天都在用强引用(如果你每天都在用java的话),一段如下的代码:HashMap mapRef = new HashM 阅读全文
posted @ 2011-05-27 11:28 eric_chen 阅读(2121) 评论(0) 推荐(1) 编辑

[置顶] 命令模式、template method模式、工厂方法模式的比较

摘要: 强烈推荐GOF的《设计模式》,不用看什么j2ee设计模式。GOF的书的确经典。看过之后,精神爽,身体棒,吃嘛嘛香!命令模式的类图,网上到处都有!一般包括:client,invoker,Command接口,具体的command实现,receiver。首先说明一下,命令模式的场景:实体解耦和时间解耦。嘛意思呢?就是命令发出者和接收者两个不互相依赖了,时间顺序上也是可以有间断的,即命令发出者不必在那里等着接收者,两者在时间上是分开的。举个小例子:国家(ivoker,发起人)发出扫黄打非的命令(封装了行动信息和指标)啦,各地警察叔叔们(接收者)就出来巡逻(干活)啦,专拣那个红灯区和一些洗浴中心下手。整 阅读全文
posted @ 2010-11-17 22:48 eric_chen 阅读(1038) 评论(0) 推荐(0) 编辑

java classloader原理深究

摘要: 前面已经写过一篇关于java classloader的拙文java classloader原理初探。时隔几年,再看一遍,觉得有些地方显得太过苍白,于是再来一篇:完成一个Java类之后,经过javac编译,会生成一个class文件,这个class文件中包含跟这个类相关的所有基本信息:属性字段,方法等... 阅读全文
posted @ 2014-04-13 17:38 eric_chen 阅读(937) 评论(0) 推荐(0) 编辑

用gitolite搭建git server

摘要: 在Ubuntu上测试安装一下git server,为后面项目的代码管理做准备。记录流水账如下, 中间关于git 命令的使用说明不做过多解释,需要了解的请google或者直接git help:我用到了三个用户:eric,root,giteric是ubuntu的登陆用户,root就不用说了,git是用来支持gitolite的system用户(下面会说到创建过程)。我的server地址是192.168.137.1001.安装ssh, 准备公钥文件:安装和生成公钥的动作都是在eric用户中完成的。eric用户要作为gitolite的admin用户。因为gitolite 通过ssh进行通讯和认证,所以需 阅读全文
posted @ 2013-12-15 14:50 eric_chen 阅读(847) 评论(0) 推荐(0) 编辑

神话设计模式 --开端

摘要: 这段时间接了别人的一个小项目,这个项目不大,需求文档也就10几页,而且里面主要是流程图,具体业务逻辑非常少。一个大的方法几乎可以涵盖所有的东西,但这哥们就是要套用设计模式,一上来就是命令模式,说是命令模式,其实就是命名叫command,在这个所谓的“Command”模式里面掺杂了proxy模式,filter模式,还有什么工厂模式。真叫一个“坑爹”啊。本来就是2-3个类能解决的问题,一下子就出来二三十个,依赖关系还比较乱。能有关系的地方都用上了模式。写这个文章的主要目的是想分享一下自己的一些看法,上面这小段算是个引子。在刚学设计模式的时候,也喜欢到处宣扬设计模式的优点,并喜欢在代码里面套用,当初 阅读全文
posted @ 2013-12-03 22:43 eric_chen 阅读(1717) 评论(6) 推荐(2) 编辑

Dive into Spring framework -- 了解基本原理(二)--设计模式-part2

摘要: Template模式Template模式顾名思义是提供了一种模板,也就是针对某种业务提供了模范框架。这个在spring中是属于核心模式的,因为其ApplicationContext抽象类就是模板模式的终极体现。Template模式一般情况下是指针对某种业务算法(或者业务动作)形成的固定模式。而且它是基于继承的一种实现。由父类类完成模板方法,仅留出模板方法中的特别处理方法作为抽象方法,交由子类根据具体情况来实现。对于具体使用,要引用一下《Expert》中的一句话“Publicsuperclass methods are usually final: the abstract methods de 阅读全文
posted @ 2013-12-03 21:18 eric_chen 阅读(313) 评论(0) 推荐(0) 编辑

Dive into Spring framework -- 了解基本原理(二)--设计模式-part1

摘要: 比较巧,自己在接触设计模式的时候,也刚开始学习spring,但可惜的是,真的仅仅在学习“用”spring,每天都沉浸在会痛快的完成spring各种配置的快乐之中,但对成长无用。其实当初就清楚,spring框架中有大量设计模式,于是也下了代码来看,设计模式其实没那么简单,当初的学习也很皮毛,所以就没有发现spring中的金矿。现在动手,里面依然还是金矿,但不要偷懒,让它完全腐烂。[这是对自己的告诫] 开头上来就说到了spring跟设计模式,实际上,spring中的核心原则就是基于设计模式来构建的。这个时候继续祭出《敏捷软件开发》这本神书,结合里面比较全面的和具体的设计模式来大体讨论一下各种设计模 阅读全文
posted @ 2013-11-28 23:02 eric_chen 阅读(1187) 评论(0) 推荐(0) 编辑

Dive into Spring framework -- 了解基本原理(一)

摘要: 在继续我们的分析之前,推荐各位静心来读一下>第四章,正如springBeanFactoryAPI 中描述的。这一章主要说明了设计原则,设计模式,异常处理,反射等各个方面。本来也是想着直接来分析代码,但我们应该知其然也要知其所以然,为了能加深理解Johnson创建框架的设计思路,就引入了这一部分。 从spring的核心概念IoC入手,IoC的主要含义到底是针对哪个部分来说明的?是在xml配置的对象之间的关系么?针对这个IoC,我们应该如何应用?还是应该看看spring到底是怎么应用的。 关于设计原则,比较推荐看看《敏捷软件开发》,这里面有最基本的设计原则的汇总,而expert书中都有不谋而 阅读全文
posted @ 2013-11-26 22:29 eric_chen 阅读(918) 评论(3) 推荐(0) 编辑

Dive into Spring framework -- 搭建spring 源码的开发环境

摘要: spring是一个类之间依赖的管理容器,大家都知道,但我们中很多人都仅仅停留在使用的层面,但spring本身具有极大的研究价值,所以在使用了几年spring之后,还是想深入的探究一下其根源。记录于此,愿与各位共享。spring有很多功能模块,从spring的官网doc我们可以看到其分了29个部分,当然主要内容是从chapter 5 IoC开始的。现在来说明一下接下来要各个部分,我们要分析的内容。对于每个大的模块,我们会深入分析各个模块的源码,深入理解这些实现方式,并通过scala来实现一个山寨的框架,用Scala是不想直接抄袭,可以说是照葫芦画瓢。刚刚说了,spring是个大集成,她不仅仅有设 阅读全文
posted @ 2013-11-19 21:44 eric_chen 阅读(1770) 评论(1) 推荐(0) 编辑

How to implement multiple constructor with different parameters in Scala

摘要: Using scala is just another road, and it just like we fall in love again, but there is some pain you will have to get, and sure we deserve that to achieve the goal we want.In Scala, there is kind of constructors named auxiliary contructor, which have the special properties:On the first line of the c 阅读全文
posted @ 2013-11-16 23:28 eric_chen 阅读(480) 评论(0) 推荐(0) 编辑

一致性hash演示

摘要: 看到点关于一致性hash的说明,觉得挺有意思,就想体验一下。上代码看看,体会一下在一致性hash环境下的cache和获取。因为是小代码演示,没有很细致,包括hash函数就是用取余操作,但活生生的显示出来一致性hash环境下,增减服务器对hash分布的影响(关于这个演示,要靠手工尝试)。 1 package com.test.algorithms; 2 3 import java.util.Arrays; 4 import java.util.HashSet; 5 import java.util.Set; 6 7 8 public class ConsistentHash... 阅读全文
posted @ 2013-06-27 22:56 eric_chen 阅读(901) 评论(0) 推荐(0) 编辑

搜索引擎lucene实现--二半吊子的论调之Document和Field

摘要: 本来打算先写写analysis包,因为那个组件包是基础。但写着写着就觉得没有入口的说明,就跳到那一部分实在对不起自己和各位的理解。于是咱就先看看Document和Field,这两个用于索引和查询的数据结构。我们大多数人用过数据库,知道一个表里面的一行。如粗糙的下图所示:这个是关系型数据库的典型存储方式。我们在进行数据查询的时候,也是提供字段值或者是模式等条件。那么lucene作为一个全文检索的解决方案,从表面来看,也是类似于关系型数据库方式。它为我们提供了统一的数据索引接口(IndexWriter)和查询接口(IndexSearcher)。在我们这次要说明的Document和Field,我们也 阅读全文
posted @ 2012-11-25 15:59 eric_chen 阅读(5024) 评论(2) 推荐(1) 编辑