`
hatedance
  • 浏览: 60613 次
  • 性别: Icon_minigender_1
  • 来自: 杭州
文章分类
社区版块
存档分类
最新评论
文章列表
开发效率和性能总是死敌。 一个技术,基本上要么开发效率低下但性能超好,或者开发效率提高但性能下降了。 je上最近的2个帖子,其实都是在讨论一个问题,到底是性能优先还是易用性优先。(rpc or norpc,hibernate or jdbc) 我看到很多人都选择性能优先。 其实这个问题很简单,选择性能优先的选择norpc,jdbc,甚至存储过程。 倾向开发效率的人往往选择rpc,hibernate。 同类的选择还有stateless or stateful.spring的作者rod johnson一开始也曾鄙视stateful ejb,理由是性能太差。不过后来他也承认stateful ejb有其 ...
对于ddd,曾经有很多的争论,到底该选择贫血,充血,还是失血?我看了N多帖子,似乎都没有结论,中庸的人说了各种模型的优缺点,似乎是没有答案。 昨日看Pro Spring一书,2005年版的,书中早已给出了答案。 原则就是domain对象不依赖非domain对象。 什么意思呢,即domain对象不能依赖service,DAO等对象。然后尽可能的把职责落实到domain对象。 比如save方法,不应该赋予domain对象,因为要调用DAO对象,所以赋予service对象就可以了. addOrderItem(Item item)方法应该赋予domain对象,应为item参数也是domain对象。 遵 ...
狭义的序列化,我们认为是存在于object和字节流之间的。而字节流我认为有分为binary 和 string。文本文件或者xml文件就是字符串流。 所以,如果我说object和xml之间的转换也是序列化,没什么人会反对。 然后我想广义的理解序列化,比如HTML页面,既可以认为是字符串流,那么它对应的对象是什么呢?DOM。和XML一样,HTML也有Document Object Model. 再讲到asp.net里的webform呢?webform是比HTML DOM更加抽象的基于组件的界面模型。一个webform里的组件,可能是多个html tag组成的。这2者之间是什么关系呢?是不是也是序 ...
用Spring很久了,但是一直作为一个用户而已,未曾认真的研究其原理。说起来就是Ioc和AOP,外加很多集成工具。 今天碰到一个问题,发现调用自身的函数不会被AOP拦截。在javaeye找到一个帖子,说明了根本原因:spring的aop采用的是代理模式。所以调用对象自身(this.foo())的函数就避开了代理对象,所以aop失效了。我想Spring早应该把这一点写在文档里,而不是号称AOP如何如何。 记下来免得以后又忘记。
因为我自己要找工作,于是借用51job统计了一下java职位的分布,并用excel排序了一下。 顺便给广大IT民工做个参考。基本上分3个级别,我做了分隔。 city jobs 北京 4306 上海 3788 ------------ 广州 1323 深圳 1292 杭州 1291 ------------ 南京 625 成都 591 武汉 449 西安 377 大连 306 苏州 250 重庆 181 天津 138 长沙 132 宁波 63
这里只针对play的参数验证机制做讨论。 引用save(@Required String name,int age); play框架里允许用annotation表达验证。 联想开来,任何类的方法其实都可以这么做,包括DAO,Service层。 我们可以发明各种annotation用于验证,比如: 引用 NotNull, IntegerBetween(1,100) RegExp("\d+") 。。。etc。 然后配合AOP。 这样一来,我们就不必在函数的开头写 引用 if(name==null)   throw new NullPointException(); if(a ...
刚刚看到一则介绍HTML5的近况的博文,显然比几个月前的情况又强大了许多。 引用  ◆二维绘图API,可以用在一个新的画布(Canvas)元素上以呈现图像、游戏图形或者其他运行中的可视图形。 canvas, pixel draw   ◆一个允许web应用 ...
当用户说要有增删改功能(前提是表结构已经设计好了)。 几乎所有的程序员都明白了这个需求的全部含义。然后埋头干活去了。往往开发的代码数量远远大于3行。可能做了30天。 为什么需求描述和实现的工作量如此不对称呢? 仔细分析之后,发现问题在于:需求里的词汇非常抽象,属于专业词汇。而开发平台是非常通用的,2者不在一个抽象层次。 假设存在一个相应的开发平台,那么,开发也就非常简单,简单到在增删改3个复选框上打勾而已。 用户的需求可能是任意的。这里的任意指抽象层次。比如在那个3字需求之上,又要求字体用宋体。或者又要求在内存256的机器上运行。…… 显然,上述要求,或者说约束是属于不同抽象级别的。我们假想的 ...
本来我是不打算看这个《代码大全》的,同理,也不想看《effective java》的。总觉得我的目标是做个架构师,做设计。这2本书显然是以coder为对象的。 不知道为什么,我还是决定拿起来随便看看。才看了个头,就觉得很值了。 me ...
当然,我没有机会去亲历google io。我是从其网站上看的视频。 google依然很明显的表达着用web取代os作为客户端应用开发平台的野心。 1 其chrome浏览器最近能利用3d引擎,利用gpu,说明3d游戏可以在浏览器里开发了。 2 google和apple在推的html5。关键一点是将拥有画布元素。有了画布,一切将皆有可能。我们完全可以用js构建出一套又一套的组件模型框架,类似swing之类的东西。不必使用标准组件的同时,也失去了标准的好处。 3 我没有看到任何对web服务器方面的增强。 我觉得新增的几个tag,比如video,db,canvas,其实从技术上都不是什么新东西。这些 ...
今天在画类图的时候,想到一本书里讲过:“如果你要增加灵活性,就增加一层,反之亦然”。 它这句话的意思很好理解,比如: A-B 2个实体对象是一一对应的,一旦你想增加灵活性,就在AB之间增加一个C。C是映射AB关系的实体。 上述的实体可以是表,对象,或者任何数据。 我觉得这句话真的很精辟。令我联想到我们身上的DNA。类图其实就是一种很类似DNA图的东西。我们搞计算机软件建模的人,最终都是要在内存里复制一个现实世界的无限接近版本。 所以,上述实体还可以是原子,分子,蛋白质,。。。
最近眼看着老婆玩开心网玩得很投入。很多人半夜起来偷人家地理的花花草草。已经达到疯狂的境界。她和她的朋友们会在半夜以后的任何一个时间里起床上线。 作为一个有经历的老游戏迷,我告诉她,“你需要一个外挂,有了它,你就不必半夜起床了。”作为一个菜鸟,她不知道外挂是什么。我告诉她就像一个机器人,会自动帮你停车偷菜。我不知道现在是否已经有开心网的外挂产生了,但我很肯定有市场就有人去做。我只是没想到,开心网其实是一个网游。 然后,作为一个职业程序员,我竟然把外挂和自动化功能测试联系到了一起。只是2者的目的不同,但东西却是一样的。理论上,内挂被泄露出去,被用户用了,就是外挂了。
今天突然想到WEB开发还有一种方式似乎还没有人搞过。就是把客户端的DOM搬到server端,即java版的DOM。然后,就像ORM把数据库映射到java里。咱来个Object Markup Mapping(OMM)。然后,就像用jquery之类的办法去修改页面,得到需要的动态页面。 我详细一点说,就是: 先有一个静态的html文件。 然后有一个工具,把html解析起来,得到内存中的DOM。 然后,根据类似jquery的selector的思路,去调整页面的动态部分。 最后,这个DOM自然可以随时输出对应的html文本,返回到客户端。 如果由此基础上继续前进,很可能引入比DOM更高级的界面组件, ...
来JE也有一段时间了,基本上对这个论坛还是很满意的。 出于爱心,现提几点想法: 1. 论坛里设置的“赞同/反对”功能似乎很少有人使用。设置这个功能的初衷肯定是好的。为什么大家都不用呢? 2. 论坛的新帖似乎不多,老是拿一些老贴反复深入的探讨。 3. JE已经有了每月热点推荐,这很好,能不能更进一步,推出视屏版的专家点评呢?比如robin及其他专家高手大牛每月/每周,坐在摄像机前点评热贴。然后JER们去土豆或者下载来看。 我个人还是更喜欢树状结构的回帖。这样就少些引用,谁回复谁是很明白了。有了树状结构以后,大家是不是会更有意识去投“赞同/反对”票呢?我觉得很有可能。 以上想法基本是基于我对d ...
最近同事想通过自定义函数来输出国际化文字。比如: ${my:i18n('login.userid')}. EL支持我们自定义这样的函数,问题是这个函数没法获取request对象,不知道当前页面的语言。 由此我想到threadlocal也许可以解决这个问题。 我的思路是 ...
Global site tag (gtag.js) - Google Analytics