`
tiandirensoon
  • 浏览: 595839 次
文章分类
社区版块
存档分类
最新评论
文章列表
看微软的MSF,风险管理始终被放在很高的地位。其实,MSF的风险管理总结起来也就六个字,实施起来并不高深困难。(人家把这六个字写成一本书,还拿了Jolt,那是人家本事) 哪六个字呢?就是主动、正式、积累。主动:肯正视问题,自己找自己茬是前提。否则风险管理永远只留于口边。正式:正式的风险管理就是要填Form。否则心里泛泛的想一下问题算不得风险管理。1.列出所有潜在的风险和危害程度、发生概率的估算, 通过危害程度*发生概率=风险暴露率,排出暴露率前10位的风险。 2.制定风险控制计划,风险发生时如何控制、转移、谁负责控制这个风险。 3.不断循环的标识、控制、排除10大风险。积累:不断的积累可能潜在的 ...
世界原本很太平,Struts作为大部分程序员依赖的事实标准长治久安,而JSF作为Sun晚婚晚育的结晶,忍受着大部分程序员的冷淡。 一夜间,Struts宣布了一个新的子项目---Shale,基于JSF标准完完全全的推倒重来(Apache Stuts Team Announcement),这便同时掀开了两个战团: 一个是关于“Is Struts dead? ”的It's Official, Struts is History!So Struts is Dead, huh?还有TSS上的口水大战 另一边厢是“JSF能用么?” 如IBM的JSF for nonbelievers: Clearing t ...
作者: 江南白衣 最新版本及评论请看:http://www.blogjava.net/calvin/archive/2005/10/04/14790.html 像工匠一样进行重构, 让重构成为一门手艺.Martin Fowler的《Refactoring》其实更适合做一本关于重构的洗脑,宣言式的书,就像Kent Beck的《XP Explain ...
xmlhttp是在RIA时代没有来临之前,最能使B/S程序远离每个动作刷新一次页面的痛苦做法,同时也是最平民化的一项技术,HelloWord几句话就完成了。 不过,大家对xmlhttp的应用大多只以Get方式在URL里传递少数的变量。其实即使是大量数据的Form,,只要用Javascript稍加封装,,一样可以用简单的用xmlhttp完成提交,真正做到让用家宾至如归,不到页面本身需要刷新的时候,决不去刷新用家的界面。 客户端: function xmlhttp_submit(form_object,url) for i = 0 to form_object.elements.l ...
序 一位兄弟说得好,Spring、MVC、ORM怎么分层,怎么封装,都是让程序员爽了,在客户眼里却没有什么直接增值(最多就是后继修改的速度快了一点点而已),所以,还是要花点心思在客户感觉增值的地方,一是商业智能的增强;二是客户体验的改进,也就是表现层的改进上。<网站重构>是之前很hot的一本书,其观点非常清晰简单,一个下午就能看完,也许根本没必要写成一本书。但这么简单的观点却十分受用:观点一:不要再使用嵌套再嵌套的Table来排版,改用直观的<DIV>让View层骤然清朗。 Table排版根本是Html的原罪,每一代Web程序员都深受其苦,但只要下定决心,立刻就可以抛弃 ...
应用间的数据集成(EAI)通常是两条路子: 一是使用现成的EAI、ETL框架,定义一堆XML格式的映射文件,再写一些特殊转换的transform class。但这样的工程通常比较宏大,用到最后经常会发觉还不如自己写程序快。 二是直接自己写程 ...
如前所说,Mondrian是OLAP的核心引擎,负责从关系数据库中计算、缓存数据,响应来自表现层的使用MS家 MDX语法的查询。具体表现形式呢,就是一个jar,随Tomcat启动。 看完那个FoodMart的Sample之后, 该自己动手了。 首先第一步是设计OLAP的数据库结构。 因为和业务数据库相比,OLAP需要冗余一些数据达到更快的查询。设计前可以先参拜一下那本经典的《完全维度设计指南》,中文版的几下就能翻个大概。其实说白了就是去除与报表无关的列,把订单、订单明细两个表合并成一个销售事实表,把产品,产品分类两个表合并成一个产品维表这几个动作。设计完之后,应该会有几个装有统计数据和维表外键的 ...
缘起从前到现在,用户需要从IT系统中获取信息的变化无常与程序员从传统数据库中制作报表的代价是一个永恒的矛盾。 这边厢程序员为了应付客户忽然而至的报表需求痛苦不已, 客户只想要他想知道的东西,不会管查询语句有多么复杂,优化从海量数据中提取报表的速度有多么困难。 那边厢客户为了等程序员做一个报表,快则半天,慢则一周,事情都过去了。明明只想知道一样很简单的东西, 程序员却要抱怨查询是多么复杂,数据结构是如何制约。有时候出一个报表要呆在屏幕前等半天。 而OLAP是唯一一种真正让用户获得自己所需要的报表而且不用付出巨大实现代价的方法。它能够让用户自由的定制自己的查询条件,观察、累计的维度,最后从海量数 ...
 所有项目都是被需求变更累死的,eXtreme Programing提供了一种哲学,一种态度,但更实际的,是那些能够应付需求变更的技术。 比如用OLAP支持复杂报表的快速定制,用script语言如Groovy支持客户自定义公式,还有Rule Engine,我们一天到晚挂在口上的亲爱的商业规则。 Rule Engine的意义: 1.将复杂的if...else....elseif 整理为一条条的清晰的规则2.将商业规则从程序逻辑中分离 3.规则改变时不需要重新编译和部署系统4.如果Rule Engine提供普通用户级的规则语言,可以直接让客户的领域专家进行规则定制 Rule Engine并不 ...
DynaBean是BeanUtils里的宝贝之一。有了动态Bean,就不用写那么多VO出来了,特别那些只是为了和View交互而存在的bean,i hate Form Bean。DynaBean的用法很简单,特别是有了LazyBynaBean之后. DynaBean car = new LazyDynaBean(); car.set("carNo",1); car.set("owner","张三"); out.print(car.get("carNo")); 看着像一个map,只不过多了反射的功能,所以支持那些 ...
Beanutils用了魔术般的反射技术,实现了很多夸张有用的功能,都是C/C++时代不敢想的。无论谁的项目,始终一天都会用得上它。我算是后知后觉了,第一回看到它的时候居然错过。 1.属性的动态getter、setter 在这框架满天飞的年代,不能事事都保证执行getter,setter函数了,有时候属性是要根据名字动态取得的,就像这样:   BeanUtils.getProperty(myBean,"code"); 而Common BeanUtils的更强功能在于可以直接访问内嵌对象的属性,只要使用点号分隔。 BeanUtils.getProperty(orderBean, ...
JasperReports+iReports ,类似于CrystalReport的开源报表系统,最主要能帮助我们在设计时把数据和表示分开,帮助我们实现Web报表的分页打印,分组合计,变量的加减处理,输出的格式化,还有导出Excel、pdf等,反正用过了的人都不肯回去重新自己画html页面出报表了。 google上有入门教程,非常容易。但一遇到复杂的报表,入门那套很快就玩不转了,如果没有中级的研究,可能又得乖乖回去用html画报表。 首先网上有一份JasperReport收费文档,不过老实说,这份文档收费的话显得太单薄了。 1.自定义数据源,传入VO数组而不直接在JasperReports里 ...
天寒地冻,呆在家里又读完了《Mastering Oracle SQL》2nd,发现Oracle的功能还是很强悍,光函数就有两百个,那些面向对象的查询语言很难模拟,特别是SQL2003里针对OLAP的windows function等。 幸好Hibernate3.0也支持SQL了。 1.报表合计专用 ...
第2版:2005.6.22 --修改优缺点比较部分 因为有些IDE不支持,一直没有完整留意UML的扩展机制,所以也就以为UML不很适合做MDA。比如生成Hibernate的hbm文件,一些属性的辅助属性比如lazy-load,应该放在Class图的哪里呢? 最近AndroMDA在TSS上发广告,介绍说AndroMDA 3.0出来了。就连过去看了一下。原来除了StereoType,UML另有Tagged Value的机制, 可以把一些属性附在类的方法和属性上。 总的来说,AndroMDA的结构应该说比较开放和实际的: 1.AndroMDA使用过程 1.程序员通过Poseidon or Magi ...
hu 时时勤拂扫, 莫使有尘埃. --update at 2005.6.22因为服务器关系暂时不能下载了,要的朋友可以加我QQ:228013,不过:1.书多是英文版2.请善用emule和bbs.itebook.com,能找到的书就不要找我了3.加好友时请写明要的书名 Software Engineering--炼石升仙版 《The Agile Software Development(敏捷软件开发)》 Alistair Cockburn --"Agile"。 《The Pragmatic Programmer(程序员修炼之道)》 Andrew Hunt, ...
Global site tag (gtag.js) - Google Analytics