只显示主题贴
最近研究了一下 rails的cache设计,发现其中一些不尽如人意的地方:
* cache expiry 编写繁琐
* 分页缓存的清除,现有cache实现的支持都不是很完善
* 在一次清除大量缓存的时候,脏数据读的问题。
我查阅了一些blog以及相关的文章,从他们的抱怨和设计中得到一些启发,我觉得cache可以做得更好,更智能,更能够减少开发人员的工作量。 下面是我设计思路的一些草稿,如果深入分析,觉得可行的话,就可以动手做他:
* 支持 cache 分组。
* 支持简化的expiry rules
* 适当的设计减少一次清除大量缓存时脏数据读的概率和时间窗
* 仅考虑me ...
- 进入论坛 Ruby 版
上次展开了一次热烈的 domain model 的讨论 ( http://www.javaeye.com/topic/57075 ) ,其中robbin采取了一种非常好的讨论方式:
拿出ruby 的model , 然后打擂台,看谁能够用java 写出 简洁的,和ruby差不了多少的model.
nihongye给出的 基于JPA的 domain model赢得了一片掌声,我接着nihongye的思路,在最近的一个小项目作了一次尝试,就着他的思路作了一些改动。 具体的改动如下:
* 在Context上增加一个 EntityManagerLoo ...
- 进入论坛 Java 版
* 理解用户真正想要什么了吗?真正的需求已经清楚了吗?
答:不清楚? 那么请回到需求分析人员那里问清楚。
* 这个接口合理吗? 如何验证其合理性?
答:先用TDD从最外层的需求构思这个接口(方法名,参数,返回结果)
* 为什么测试如此难写?
答:从功能需求驱动测试代码的编写,何来如此难? 如果果真如此,那是否可以细分需求呢?
* 一个需求的功能如此复杂,如何让测试尽快通过?
答:小踏步前进。 不要太大胃口。
* 随着测试的增多,代码的完善, 感觉代码有点bad sme ...
- 进入论坛 软件开发和项目管理 版
我把原贴的内容更改为如下,觉得可能更好一些:
很多人对这个工具提出疑问,当时开发这个工具主要是基于以下这个需求:
完整的可以查看的查询语句 。
这点,如果通过自己用if/else来组装的话,很难满足需求,最终导致查询语句被分割到代码不同部分。
hibernat提供的查询工具是通过接口的形式。虽然很灵活,但是在代码易读上带来一定的复杂度, 如果可以观看整体的查询语句,那更加好了。
为了满足的动态组装查询又可以易读 查询语句的需求,我们开发了这个小工具。
当初第一个确定的大体格式是这样子:
<count>select count(o)</count>< ...
- 进入论坛 Java 版
最近实在太忙,因为一个非常紧的项目的缘故,所以也很累。
最近心情也实在不好,因为某个人的缘故。
最近也在重新审视自己,是不是需要好好的反思了?
说到反思,想到反问,"反问“是个好东西啊,Agile的人很喜欢
这个词语,TW的人也把它整天挂在嘴上。 确实如此。做每0一件事情,
当觉得很复杂的时候,反问一下自己,这是我要的结果吗?我需要这样做吗?
我为什么要这样做?
这样的反问,作用于项目开发里面,可以很好的左右开发的复杂度。
同样,这样的反问作用于日常生活中的话,可以很好的学会“做人“的道理。
某人跟我说过这样一句话:
不想写测试的人是不合格的开发人员。
想写测试的人刚刚入门。
会 ...
- 进入论坛 海阔天空 版
原来ww:property标签做的稍微有点不好,不支持嵌套语法,比如这样:
<ww:set name="entity" value="student" />
<ww:set name="fieldName" value="id" />
<ww:property value="#entity.%{#fieldName}" />
我 希望ww能够parse那段ognl为getStudent().getId() .
很不幸,ww死活不工作,看了PropertyTag的源代码,不知道Patrick Lightbody老大为什么没有先translateVariabl ...
- 进入论坛 Java 版
一个以浏览器插件形式出现的捕捉用户动作流和构建验证脚本的web apps acceptance framework .
http://selenium.thoughtworks.com/index.html
extension here:
http://seleniumrecorder.mozdev.org/
editor here:
http://www.augure.com/dev/SeleniumEditor.xpi
- 进入论坛 软件开发和项目管理 版
记得前些时候,我在javaeye发了一个帖子,引发了一段争论,具体的请看这个链接:
http://forum.javaeye.com/viewtopic.php?t=11712
可以说Robbin是用心思考后才作出这个总结的,这个总结很有意思,也很有道理。但是并不能说全对,说实在话,我对于技术的观点一直是反反复复的,这个反复是随着我对技术的一种体会而来,可能先对后错,也可能先错后对,但是无论怎么反复最终的观点我个人认为还是无限接近于正确的。
先撇开Marin fowler的观点不说,因为引入他的结论无异于导致另外一种争论。
Robbin一直坚持这么一种观点:领域模型依赖于DAO接口是 ...
- 进入论坛 Java 版
今天一大早回复buaawh的关于hibernate cache的帖子:http://forum.javaeye.com/viewtopic.php?t=9706
时,发现自己对于hibernte cache存在一些理解误差,于是回去翻看了一遍hibernte的源代码,下面写出hibernate
的Query Cache部分的分析:
先看看QueryCache的源代码
引用
public void put(QueryKey key, Type[] returnTypes, List result, SessionImplementor session) throws HibernateExc ...
- 进入论坛 Java 版
当应用中需要使用到上十张表时,DAO的维护变得日益困难,主要表现在这几个方面:
1)dao类的繁多,很多设计都是一个entity对应一个dao
2)dao接口需要维护的method庞大。
3)业务逻辑改变时,dao需要同时修改两个类文件(接口和实现类)
出于上述问题,有必要从新设计dao包。要求
1)减少dao类的数目,dao包暴露的接口稳定且易于扩展新的查询。
2)减少dao接口的method
3)可以动态增加dao提供的数据访问逻辑,比如增加相应的查询实现等等
我的分析:
可以使用Criteria,NamedQuery来构造复杂的查询逻辑。
对于改动最多的read/find逻辑,可以作 ...
- 进入论坛 Java 版
- 浏览: 22308 次
- 性别:


- 详细资料
搜索本博客
最近加入圈子
最新评论
-
谈谈应用ORM框架针对遗留 ...
BaseService extends HibernateDAOSupport? ...
-- by sslaowan -
谁了解Paulo提出的String ...
可以用google scholar
-- by tiantian911 -
关于实现一个rails smart ...
nihongye 写道firebody 写道LRU频繁的话,性能应该会很差 不知 ...
-- by firebody -
关于实现一个rails smart ...
firebody 写道LRU频繁的话,性能应该会很差 不知道这个猜测是从哪里来的 ...
-- by nihongye -
谈谈应用ORM框架针对遗留 ...
我也经常会为了少写一些代码而使用继承,而不是用工具类,这样会在心里上有一种更直观 ...
-- by downpour






评论排行榜