帮助IT团队快速构建符合jt808协议部标的基于java技术的GPS和视频平台(2379423771@qq.com)

成熟的架构+创新的扩展


    面对不断变化的IT技术,如何能够既要保证从容有度,与时俱进?又要避免狗熊掰棒子,浪费精力,让我们一无所获,两头挨巴掌?

    用户需要有成熟、稳定、可用的软件,不会太care你的技术。
  
    这个最低的要求,我们也很难满足。

    Web2.0的风潮来了好长的时间,却对于开发企业软件的开发人员来说,似乎无动于衷,最多知道几个名词,掌握一点ajax的技术。

    一些人极力将企业软件和互联网应用划清界限,我们设计企业软件是..?
    仍然是单板的导航设计,
    仍然是点击N次,靠着厚厚的用户说明手册指引,才看到自己最关心的内容,最后发出感叹,我操!原来还有这么个功能!。
   
    仍然是蹩脚的alert。

    仍然是粗鄙不堪的操作界面。

    用户用的不爽的时候,仍然是沿用者老套、低效的反馈机制。

    我们测试时,光功能性的bug, 都迎接不暇,别说有针对性的可用性测试。

    但是我们的技术的确在像走马灯一样变化,struts1, struts2, freemarker, hibernate, ibatis, ejb2, spring, seam, ejb3, ESB.

    那我们自问,学习技术的目的是做什么?

    1)有一个好的就业机会

    2)Productivity 。

    3)用户体验

    4)其他

    注意这是个排序,用户? who cares!
    第一个,很正常,现在招个爱学习的开发人员,很不容易,应该鼓励。但方向要正确,浪费时间比浪费money更要命。

    重点说一下第二个。

    不管技术新不新,我们从未知到已知,是一个学习曲线,有高有低,如果是团队的群体行为,有的人掌握的好,有的人差。不管怎样,第一次,总是痛并快乐着。有是代价会很高,我们需要做衡量值不值。

    我经历过delphi的VCL,OWL, VC的MFC, AWL,到BS时代的MVC框架,struts1到2,spring, hibernate,ibatis。

    我的观点是,技术上注重积累,成熟的技术和不断积累的知识、资源,庞大的用户群和强大的开发社区,才是提高productivity的根源。
   
    只有能够从开发思想的层面上改变的技术,才值得去学习。

    我观察到,有两个C(continuous和contribution)机制的技术框架、平台、应用,总是能够在短时间内,超越其他同类竞争,爆发出很大的能量,同时潜力也不可低估。

    举几个例子:
    1)首推PHP中的word press, 几年了,数不清的plug-ins,其之所以紧跟潮流,就在于不断有新的开发社区contribute的blug-in产生。每个产品经理,都应当把word press作为一个现象来研究。类似想wordpress学习的商业软件产品公司有,Sugar CRM, Salesforce等,都是靠社区生存的。

    2)eclipse. 同样是基于plug-in的平台,有多少开源的、商业的组织、团队、商业公司在contribute,围着它打转转.

    3) spring, container的概念,可以包容、聚合很多的开发资源、技术。有人仅仅应为XML configuration的一点不爽,就把google的guice 推上了天,做人,做技术,格局都要大,不能只看一点。用过spring的人,恐怕很少有人能代表团队说,俺们不准备在下一个版本、项目、产品中试用了。

    4)jquery, 这个用了好久,谁用谁知道!不算官方的,光社区提供的好用的plug in,就有几百个,当然这个不是jquery最主要的优点,但是contribution的威力,不容小视。

    所以技术,还在于我们去孵化、成熟后,持续improve才能爆发出威力,如果我们不断的change,其实得不偿失,如果你是一心想做一个好的产品、项目,你会发现,有时换技术,就像足球换教练,解决不了问题,意识跟不上,换什么都不行。

    同类的change,要慎重,如struts2 到 spring的MVC ,prototype 变到 jquery, struts2 到seam.

    现在有人说seam适合企业级开发,这个很片面,如果你在struts2上没有积累,换什么都没有积累,如果你很成熟,换到seam的代价会比较大。特别是前端技术,因为seam扼杀了前端, 回避前端是错误的,及其错误的,普元那些害人不浅的构件开发,已经证明了世上没有永动机。

    这是个方向的问题,技术的重心会从server端移到client, 用户体验的时代已经来了,很多公司对前端开发非常重视,美工将被边缘化,很多的项目已经不要美工了,会CSS、DHTML、javascript的前端工程师,很吃香,而seam恰恰扼杀了前端,大便一样的tag, 并不会提高什么效率,当需求变化时,冲击到界面的设计时,你会很痛苦。我们不仅要考虑到第一次很爽,更要想到应对变化是所需要的灵活。

    JSF整个就是一个魔鬼,你有时间学习他们, 为什么不去学习更容易、更灵活的前端的技术?你会发现,自己的思路会更开阔。很多的东西,根本不用server来实现,或者和server灵活结合,就可以达到以前要大量开发的东东,例如Jquery的基于behaviour与structure分离的技术,让页面很简洁,很容易看清页面的结构。

    我的策略是,技术是基础,积累才能提高,用户是目的。成熟的架构+创新的扩展,server端,团队应当继续构建、成熟以spring为基础的企业应用开发平台,深度挖掘、孵化、封装,同时将精力转向客户端。努力实现客户端与server端的粘合剂开发提高开发效率,建议的平台是spring + jquery.

    顺比说一下,silverlight2.0 出来了,Actionscript3.0也出来了,现在RIA技术争论的焦点是flex vs silverlight. 习惯与写java累的程序员,已经落后太多了,赶快去了解一下更广阔的天空吧。

   

   

   

   
   
   

   

posted on 2008-07-09 19:47 Speed 阅读(4105) 评论(6)  编辑  收藏 所属分类: 框架设计

评论

# re: 成熟的架构+创新的扩展 2008-07-10 08:26 晴天雨云

超好的文章!  回复  更多评论   

# re: 成熟的架构+创新的扩展 2008-07-10 09:01 freetan

精彩  回复  更多评论   

# re: 成熟的架构+创新的扩展 2008-07-10 09:43 klzz

最后一段关于RIA的说法,我有不同的意见,JAVA开发人员完全可以用GWT去开发RIA应用  回复  更多评论   

# re: 成熟的架构+创新的扩展 2008-07-10 11:41 vip01

@klzz
gwt和ext dojo之流在我认为最多只能算web 2.5
离web 3.0 的ria还差一点

非常认同博主对jquery和seam的评价

偶现在就在搞一个jqeury+struts2+spring的东西
  回复  更多评论   

# re: 成熟的架构+创新的扩展 2008-07-10 13:08 AM

jqeury是什么啊,是新技术吗  回复  更多评论   

# re: 成熟的架构+创新的扩展 2008-07-15 21:19 leekiang

真是英雄所见略同啊,可惜我不是英雄。  回复  更多评论   


只有注册用户登录后才能发表评论。


网站导航:
 

导航

留言簿(15)

随笔分类

值得一看的博客

积分与排名

最新评论

阅读排行榜