2008-03-27
为什么一些JAVA EE / J2EE 工程是效率低下或者至少是效率欠佳的(翻译)
英文原帖地址:http://www.adam-bien.com/roller/abien/entry/why_some_of_the_java
1. 架构师对于PowerPoint的熟练程度要远远胜过流行的Java IDE。
2. 光是部署基本环境(比如应用程序服务器和数据库)就需要若干张DVD和几个小时。
3. 一些流行的服务器需要几分钟去启动和部署,而你每天要重复这一过程若干次。
4. 为应用服务器的bug立案(并且重现问题的所在)往往比你自己修复它需要的时间更长(当然,如果你有源代码的话)
5. 很难为开发者们找到一个可以高效运行那些“企业级”开发工具的硬件,而且因为这些开发工具十分昂贵,想要弃他们不用也很困难
6. 架构师热爱分层,光是从持久层传递一个持久实体到表现层,就需要若干次mapping。
7. 一切都是可配置、可替换、可建模的。XML的负担十分巨大。问题是:上一次你真正的需要在工程中替换某些东西是什么时候?
8. 无论是瀑布式还是敏捷式都充满各种专业术语和奇怪的规范。两者都可以非常的低效。看上去只做最基本的有时真的很难。
9. 开发者有的时候非常极端:不是用成千上万的模式和最佳实践把所有东西都过度设计,就是直接了当的使用“意大利面条”式的开发风格。
10. “快感已经不再”很多开发者、构架师和经理们已经失去了他们的狂热和激情。这也是为什么许多工程如此低效的原因之一。
11. 即使像留言板这样的程序,也要考虑高可用性(译者:就是不掉线~)、集群。复杂性统治一切。
12. 奇怪的质量保证规则(比如文档化很明显的getters/setters方法)加大开发和维护成本。
这个文章的评论里面有人总结出来第13条:
构架师和开发者热爱框架。即使对于最简单的增删查改类的程序,也要用到internet://**/*.jar,而不是Java SE或者应用程序服务器提供的API。
译者:我不是推卸责任,虽然都在点子上,但是原文作者的文笔确实一般,我基本忠于原文,所以文笔也就只能这样了。
最后奉上我自己写的仿《大腕》经典对白:
一定要找那最流行的框架,
用功能最强大编辑器,
做就要做最复杂的系统,
轻量级的绝对不行,
框架最简单也得是SPRING,
什么EJB啊,HIBERNATE啊,SEAM啊,能用的全都得用上,
表现层要可配置、持久层要可替换,
程序最好能用一万年,
客户一见面,甭管有事没事,
都得问人家:您准备换框架不?
系统还得能够集群
访问量再小也得同时开10几台服务器
一天24小时在线
火星撞地球了都能提供服务
服务器上跑得都是weblogic、websphere
你要用一jboss,都不好意思跟人家打招呼
你说这系统,得做多长时间?
(怎么地也得5年吧?)
5年?那是一期工程,
10年起,
你得揣摩老板的心理,
愿意花5年开发一套系统的老板,
根本就不在乎再多等5年,
什么是软件工程你知道么?
软件工程就是,搞什么都不用最好的,用最复杂的
所以我们口号就是:
不求最好,但求最复杂。
1. 架构师对于PowerPoint的熟练程度要远远胜过流行的Java IDE。
2. 光是部署基本环境(比如应用程序服务器和数据库)就需要若干张DVD和几个小时。
3. 一些流行的服务器需要几分钟去启动和部署,而你每天要重复这一过程若干次。
4. 为应用服务器的bug立案(并且重现问题的所在)往往比你自己修复它需要的时间更长(当然,如果你有源代码的话)
5. 很难为开发者们找到一个可以高效运行那些“企业级”开发工具的硬件,而且因为这些开发工具十分昂贵,想要弃他们不用也很困难
6. 架构师热爱分层,光是从持久层传递一个持久实体到表现层,就需要若干次mapping。
7. 一切都是可配置、可替换、可建模的。XML的负担十分巨大。问题是:上一次你真正的需要在工程中替换某些东西是什么时候?
8. 无论是瀑布式还是敏捷式都充满各种专业术语和奇怪的规范。两者都可以非常的低效。看上去只做最基本的有时真的很难。
9. 开发者有的时候非常极端:不是用成千上万的模式和最佳实践把所有东西都过度设计,就是直接了当的使用“意大利面条”式的开发风格。
10. “快感已经不再”很多开发者、构架师和经理们已经失去了他们的狂热和激情。这也是为什么许多工程如此低效的原因之一。
11. 即使像留言板这样的程序,也要考虑高可用性(译者:就是不掉线~)、集群。复杂性统治一切。
12. 奇怪的质量保证规则(比如文档化很明显的getters/setters方法)加大开发和维护成本。
这个文章的评论里面有人总结出来第13条:
构架师和开发者热爱框架。即使对于最简单的增删查改类的程序,也要用到internet://**/*.jar,而不是Java SE或者应用程序服务器提供的API。
译者:我不是推卸责任,虽然都在点子上,但是原文作者的文笔确实一般,我基本忠于原文,所以文笔也就只能这样了。
最后奉上我自己写的仿《大腕》经典对白:
一定要找那最流行的框架,
用功能最强大编辑器,
做就要做最复杂的系统,
轻量级的绝对不行,
框架最简单也得是SPRING,
什么EJB啊,HIBERNATE啊,SEAM啊,能用的全都得用上,
表现层要可配置、持久层要可替换,
程序最好能用一万年,
客户一见面,甭管有事没事,
都得问人家:您准备换框架不?
系统还得能够集群
访问量再小也得同时开10几台服务器
一天24小时在线
火星撞地球了都能提供服务
服务器上跑得都是weblogic、websphere
你要用一jboss,都不好意思跟人家打招呼
你说这系统,得做多长时间?
(怎么地也得5年吧?)
5年?那是一期工程,
10年起,
你得揣摩老板的心理,
愿意花5年开发一套系统的老板,
根本就不在乎再多等5年,
什么是软件工程你知道么?
软件工程就是,搞什么都不用最好的,用最复杂的
所以我们口号就是:
不求最好,但求最复杂。
评论
jackyxiap
前天
的确倒出了程序员的苦水,很多东西占用了大部分时间,但对最后的结果并没多大贡献。
abo
2008-05-14
楼主真是道出了IT民工们的心声。也许随着技术竞争的激烈,有些方面也会简化起来的。
fight_bird
2008-05-04
jerry_shen 写道
现在做一家美国物流公司的项目,ejb,jms,cics,mq,appclient一堆,200个项目相互牵制,头都大了,启动一下要15分钟,还好我们只做移植,要是开发的话,他那套很强的IT部制定的私有框架也够折腾的。
IBM的客户顾问看到你们公司的CIO要乐坏了:我的SOA万能胶有用武之地了。
bohemia
2008-05-04
复杂-->简化-->再复杂--->再简化..
就是这样发展的...好像否极泰来一样.事物总在演变;
:) 想到<周易>.^_^.
就是这样发展的...好像否极泰来一样.事物总在演变;
:) 想到<周易>.^_^.
jerry_shen
2008-05-01
这就是所谓的企业级开发。
jerry_shen
2008-05-01
现在做一家美国物流公司的项目,ejb,jms,cics,mq,appclient一堆,200个项目相互牵制,头都大了,启动一下要15分钟,还好我们只做移植,要是开发的话,他那套很强的IT部制定的私有框架也够折腾的。
newold
2008-05-01
我觉得EJB挺好用的呀,也很简单呀
gurudk
2008-04-30
深有体会, 简单的技术,起点低,上手快,能够快速掌握并使用,这在外包企业很常见。
复杂技术,学习曲线高,维护起来也不容易,而且对开发人员要求很高,如果掌握复杂
技术的人离开了,对项目组就是一个灾难;反过来,如果技术简单,开发人员走了,其它
人迅速就可以接上。我们公司目前还是使用struts1.2+spring+hibernate,同事自己写
了一个粘合框架,使用起来非常简单。简单也是struts 1.x使用者众多的原因之一。
写熟练了根本不在乎多不多写一个ActionForm类。毕竟重要的是实现业务逻辑。
复杂技术,学习曲线高,维护起来也不容易,而且对开发人员要求很高,如果掌握复杂
技术的人离开了,对项目组就是一个灾难;反过来,如果技术简单,开发人员走了,其它
人迅速就可以接上。我们公司目前还是使用struts1.2+spring+hibernate,同事自己写
了一个粘合框架,使用起来非常简单。简单也是struts 1.x使用者众多的原因之一。
写熟练了根本不在乎多不多写一个ActionForm类。毕竟重要的是实现业务逻辑。
fight_bird
2008-04-28
预算多的项目:简单问题复杂化;
预算少的项目:复杂问题简单化。
反之,出力不讨好!纯技术主义永远不是商用之道!
预算少的项目:复杂问题简单化。
反之,出力不讨好!纯技术主义永远不是商用之道!
java_2006
2008-04-28
简单了 人家给的钱就少了~
能用的都用上,人家一看,乖乖
这么多技术,这个项目肯定牛~钱给的自然也就多!
能用的都用上,人家一看,乖乖
这么多技术,这个项目肯定牛~钱给的自然也就多!
yecllsl
2008-04-25
适合才是最好的,完全同意。
简约不简单~
简约不简单~
阳光晒晒
2008-04-25
7thbyte 写道
用https访问Gmail吧 一点问题也没有
试用一下
效果不错
7thbyte
2008-04-25
用https访问Gmail吧 一点问题也没有
wenqingzhou
2008-04-25
Gmail用Opera打开的话,很快;不要用IE。Facebook也有同样的问题。
xuyao
2008-04-24
恩,大家一起炒吧,越复杂越值钱
abang
2008-04-23
本来,事情的发展就是这样的:
一个简单的事物,随着时间慢慢发展,变得越来越复杂,复杂到使人无法忍受的时候,就会跳出来简化它,C是这样,现在java也已经这样了,所以又出现了新的技术
一个简单的事物,随着时间慢慢发展,变得越来越复杂,复杂到使人无法忍受的时候,就会跳出来简化它,C是这样,现在java也已经这样了,所以又出现了新的技术
zhongxuchen
2008-04-23
说起这些我个人得强调一下中国的中庸之道,其实做软件也是这个道理,任何事情其实就是把握一个度的问题,针对项目用你最有把握的技术路线,适度的引入新技术弥补架构的不合理之处,逐步完善,技术的路线要综合考虑项目人员状况,公司技术发展路线等,还有就是项目成本周期,简单就是美这句话要是体现在软件上,对于客户来说就是性能优异,页面友好,对于内部开发人员来说的话就是开发快捷可靠,但这样的简单是建立在长期低层的技术积累的基础上的
sonicluo3
2008-04-21
怎么又说到gmail上了...其实在国内开gmail真的有点慢
flypeace
2008-04-21
mathgl 写道
gmail的bug很恶心。 欧尔打开提示系统问题。然后要等个3-5分钟才能重新打开
赞同,经常遇到,现在基本不敢怎么用了。
mathgl
2008-04-21
gmail的bug很恶心。 欧尔打开提示系统问题。然后要等个3-5分钟才能重新打开
发表评论
提醒: 该博客已发表在公共论坛,博客所有留言会成为论坛回贴,留言请注意遵守论坛发贴规则
- 浏览: 6093 次
- 性别:

- 来自: GreatArcan

- 详细资料
搜索本博客
最近加入圈子
最新评论
-
为什么一些JAVA EE / J2EE ...
的确倒出了程序员的苦水,很多东西占用了大部分时间,但对最后的结果并没多大贡献。
-- by jackyxiap -
面试第一天,面试第二天
在7楼面试java,应该就是tx了。 如果不是的话,只能猜测是网易了。
-- by codeutil -
面试第一天,面试第二天
面几轮?? 受不了~~
-- by java菜菜鸟 -
面试第一天,面试第二天
不是深圳也不是腾讯,不过确实是广东地区。呵呵。不过具体的公司名就不透露了:)
-- by Nighthaven -
面试第一天,面试第二天
呵呵,深圳能这样折腾得游戏带游戏开发的公司?难道是tencent?
-- by YoungCool






评论排行榜