前台与后台并举,最近一年将要研究的技术

阅读更多
2007年是IT界不寻常的一年,网络的泡沫视乎又长起来了,在JDON里潜水日久,也大概偷窥出一些天下大势走向,现在在此下定决心:
首先先分析现在的形势,软件界主流是web开发,这web的地位大概可以保持十年甚至更久,由此可见web的技术是十分有必要的学习的。我们可以走两条路线:一,外功派;二内力派。外功派以研究别人源码,必修课如JPetStore和Jive,通过短期读书自己写些项目学习框架等知识硬啃下来,核心是TDD,修为时间相较短,外功也分多层,从第一层语法,第二层代码结构,第三层系统架构,一直深入都最深层,就是相互整合,宏观比较,这一路走来还真是不容易;相较外功,内力的修炼就更难了,主要是提高自己的OO设计水平,走国际化道路,接触老外一些开源项目,E文提高,核心是DDD,设计模式与层次概念,一般需要5-6个项目后才会提升一个层次。
外功的门派众多,有前台与后台技术之分。前台技术众多,现今的趋势是ajax,但不会持久,最大原因是ajax对搜索引擎不友好,没有商业价值的东西市场很难做大,90%的公司做web化的目的就是为了宣传,ajax方便是方便,是一堆大杂脍,不过代码好丑陋,本身就是ria的过渡应用,JS这种语言也走不远的,虽说现在轻视JS将来找工作会吃尽苦头的,但身为一名java面向对象的程序员,始终觉得Js这种过程式的语言有违面对对象的意愿,DWR或者prototype是必须掌握的,FLEX等是flash应用,不用说,效果是最好的,而flash又局限于浏览器,如果浏览器的性能不改进和网络带宽浏览速度等的问题,flex和微软的Waml是没前途的。XML是下任的显示标准,不过觉得XML做显示不好,这样的话数据就与逻辑,显示混杂起来,本来XML就是数据友好而不是显示友好的,不推荐;其他RIA应用其实不用多说,因为不熟悉,不过Sun One的重点之一JAVA FX(另一个是groovy)可以关注一下,Java Me的替代品,打算毕业的时候就去做一个Java Fx的课题,sun你要在我毕业前把Java Fx弄出来阿!
后台的技术繁杂,武林盟主J2EE称霸多时,以可重用,可伸缩,可维护,可靠安全稳做复杂的企业应用之位,不过框架繁多,不太统一,struts1.x统一日久,web框架需要新的有活力的框架,jsf,tapestry,wicklet,webwork等等,业务层选择就比较少,不过也有spring/ejb/seam/国内的jf,持久层hibernate/jpa/toplink/ibatis,他们都是优秀的框架,但也各有优缺点,将后的框架走势个人认为是官方的jsf+seam+ejb+jpa和开源的tapestry(与ajax融合最好,不过难学,开源的web框架竞争很大)+spring(一直游离标准之外)+hibernate(一直都很好),ssh的经典架构已经日落黄花了;
soa的发展还很幼嫩,web service很有市场,axis是肯定要学的,而且还要去钻研soap,rest其中之一的,现在还是相争对峙的阶段阿。呵呵,只能等真正的标准出来吧。
Rails的出现,的确对java的阵营出现了冲击,冲击对我来说也是很深的,不过它们也有很多致命的弱点,如控制层与业务层的混合,缺乏i18n与l18n的支持,令我很难相信ruby可以追赶java,只不过它的成功思想被很多框架所借鉴,有zope,catalist,php的框架,但它们比ror还不够成熟,而且我们看到的是java是两极发展的,官方受开源组织的影响走向简单化,而在soa方面,java比.net,corba之类的做得还大,我们可以从EBI看到了java重新想称雄的决心。另一方面,PHP这种定位明确的语言,与ROR有着功能上的重定位,其争斗是必然的,感觉PHP还得努力超越ROR,PHP5才刚支持ROR,会不会被新军突起的ROR干掉呢?说不定。。不论如何,它们争的是小中型的开发,复杂的应用使用ROR和PHP是很不明智的,它们只会使你的代码混乱,满布逻辑与控制,最后陷入维护困难的陷阱之中,而且我觉得它们开发效率说比java会2-10倍的说法十分好笑,一个具有熟练经验的SSH程序员开发WEB应用,配合上优秀的项目管理优化工具,开发效率会比ROR之类的应用慢吗?当然,Ruby社区也不缺乏很多Java的高手,也包括了OO大师,说实话,Ruby是比Java更面向对象,掌握ROR也是比较重要的。同时,java内有类rails的gails框架,绝对可以做得比ROR更好,grails也是要努力学习的对象。

都谈完基本的WEB技术了,到一些传统的但又比较实际的技术,如服务器,数据库,tcp/ip programming,shell programming,算法,opensolaris等等,其实ORM已经解决了数据库的问题了,不过一些简单的存储过程还是要会写。要学习shell是为了与xxnix接轨,服务器方面主要是weblogic与tomcat,听闻websphere配置十分繁琐,ibm的东东就算了,不敢去碰,还是weblogic好....算法是面对笔试的,不过本来我的算法不怎么样,其实我对算法很反感的,与OO相比,算法就是一个异类,包装在业务层,一般的应用需要的时候却不是很多。。opensolaris同shell,熟悉unix,而且还想赢一笔sun的奖金。。
总结
前台
ajax(重点了解js与xml)
DWR
Java FX(其实也不算是前台的技术,客户端技术)
后台
seam
ejb3.0
tapestry
rails
grails
其他
数据库使用(主要是mysql与oracle)
opensolaris 10
算法
shell编程
内功
DDD
设计模式
自写MVC框架

你可能感兴趣的:(Rails,框架,Seam,Ajax,算法)