`
iamlotus
  • 浏览: 108490 次
  • 性别: Icon_minigender_1
  • 来自: 上海
文章分类
社区版块
存档分类
最新评论
文章列表
开始看infoq的mini book时,我以为这不是个问题。Entity就是有主键的对象,Value Object就是immutable class, so easy. 然后就越看越糊涂了。糊涂在于Value Object究竟是个什么东西:按书中所说,Value Object最好是immutable class, 但在某些情况下,比如修改非常频繁,或者创建/删除对象代价很大,也允许mutability。那么,一个mutable Value Object和Entity 对于使用者又有什么区别呢? 如果Entity和Value object区别在于mutability上,使用者只要看看这个cl ...
对DDD,之前看过info的mini book,也看过jdon上很多帖子,javaeye上的好像倒不是很多。一直对一些地方想不通,google的结果也是千奇百怪,想想干脆看看Eric Evans原书吧,就去卓越上买了本(本来是在当当下单的,那个物流...不说了)。 应该说Evans这书是真正写给作项目的人看的,很多地方讲的蛮细,读来受益颇深。 今天先说说ubiquitous language 这个ubiquitous language中文好像是翻作“通用语言”,我觉得倒不如google机器翻出的“无处不在的语言”更能表意。一个项目时间长了(>5 year)后,CR越来越多,业务范围越来 ...
我的环境 英文windows xp location :United states language for non-Unicode program: Chinese(PRC) tomcat 6.0 struts2-core-2.2.1   网上关于struts file upload/download的文章好多地雷。在我的环境中,花了一个星期才把struts2下上传下载都调好,以下是一点经验。   1)使用缺省的jakarta上传空文件会抛出NullPointerException,你可以自己捕捉FileNotFoundException然后自己给一个空的byte[],也可 ...
以前chrome刚出来的时候试用过一次,今天又试了一次。不得不承认chrome确实很快,但我还是决定继续用我的maxthon和firefox。 为什么呢?说来很简单,第一次是因为那时chrome没什么插件,对用惯了超级手势的我来说关页面还要去点那个叉叉实在太麻烦了。这次找到超级手势和拖拽的插件了,但是... ...找不到把标签页放到屏幕下端以及把new page放到左边的方法,google了也找不到。我不愿意为了它改变我这么多年的使用习惯,如此而已。 这点其实真的很小,但每一个对于开发者的小点对于用户可能都是一个大点。作为开发者,足以为鉴。 不过,我想我还是会再试试chrome的,如果它能 ...
有两个Module, ModuleA/ModuleB,如果ModuleB的test中引用到ModuleA/test中的类,那么Junit运行时就会报java.lang.NoClassDefFoundError。如果ModleB在test中引用的不是ModuleA/test中的类,而是ModuleA/main中的类就没有问题。 google了一下,似乎是Maven在解析dependency时不包括test scope的问题。也不清楚是不是hit了这个bug ,但那个bug的status应该是在05年就fix了啊。 现在没时间详细研究,解决方法就是先把那个出问题的类从/test移到/main中 ...
自从有了接口的概念后,OO编程都推荐面向接口编程。根据“如非必要,勿增实体”的原则,通常我们定义(或重构出来)的接口都是有行为的,很少用空接口。那么空接口有什么用呢? 一个接口定义了两方面,类别和特征。比如 public interface Animal{ void eat(); void sleep(); } 定义了类别Animal,它的特征是:可以eat和sleep。如果我们不关心sleep,这个接口就变成 public interface Animal{ void eat(); } ...
公司推行SCRUM有一段时间了,一直想把自己的想法整理一下写点东西,正好看到了这个帖子http://www.iteye.com/topic/748985,参与进去进行了讨论。把自己的回帖贴在这里,基本能完整表达我对SCRUM的看法。     简单一句话,我认为SCRUM不是一个拥抱变化的软件方法。     写道 topgun 写道 先不跑题,说说我们实践过的几种进度反馈方式: 站立会议,不说了 腾讯群,不知道有多少人用过,我们是在培训一些实习生时发现的,几个实习生建了一个群,在里面交流,后来我也加入群,可以及时了解他们的情况,也可加以指导,腾讯群有记录可以查询,可以方便的截图,可以群发 ...
一般都认为Oracle中应该尽量把权限赋予角色而不是用户,这样管理和修改起来都比较方便。 我一直认为这里面没啥区别,不过今天遇到一个例子,才发现在PL/SQL中赋予角色的权限是被屏蔽的。也就是说即使当前用户所属的角色具有某个权限,在PL/SQL中也是没用的,必须显式赋予用户权限才行。 例子如下: C:\Program Files\H2\bin>sqlplus sys/123456 as sysdba; SQL*Plus: Release 10.2.0.3.0 - Production on 星期一 8月 9 16:37:43 2010 Copyright (c) 1982 ...
   最近在看《Expert one on one Oracle》第一版,Tom Kyte在《Tuning Strategies》这章举了个他实际例子说明如何针对性地设计DB。这个例子是个很实际的需求,并随着时间发展总结出了更好的作法,在这里分享一下。     这个例子用一句话简单描述就是“综合搜索”。假定有N张表,每张表上有许多字段,这其中我们只关心某些字段,需求是用户输入某些线索,系统列出所有匹配的记录。比如,用户在综合搜索框中输入"tom",系统可能返回创作者为"Tom Wang"或更新者为"Tommy"的单据,也可能返回Ema ...
recursive calls: Oracle自己偷偷执行的,不去关注 db block gets: current read,直接读buffer consistent gets: consistent read,读rollback segment中Undo后读 physical reads:read from disk   因为logical reads=current reads+consistent reads=physical reads+ non-phisical reads 所以hit ratio= 1-physical reads/logical reads=1- ph ...
http://my.oschina.net/javagg/blog/3322 有一篇描述了如何在H2内存数据库中部署MixMode模式。在这个问题上我先试错了半天,这里总结一下遇到的几个坑   1)为了部署MixMode模式,embeded 那个节点必须启动一个TcpServer,否则其它节点无法通过:tcp://...访问此节点 如下代码 Server server = Server.createTcpServer(new String[] { "-tcpPort", "9101" }); server.start(); ...
nested table是Oracle所特有的一种实现,作为被Oracle收购了的OR-Mapping工具Toplink,自然也应该对其提供支持。但是在寻找这个的过程中,又一次深深体会到了Toplink文档的稀少(OTN,也只有OTN)以及语焉不详(我就不信有人看着官方文档能调出来的)。为以后起见,这里记录一下吧。   假设有以下的nested table:   CREATE OR REPLACE TYPE STUDENT_TYPE AS OBJECT ( STUDENT_ID NUMBER(4), STUDENT_NAME VARCHAR2(10) ); CR ...
到目前为止我们有了一套从Object自动生成Map<String,Object>的工具,下面要作的就是把这个Map中的信息给持久化了,依照不同的持久化方式和后继对删除对象的查询方式,这又有着不同的solution。比如持久化到文件系统和数据库,显然要用不同的方式。 目前这个系统采用的是数据库,OR-Mapping用的是Toplink。对于删除的数据,在前台有能够查询的界面,可供业务人员查询。针对这样的需求,需要解决以下的几个问题。 首先,在何处获得被删除的对象?BaseDao.deleteObject(Object obj)似乎是一个不错的入口,可惜的是,Toplink对于pri ...
自动删除,我们要作的事有三件  1) 如何从要删除的Domain对象中获得需要备份的信息M  2) 这个信息M如何持久化  3) 持久化的数据如何查询。   后两者其实有多种选择,比如可以持久化到文件、数据库或者数据库+文件,随着持久化介质的不同,查询机制也不一样。这里首先讨论第一个方面。 为了作一个通用的框架,希望能通过meta data的方式简化收集信息的过程。那么就有三种方式可供选择:interface,annotation && XML,这也是目前广泛应用的各种框架如Spring,Hibernate等提供的方式。这其中,interface可以实现比较复杂的逻辑 ...
   应用和Framework最大的不同在于写Framework都是你在提要求,应用中则有那些让你猛然一惊的需求,即所谓“业务特点”,你还真都得去满足。比如下面这个:        对于系统里的重要对象,要能够看删除记录,知道是谁删 ...
Global site tag (gtag.js) - Google Analytics