耐心无止境 成功一瞬间
BlogJava
联系
聚合
管理
31 Posts :: 5 Stories :: 25 Comments :: 0 Trackbacks
常用链接
我的随笔
我的评论
我的参与
最新评论
留言簿
(3)
给我留言
查看公开留言
查看私人留言
随笔分类
(30)
flex(1)
Java(12)
Linux(10)
tuscany(1)
Web(6)
生活
随笔档案
(31)
2009年6月 (1)
2009年4月 (1)
2009年3月 (1)
2008年12月 (2)
2008年11月 (1)
2008年10月 (2)
2008年9月 (1)
2008年8月 (6)
2008年6月 (1)
2008年5月 (2)
2008年4月 (2)
2008年3月 (2)
2008年1月 (5)
2006年10月 (1)
2005年11月 (1)
2005年10月 (1)
2005年9月 (1)
文章分类
(1)
Java(1)
文章档案
(5)
2005年10月 (4)
2005年7月 (1)
My links
jack.wang
Will Iverson's Blog
江南白衣
搜索
最新评论
1. re: 判断js函数是否存在,如果存在则执行[未登录]
嗯嗯
--aa
2. re: 判断js函数是否存在,如果存在则执行
给力!
--你猜啊
3. re: 感受dell 客户关怀部的“关怀”与技术支持的“支持”(原创)
我的1425的机子也一样啊,蓝屏,暗屏,键盘左上角热的吓人,找他们客服也没人答理,太让人失望了
--戴尔太令人人失户了
4. re: linux 下netbeans不能使用调试功能;tomcat shutdown出现拒绝链接(connection refused)提示
评论内容较长,点击标题查看
--找个美女做老婆
5. re: 感受dell 客户关怀部的“关怀”与技术支持的“支持”(原创)
同样的受害者,买了就上当了。唉总以为自己是最倒霉的,原来大家都差不多啊,没有更好的办法,算了吧,凑合着用,等下次更新的时候小心点就是了。如果要走维权的路,恐怕谁也耗不起。
--阿
阅读排行榜
1. 判断js函数是否存在,如果存在则执行(7745)
2. linux 下netbeans不能使用调试功能;tomcat shutdown出现拒绝链接(connection refused)提示(5175)
3. document.body.scrollTop 值总为0的解决方法(转载)(4208)
4. 感受dell 客户关怀部的“关怀”与技术支持的“支持”(原创)(3913)
5. How to resovle "configure: error: C preprocessor "/lib/cpp" fails sanity check "(2904)
评论排行榜
1. 感受dell 客户关怀部的“关怀”与技术支持的“支持”(原创)(15)
2. 注意properties的使用(4)
3. 判断js函数是否存在,如果存在则执行(2)
4. firefox 3下听在线音乐 (1 听)(1)
5. linux 下netbeans不能使用调试功能;tomcat shutdown出现拒绝链接(connection refused)提示(1)
值得思考的问题
在jdon上看了一个帖子,感受颇深,有一种“一语惊醒梦中人”的感觉。
我们为什么选择spring(或者其他框架),为什么出现了IOC,AOP,ORM等等?简单回答是“解决问题”,但他们解决不同的问题。
需要继续思考一下,希望能有所“突破”
参考url:http://www.jdon.com/jivejdon/thread/35373.html
防止断链,转载如下:
转载内容
一晃眼搞了7、8年的企业应用管理和研究,各种技术、思想翻来覆去折腾了很久,最近总算是有点持拨云见目的感觉了,于是放出点大标题和各位论论道。
主要观点其实在一年半前,已经在jdon首发的文章“坚持发扬
EJB
、Spring的光辉思想,将组件化进行到底!”(可参 http://www.jdon.com/jivejdon/thread/31834.html)进行过论述。当时虽然观点比较激烈,然实际上笔者领悟得不够深刻,故有后面一年多的RoR和PHP之实践。随着时间的推移,与各相关方(上级领导、企业领导、用户、开发商主管、设计人员、开发人员、维护人员等等)的更多观点接触,让我逐渐深入领悟了Java和
Spring
所蕴含的开发哲学和思想,于是又有此文。
(上文刚刚收到blog,由于是老文,不再发布了,仅作为整理收录)
如果说,每种编程语言和技术都有自己的目标和归宿和话,那么简单来说,JavaEE和后来的
Spring
是为企业应用而生的。他们诞生的基本目标,正是为了解决困扰企业应用多年的各种复杂问题。故而他们能够达到现在的领导地位,并将一直延续下去。
世间各种事业,都应该是“统一规划,分步实施”。放到信息工程来说,就是“自顶向下设计,自底向上实现”。道理谁都明白,可现实当中执行下来,总是要走样。问题就在于,这二者该如何结合?于是实际项目中,企业用户、分析师、设计师、程序员、维护人员总是不欢而散,最后往往各行其事,一盘散乱。上层的总是抱怨下层在“乱搞”,而下层则嘲笑上层只会“空谈”。结果往往是早已扔进档案袋的系统方案和图表,一堆各种公司、各种程序的“系统”,蒙头蒙脑瞎忙的维护人员。
那为什么结合不了?因为大家没有“共同语言”。开初UML跳出来了,分析师讲得头头是道,程序员看得心烦意乱,用户更是云山雾水。于是连MF都有点烦了,干脆推起了RoR。这乍东西一看太理想了。几乎是分析员可以直接实现程序,而程序员也可以直接分析了。可惜世间难有完美的事物,RoR这种过于“ 霸道”的东西也许还是有问题的。前有foxpro,后有VB、PB,也许是笔者总是心有余悸,对这种过于“完美”的东西还是先放一放吧。
那是不是说,大家真的不可能有“共同语言”?笔者以为,有,但要折衷(又闻到了实用中庸主义的味道了吧)。如题,OO、DI、AOP、TDD和Refector正是当前的解决之道。
OO是根本,可以作为基本的“共同语言”。图表不必要像UML那么复杂,否则最后除了分析师谁都不会看。只需要简单建上模型,标上属性和接口功能,最多连几根线说明相互关系,这样大家都懂(也就是说,这个类是个什么东西,有什么属性,要实现些什么功能)。这种东西既可做系统说明书,也可以给开发人员,甚至生成Doc做维护文档。
大家要说这不是“空谈”吗?要的就是空谈(就好比不识字的老百姓也会谈治国问题),就是只谈“有什么”和“做什么”,这样才能有共识。但这种“空谈”其实最难最费时,因为要“共识”。有了共识之后就可以下一步了。
下一步是实现。这个阶段,分层、DI、AOP就可以大展本领了。Spring流行那会,大家是言必DI和
AOP
。可惜风头一过,现在RoR和
Seam
时尚年代,很多人大概忘了七七八八。其实笔者现在看来,分层、DI和
AOP
是继
OO
之后最重要的思想,它们的核心在于“接口和实现分离”。这样一来,就可以把“做什么”和“怎么做”分家,这才是它们的伟大之处。大家天天把“高内聚、低耦合”挂在嘴边,各搞一套,乱七八糟。J2EE太复杂,大家觉得用不上。好不容易Rod推行了用得上的标准方法,大家本可以有“共同语言”了。可惜人之天生的惰性又把我们推回到“一体化”的泥潭,一代代程序员和系统就这么不了了之了。
OO还是要坚持,它是当前信息世界和现实世界实现映射的最好方法。DI和
AOP
也是要坚持,只有这样才能屏蔽掉具体实现技术疯狂变化的信息世界。坚持
OO
,我们才能不受数据存储方式变化的困扰;坚持分层、ID、AOP,我们才能明确地分工合作,摆脱系统规模和事务要求变化所带来的烦恼。
最后还有TDD和Refactor,业务在变,系统在变,我们的技术也在变。一定要能测试和重构,要能很好地测试和重构,否则系统必被变化所毁。要想能够很好地测试和重构,如果你的系统没有
OO
、分层、DI、AOP,大家是否真可以充满底气地回答“能”。在这一个问题上,Java是最令我放心的伙伴,而
Spring
更总是带来惊喜。
DDD(领域驱动设计)是一个好的设想,而如今像
Spring
这类的标准化框架则可以把这个设想变为现实。在这个设想里,管理人员、分析师和用户定义模型功能要求,架构师根据要求选择技术方案,不同的程序员(有做dao的、做service的、做view的)根据接口要求实现代码,通过测试后提交。而因为有支持分层、DI、AOP的框架存在(比如说
Spring
),布署人员就可以简单地把他们组装在一起。
面对不断的需求变化,分析师仍然只需增加/变动模型和功能接口,测试人员和编程人员按作相应变化即可。
总体设计、分步实施、按需定制、分工合作、无缝组装,这种工业标准化的软件开发方式才是企业应用的答案。而
OO
、分层、ID、AOP、TDD和Refactor是真正支撑这个开发方式的支柱。以这样的方式,DDD会真正成为现实。
信息发达国家的软件业其实很大程度上已经实践了这种开发方式(想想那些大规模的外包吧)。这些年国内搞Java的,张嘴闭口便是SSH。可惜很多人搞了一些年后,还是“不识庐山真面目”,成天抱怨“好烦”。在这样浮燥的产业环境下,国内大多数企业应用的质量是低劣的。
即使你天天在写Java、天天在用
Spring
,如果不能够“知其所以然”,那么你的SSH注定是偷工减料的豆腐渣。所以在此劝诸位从事企业应用的同道,好好静下心来,认真思考一下你的应用所面对的各种问题,再好好思考一下
OO
、DI、AOP、TDD和Refator给你带来的福音。
愿大家的系统质量都能更上一层楼,这样才可变恶性竞争为良性合作,让我国的信息系统发挥更大更好的作用。
posted on 2009-03-25 14:25
Joshua Yan
阅读(191)
评论(0)
编辑
收藏
所属分类:
Java
新用户注册
刷新评论列表
只有注册用户
登录
后才能发表评论。
网站导航:
博客园
IT新闻
知识库
C++博客
博问
管理
相关文章:
linux 下netbeans不能使用调试功能;tomcat shutdown出现拒绝链接(connection refused)提示
值得思考的问题
写cookie备忘
超越SOA:动态业务应用的新企业应用框架(2)转载
超越SOA:动态业务应用的新企业应用框架(1) 转载
最轻便的客户端oracle instant client安装备忘.(转载)
解惑 spring 嵌套事务 (转载)
struts2 error (转载)
转载:dW 中国 2007 年 TOP 10 最受欢迎的文章和教程
注意properties的使用
Powered by:
BlogJava
Copyright © Joshua Yan