- 博客(34)
- 资源 (2)
- 收藏
- 关注
原创 VO(DTO)模式在分层架构设计中是否需要的扯淡
VO(DTO)模式在分层架构设计中是否需要的扯淡<br /> Peter Wei<br /><br /><br />引子:<br /><br />前两天,在内部讨论中。公司有一开发人员向我抛出问题:我们Web层和App应用层用DTO(VO)对象,没有直接用PO,你有什么好的建议?我自然知道他说这句话的意思,PO到DTO(VO)的不停转换,太麻烦,增加太多工作量了。因为我是负责做架构的,他是想让我向上面CTO反映取消掉DTO对象。但现有的架构是原先就有的,而且在一定程度上,我也认为需要用DTO对象。所以最终没
2011-04-23 20:14:00
8260
5
原创 Domain Object贫血vs富血(DDD)和spring roo到ruby的扯淡
引子:前几天,小胖和我说他们公司CTO批他了,说他写的代码不够OO,不够DDD。细问才知道他们CTO在推DDD(领域模型驱动设计).我当时给他的观点是,JavaEE应用是天生贫血的,并不能像ruby之类的语言做到很好的富血,做到DDD。因为这些观点也是N年前讨论过的问题,我记得冒似robbin当年还下过定论:Java天生是贫血的。所以有了ruby之流做RAD快速开发。但当seam到spring roo的出现与完善,富血DDD在Java里也变得可行起来(此论言之尚早,拭目以待)。我以前也和别人争吵过哪个更好,
2011-04-16 22:27:00
3202
转载 时间管理的40项准则
<br />最近在做很多事情,总感觉时间不够用。陪女朋友、系统的架构设计、新技术的研发、读书、写博、练口语等,实在太多事了。虽然收获很多,但实在有点精疲力尽了。于是查了一下关于个人时间管理的知识进行学习。<br />内容如下:<br />“不善于支配时间的人,经常都感到时间不够用”。这一句话具有相当的真实性。但是,怎么样才能善用时间呢?这是过去十几年来时间管理专家所试图解答的一个问题。底下的一份自我测验表总共搜集了四十道题目。所有这一些题目的正面答复皆表示时间管理专家所倡议的“有效的时间管理准则”,至于它们
2011-04-16 13:25:00
637
原创 CXF调用.net webservice之any 元素
CXF调用.net webservice之any 元素 这两天工作之余帮前公司的小弟调一个比较恶心的Web Service问题。是CXF Java客户端调用.net Web Service的接口。接口返回类型是复杂类型,而且是 type,这个类型比较变态,cxf的wsdl2java不能很好的转换该类型。请看详请。 接口Wsdl主要内容展示:- xmlns:tm="http://microsoft.com/wsdl/mime/textMatching/"xmlns:soapenc="http://sch
2011-04-13 23:40:00
2764
转载 5 Technology Predictions for 2011
<br />转自:http://www.dcs-media.com/Archive/5-technology-predictions-for-2011-PE<br />Let's get started on the predictions:Small Businesses will focus more on personalizing their sites to local mobile users.<br /><br />Think Local, Act Global. Since Google w
2011-04-10 03:14:00
517
转载 风雨20年:我所积累的20条编程经验
编者按:原文作者乔纳森·丹尼可(Jonathan Danylko)是一位自由职业的web架构师和程序员,编程经验已超过20年,涉足领域有电子商务、生物技术、房地产、医疗、保险和公用事业。正如乔纳森在文中所言,本文适合刚毕业的大学生和刚入门的程序员。如果你已是高级开发人员,或许你能在本文中看到自己的身影。从11岁时,我就一直在编程,并且一直都很喜欢技术和编程。这些年来,我积累了一些艰难又容易的经验。作为一名程序员,你或许还没这些经验,但我会把它们献给那些想从中学到更多的朋友。我会持续更新这些经验,我可能还会有
2011-04-10 02:52:00
407
原创 @Transactional-隔离级别-二级缓存的扯谈
引子今天下班后,以前同事小胖问我Spring Service类中的注解@Transactional readOnly=true的作用。做为他眼中的高人,我自然要装下A-C。居然想都没有想就说是注解事务控制,然后给他扯了一通数据库的隔离级别,什么read uncommit之类的,说readOnly是隔离级别最低的,在spring查询方法里用,性能最高。 ps:之前的项目多数基于xml,亲自用annotation的机会很少,都是小弟们在实战。 示例:Java代码 @Component("channelSer
2011-04-07 23:42:00
2980
转载 Redis几个认识误区
Redis几个认识误区Saturday, Dec 4th, 2010 by Tim | Tags: key value store, redis<br /><br />前几天微博发生了一起大的系统故障,很多技术的朋友都比较关心,其中的原因不会超出James Hamilton在On Designing and Deploying Internet-Scale Service(1)概括的那几个范围,James第一条经验“Design for failure”是所有互联网架构成功的一个关键。互联网系统的工程理论其
2011-04-06 03:18:00
415
转载 MemcacheDB, Tokyo Tyrant, Redis performance test
MemcacheDB, Tokyo Tyrant, Redis performance testTuesday, Aug 11th, 2009 by Tim | Tags: English, memcachedb, redis, tokyo cabinet, tokyo tyrant<br /><br />I had tested the following key-value store for set() and get()MemcacheDB, use memcached client protoco
2011-04-06 03:11:00
883
原创 可扩展架构之用户规模影响设计
看了timyang的qcon2010演讲内容后,做下备忘记录。 用户规模影响设计,具体是指用户数每上一个数量级,许多设计需要重新考虑。 10万用户级别 单服务器,前端、后端、cache、db在一起。 百万级 db和cache单独部署服务器,db或按业务进行拆分(sharding) cache或使用一致性hash扩展。 前端后端还是在一起,但是根据业务
2011-04-05 21:28:00
512
原创 PostgreSQL8.4安装小结
最近在使用concourseconnect(Java开源SNS社交网络平台),需要安装PostgreSQL数据库,装了几次没有成功,一翻折腾才成功。 <br /><br />做一下小结:首先要把防火墙和杀毒软件先关闭,然后再安装。 <br /><br />PostgreSQL 安装报错 Error reading file postgresql.conf 的解决办法: <br />安装报错(最后一步报错:Problem running post-install step. Installation may
2011-04-05 21:24:00
2502
原创 并发编程一波流之CyclicBarrier
<br />并发编程一波流之CyclicBarrier<br />Peter Wei<br /> <br /> CyclicBarrier介绍<br />一个同步辅助类,它允许一组线程互相等待,直到到达某个公共屏障点 (common barrier point)。在涉及一组固定大小的线程的程序中,这些线程必须不时地互相等待,此时 CyclicBarrier 很有用。因为该 barrier 在释放等待线程后可以重用,所以称它为循环的 barrier。CyclicBarrier支持一个可选的Runnable命令
2011-03-30 19:46:00
618
原创 UML类图与类的关系详解-UML一波流系列
<br />UML类图与类的关系详解-UML一波流系列<br />Peter Wei<br /> <br /> <br />在画类图的时候,理清类和类之间的关系是重点。类的关系有泛化(Generalization)、实现(Realization)、依赖(Dependency)和关联(Association)。其中关联又分为一般关联关系和聚合关系(Aggregation),合成关系(Composition)。下面我们结合实例理解这些关系。基本概念<br />类图(Class Diagram):类图是面向对象系
2011-03-29 22:36:00
574
原创 Ubuntu10和VirtualBox4实用总结-常用Java Web应用软件 (LNMJ,LAMJ)安装
<br />本文主要总结了在Ubuntu10下常用Java Web应用软件的安装,特别是LNMJ Web(Linux+Nginx+Mysql+Java Tomcat)架构和LAMJ Web(Linux+Apache+Mysql+Java Tomcat)架构下的软件安装。为进一步配置和实现LNMJ和LAMJ架构(负载均衡与集中式Memcached集群)进行前期准备。本文记录了安装过程经常出现的错误,并提供了解决办法,具有很好的实用性,是居家旅行必备之良品。<br />主要内容有:<br />VirtualBo
2011-03-28 02:25:00
1464
原创 Ubuntu10下SSH2协议安装
Ubuntu10下SSH2协议安装<br />SSH2是一套安全通讯协议框架(早期的SSH1由于存在安全漏洞,现在已经不用了),基于SSH2协议的产品目前主要有openssh,putty,SSH Secure Shell Client等。安装了SSH2后,我们就可以通过Secure CRT连接服务器了。ubuntu10默认安装openssl.检查和安装ssh<br />dpkg --list|grep ssh<br />//如果有openssh-client 和openssh-server,就不再需要再安装
2011-03-28 02:13:00
2429
原创 Ubuntu10下Subversion安装
Ubuntu10下Subversion安装自动安装<br />我是通过apt-get install方式安装。如果没有网络可以先下载tar.gz包,然后通过手工make安装。<br />sudo apt-get install subversion<br />Do you want to continue [Y/n]? y<br /> <br />//检查subversion是否安装成功及是否运行<br />dpkg --list|grep subversion<br />ii subversion
2011-03-28 02:10:00
575
原创 Ubuntu10下中文输入法安装
Ubuntu10下中文输入法安装界面安装<br />如果不在ubuntu10下办公,只是用来做服务器或者练手,不推荐安装,下载安装过程太慢。网速快,请直接无视。不用命令行了,有点审美疲劳,哈哈。<br /><br /><br /><br />选择安装Install Languages.选中scim.成功后Apply.<br /><br /> <br /><br />Ctrl(我的是右边的)+Space<br /><br /> <br />命令行安装(其它输入法)<br />需要其它中文输入法,可以这样<br
2011-03-28 02:07:00
569
原创 Ubuntu10下Eclipse3.6安装
Ubuntu10下Eclipse3.6安装下载eclipse3.6 for Linux的版本<br />http://download.springsource.com/release/ECLIPSE/helios/R/eclipse-SDK-3.6-linux-gtk.tar.gz解压缩,移动到安装目录<br />tar(z-用 gzip 对存档压缩或解压;x-从存档展开文件;v-详细显示处理的文件;f-指定存档或设备)<br />cd /home/guangbo/soft<br />tar -zxvf
2011-03-27 07:12:00
539
原创 Ubuntu10下Apache-2.2安装
Ubuntu10下Apache-2.2安装<br />我是用非root登录,所以要sudo,要不然很多命令没法执行。下载httpd-2.2.16.tar.gz,解压并编译安装<br />tar –zxvf httpd-2.2.16.tar.gz<br />cd httpd-2.2.16<br />./configure --prefix=/usr/local/apache2.2.16<br />make<br />//现在可以在PREFIX目录(参见上述的--prefix参数)下安装了,执行:<br />
2011-03-27 07:04:00
624
原创 Ubuntu10下Mysql-5.1.56安装
Ubuntu10下Mysql-5.1.56安装创建mysql用户和组<br />sudo groupadd mysql<br />sudo useradd -r -g mysql mysql<br />Note:<br />-r option to create a user that does not have login permissions to your server host. Omit this option to permit logins for the user。<br />-g:指定用
2011-03-27 07:00:00
710
原创 Ubuntu10下Memcached1.4.5安装
Ubuntu10下Memcached1.4.5安装<br />Memcached是高性能的分布式内存缓存服务器。一般通过缓存数据库查询结果,减少数据库访问次数,以提高动态Web应用的速度、提高可扩展性。Memcached常用于存放对数据库操作的结果集以及session信息。所以这个也要装备。安装libevent2.0.10<br />这个是装Memcached1.4.5的前提条件。Ubuntu10已经有libevent1.4的了,可是版本过低。<br />改名-解压-编译安装<br />mv libeven
2011-03-25 00:35:00
503
原创 Ubuntu10下JDK1.6安装
Ubuntu10下JDK1.6安装<br />把下载的jdk-6u24-linux-i586.bin文件copy到你想安装的路径。<br />我们的应用程序一般放到/usr/local目录下。新建目录,复制文件<br />sudo mkdir /usr/local/java <br />sudo cp /home/guangbo/soft/jdk624.bin /usr/local/java/jdk624.bin安装jdk <br />chmod说明(u:与文件属主拥有一样的权限[a:所有人];+:增加权限
2011-03-22 03:45:00
460
原创 Ubuntu10下Tomcat7安装
Ubuntu10下Tomcat7安装解压和copy目录到工作目录<br />我们的应用程序一般放到/usr/local目录下。解压gz包,其实可以直接使用windows下的tomcat7目录,可以通用,我是复制windows下的,没用gz包。<br />命令说明:<br />tar(z-用 gzip 对存档压缩或解压;x-从存档展开文件;v-详细显示处理的文件;f-指定存档或设备)<br />cp(R-递归copy目录和文件)<br />tar -zxvf apache-tomcat-7.0.2.tar.g
2011-03-22 03:42:00
532
原创 Ubuntu10下Nginx-0.8.54安装
Ubuntu10下Nginx-0.8.54安装下载nginx-0.8.54.tar.gz,解压并编译安装命令说明:tar(z-用 gzip 对存档压缩或解压;x-从存档展开文件;v-详细显示处理的文件;f-指定存档或设备)tar –zxvf nginx-0.8.54.tar.gz进入相关目录./configuremakesudo make install你要运气好的话,一切ok,不过相信没有人运气好的,哈哈。Ubuntu默认的策略是什么库都不装,依赖的库都需要自已手工安装搞定。估计CentOS等linux会
2011-03-22 03:36:00
1036
原创 精通有状态vs无状态(Stateful vs Stateless)
精通有状态vs无状态(Stateful vs Stateless)—Immutable模式之姐妹篇Peter Wei我相信有不少人还不明白有状态和无状态(Stateful and Stateless)的概念,那么我们今天就来谈谈有状态和无状态,一方面不断总结提高自我,另一方面兼扫盲。这是Immutable不变模式的姐妹篇,大家可以参照着读。Immutable不变模式的分析blog:http://www.javaeye.com/topic/959751 基本概念:有状态就是有数据存储功能。有状态对象(Stat
2011-03-13 20:13:00
3556
原创 设计模式之不变模式(Immutable Pattern)分析
不变模式(Immutable Pattern)分析Peter Wei最近老有人问我不变模式,我其实也是一知半解,于是花了一些时间进行学习总结,分析了一下不变模式(immutable pattern),和大家一起分享。说得不对的地方欢迎拍砖,谢绝谩骂。不变模式(immutable pattern)一个类的内部状态创建后,在整个生命期间都不会发生变化时,就是不变类。这种使用不变类的做法叫做不变模式。不变模式有两种形式:一种是弱不变模式,另一种是强不变模式。弱不变模式:一个类的实例的状态是不可变化的,但是这个类的
2011-03-13 11:39:00
1670
原创 UML用例图之泛化(generalization)、扩展(extend)和包含(include)关系--UML一波流系列讲解
Peter Wei在画用例图的时候,理清用例之间的关系是重点。用例的关系有泛化(generalization)、扩展(extend)和包含(include)。其中include和extend最易混淆。下面我们结合实例彻底理清三者的关系。基本概念用例图(Use Case Diagram):用例图显示谁是相关的用户,用户希望系统提供什么服务(用例),以及用例之间的关系图。用例图主要的作用是获取需求、指导测试。用例图的4个基本组件:参与者(Actor)、用例(Use Case)、关系(Relationship)和
2011-03-13 02:34:00
9832
4
原创 基于mod_proxy+Apache 2.2.16+Tomcat 7的负载均衡与集群配置
基于mod_proxy+Apache 2.2.16+Tomcat 7的负载均衡与集群配置Peter Wei周日晚和GF的老乡们喝了五粮液,导致周一起不了床,只好请假在家睡觉。白天睡了半天,晚上自然睡不着觉。正好现在的项目中也用到了负载均衡和集群的东西,虽然有新手贴的危险,但还是手痒,决定写点东西,以备不时之需。也希望能对大家有所帮助。 第一章. 背景简介对于大多数企业应用,都希望能做到7*24小时不间断运行。要保持如此高的可用性并非易事,比较常见的做法是将系统部署到多台机器上,每台机器都对外提
2010-09-07 07:23:00
905
原创 Scrum学习小记
Scrum学习小记这几天看了《硝烟中的Scrum和XP》,感觉不错,做下备忘。 一. 什么是ScrumScrum是一种迭代式增量软件开发过程,通常用于敏捷软件开发。包括了一系列实践和预定义角色的过程骨架。Scrum中的主要角色包括同项目经理类似的Scrum主管角色负责维护过程和任务,产品负责人代表利益所有者,开发团队包括了所有开发人员。 二. Scrum名词Backlog: 可以预知的所有任务, 包括功能性的和非功能性的所有任务。Sprint:一次跌代开发的时间周期,一般最
2010-09-04 04:15:00
1122
原创 Java分布式之RMI实例教程
Java分布式之RMI实例教程<br /> <br /> <br />Peter Wei<br /> <br />2010-8-22<br /> <br /> 前言<br />最近的联通项目,下一阶段可能会涉及到和各省间的RMI接口,所以总结一下09年中国移动自动拨测系统用到的RMI技术,以备不时之需。同时也给广大初哥提供一些学习资料,哈哈。前几年,一直忙于项目,没怎么做系统总结。以后计划写一些以前项目用过的Java分布式技术实例教程,如:RMI、Socket、Mina、SNMP、SOAP、Web Serv
2010-08-22 02:59:00
920
原创 JDBC Statement PrepareStateme和Batch性能小测
今天在Javaeye论坛上看到有位网友得出结论:主题:Hibernate性能 - 30倍普通SQL操作 - 探讨 地址:http://www.javaeye.com/topic/743613 .贴子中说JDBC测试插入10000条数据花费时间:Total spent 249531毫秒.而且贴子还说:这个时间我觉得是比较合理的执行一条SQL花费25毫秒左右,之前有关效率方面的测试和这个结果差不多。 不知他在什么配置情况下操作。因为结果是4分多钟。对于此结论很是惊奇,因为以前做过数据同步的
2010-08-21 17:02:00
1142
原创 项目开发管理务实总结
<br /> 项目开发管理务实总结<br /> <br /> <br /><br />2010-8-21<br /> <br /> 最近在带几个小组成员进行项目开发,为了避免09年在广西联通项目带队犯过的错误,及时做一下总结记录,以便时时提醒自已不要犯同样的问题。一、 重点关注<br />1:需求捕获与分析<br />2:任务分解<br />3:工作量估算<br />4:任务优先级划分<br />5:资源获取及授权<br />6:项目进度跟踪<br />7:突发问题处理二、
2010-08-21 04:08:00
658
1
原创 Eclipse换成3.1M7。
用了半年的Eclipse3.01,了,换换新的了。哈哈,刚下载完,不知好不好用。lomboz3.1装不上,所以不能用了。开发不了j2ee呀。哈哈.:-大家能装上吗?
2005-06-05 00:28:00
916
基于mod_proxy+Apache_2.2.16+Tomcat_7的负载均衡与集群配置
2011-03-22
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人