`
chillwarmoon
  • 浏览: 153480 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论
文章列表
最近结合公司的项目,在读《Applying UML and patterns》第三版一书,该书是OOAD中经典巨著之一,现在读到第32章,感觉确实和一般的书不同。这本书是以软件过程UP为主线来介绍各个阶段中的OO分析和设计。该书不同于专门介绍UP的书,书中向UP中加入了Agile的思想,使得UP在实践中更容易操作;该书也不同于介绍UML语法的书,而是融入了OOAD的思想。书中描述了UP中的四个软件开发阶段,分别是Inception、Elaberation、Construction和Transition,其中主要介绍了前两个阶段。在Inception阶段,主要是对项目的需求有一个大致的了解,知道哪 ...
转载请注明来自:http://chillwarmoon.iteye.com 规则的激活是指规则左部匹配成功后,建立相应的Activation,加入到Agenda。如果该规则引擎不带有Agenda,则不会有规则激活的过程,直接进行规则激发。 规则激发是指对规则引擎下达fire rule命令之后,执行规则的右部动作。若该规则引擎含有Agenda,则选择该Agenda当前的Module中所有的Activation,逐一执行每一个Activation所对应的规则的右部动作。若规则引擎不含有Agenda,则在规则的左部模式匹配全部成功后,直接执行规则的右部动作。 从实现角度来说,对于带有Agenda的RE ...
上篇大致介绍了一下RETE算法的基础,本文采用CLIPS语言来进行规则的描述,简单阐述一下由规则生成rete network的过程。转载请注明来自:http://chillwarmoon.iteye.com 每一个产生式系统都必须有一种或者几种相应的语言用来描述产生式 ...
最近面试的时候,经常被问及自己参加的项目中rete算法的原理,但是RETE算法是一个比较复杂的算法,在短时间内不能阐述的足够清晰,在这里做个简单的介绍。转载请注明来自 http://chillwarmoon.iteye.com RETE算法是一个用来实现产生 ...
往往大师级别的设计是简单的,易懂的,可扩展的,从不做作,整齐的代码让阅读的人感到很舒服。最近在看一个开源项目的源码,其中有好多的设计思想可以借鉴,相信这些优雅的代码也是在大量实践基础上,通过不断的重构而形成的。有一小段代码自认为写的不错,以下是源码: EPAdministratorImpl类中: java 代码   private static ParseRuleSelector patternParseRule;   private static ParseRuleSelector eqlParseRule;     static     {     ...
做IT的,学习新技术几乎是每天必须做的事情,无论是读纸介的书还是电子书,大家都有自己的习惯来阅读,在这里调查一下javaer们的读书习惯。 先介绍我的情况,我现在一般读的大多数是英文的电子书,为了在忘记之后,很快能够回忆起当时的状态,就在电子书上作标记,以后查阅的时候就能很快的恢复到原来的状态。 以前看书是每本书都是从头到尾的读,理解作者意图,并根据书中的例子做实验,但是发现掌握知识慢,不适合于快速发展的技术。也许是因为当时的水平还没有达到分出主次的境界。 现在对于很经典的书是从头到尾的读; 对于讲解技术的书,如果是程序层面的,就快速阅读,掌握怎么应用就可以,关键是以后用的时候能够查到;如 ...
Hibernate与事务处理一文中,介绍了事务以及并发事务处理时的问题,和针对于这些问题在数据库层所能做的隔离级别,但是在选择read commit和repeatable read两个隔离级别时,如果考虑到performance和scalability,可以选择一个折衷的方案,也就是在数据库中的隔离级别选择read commit,而通过对应用程序的控制,可以达到repeatable read的效果。Hibernate在程序中控制并发的事务处理上,也有自己的方法,本文在Hibernate与事务处理基础上,对Hibernate的这些并发事务处理方法进行介绍。 数据库隔离级别可以通过设置hiberna ...
在企业应用中,事务处理是一个很重要的问题,本文阐述了事务处理的相关概念,分析了数据库级别的事务并发时产生的问题和相对应的隔离级别,最后简单谈谈Hibernate对于事务处理的方法。 1.事务(transaction) 事务被认为是一系 ...
最近的开发一直在持久层周围,虽然做hibernate也有一段时间了,但是随着数据库表的增加,遇到了一些以前没有碰到过的问题。其中有一个问题就是对集合的共享参照问题(found shared references to a collection)具体是这样的: 数据库表的关系如下: 关系是这样的ALARMINFO表通过交叉表ALARMAUDIT和AUDITINFO建立多对多关系,ALARMINFO自身是一对多的关系,ALARMINFO表和ALARMCOMPRESS表是多对一的关系。 在这里抛开ALARMCOMPRESS表不讨论,对象之间的关系是双向关联,目标是这样的:生成一个新的ALARMIN ...
网上有许多关于load和get方法的讨论,自己做了一个小小的实验,明确一下load和get方法的工作原理。 首先get方法没有什么可说的,就是在Session执行此函数的时候hit一下数据库,而load方法比较麻烦,具体的执行流程是这样的: java 代码   Session session=getSessionFactory().openSession();   Transaction tr=session.beginTransaction();   //Student stu2=(Student)session.get(Student.class, new Int ...
目的:想在内存中加载一个单态队列。 做法:该队列做为spring的一个singleton Bean加载到Spring Container当中,在业务逻辑中,将对象装在单态队列中,获取队列中的元素是在Servlet中获取的,Servlet也是通过Spring DI得到的这个队列。 问题:但是这两个队列并不一样,前者在队列中装了一些元素,后者得到的队列却不包含任何元素。不知道是为什么,难道Spring Container和Servlet Container是分开的吗? 参考:看了一下spring的references,是这样说的: Please be aware that Spring's con ...
记得有一篇文章的题目是:完全用linux工作--你还在用老掉牙的windows吗? http://www.iteye.com/blog/73577 文章写的很好,我也想从windows当中脱离出来,但是在用了半年多的linux之后,发现真正放弃windows还是很困难,具体原因如下: (1)写论文和软件设计文档(其中包含visio画图等)需要用MS的office,而linux下的openoffice虽然能够打开doc文件,但是兼容性还不太好。有些用office写的文件,在openoffice下看格式完全改变。 (2)现在最新的开发书籍在出影印版之前,通常是以pdf或者chm的电子版出现的,而在l ...
在利用hibernate做ORM时,如果对于hbm文件的属性,在java的pojo类中没有对应的get和set方法,则会产生如下异常: java 代码 Caused by: org.hibernate.PropertyNotFoundException: Could not find a getter for auditInfos     in class EventType    at org.hibernate.property.BasicPropertyAccessor.createGetter(BasicPropertyAccessor.java:282 ...
昨天看了看infoq( http://www.infoq.com ),上边居然可以看和幻灯片同步的presentation,英文听力好的可以去听听。突然感觉到国内的做技术交流的论坛(现实中的交流论坛)很少,技术氛围不浓,这也许是国内软件开发行业落后于国外的原因之一吧。希望javaeye上的牛人们在谈技术的同时,也分享一下在软件开发的过程中,自己从菜鸟变成牛人的经历,这也许对于各个层次的程序员都能够提供一个有价值的参考。
没有看过bill venners的《深入Java虚拟机》,但是看了他写的四部曲中的security and the class loader architecture,感觉受益颇深,建议大家有时间可以去看看原文,本文将对其中的class loader architecture的内容总结一下。 在介绍本文之前,先 ...
Global site tag (gtag.js) - Google Analytics