javaweb和java哪个难,漫谈:选择JavaWeb开发真不容易技术
族谱
平时在⼯作的时候,总是觉得刚毕业的同事们对技术的理解不到位,知其然⽽不知其所以然。可是,静下⼼来想⼀想,这也不能全怪他们,不是新⼈们不爱 学,⽽是现如今Java Web开发的确很繁复。表⾯上看,现在会Java的⼈多如⽜⽑,SSH 恨不得是每个 java 开发培训课的必选项⽬,但 WEB 开发的门槛,真的不低。当然,我说不低,是要以⼀个专业性要求为前提的,如果只是精于“C&P” ⼤法,其实还不能算“掌握”,顶多是“会⽤”罢了,更别提精通了。
在实际的⼯作中,由于以前项⽬的积累,已经基本上不会从头建⽴⼯程了,通常都是拿现成的⼯程框架开始做,避免了很多配置啊,依赖啊之类的繁琐的⼯ 作。但是今天⼜感受了⼀下,⽤了⼀天半的时间,从零开始,建⽴了⼀个 WEB ⼯程,所以才有这篇感慨⽂:Java Web 开发真的不容易。
那么,建⽴⼀个⽐较完整的WEB⼯程,并且跑起来(完成从前台到数据库的完整处理流程,哪怕只是插⼊⼀个整数),需要⼀个什么样的知识集合呢?
1、⾸先是环境准备。
通常,我们需要开发⼯具:Eclipse,或者MyEclipse。但我从来没有⽤过,我选Eclipse。
然后,选择WEB容器,最常⽤的Tomcat,或者Jetty,JBoss亦可。我选Tomcat。
2、选择数据库。
没有数据库,很难做出有价值的应⽤,所以,我们需要选择⼀个数据库,
⾃⼰研究,⽤的最多的是MySql,当然,Oracle,Postgres也很常见,
喜欢Sql Server的也不少,不过我已经N年没有玩过了。
我选MySql。
3、建⽴⼯程。
我相信很多⼈根本没有⾃⼰⼿⼯创建过WEB⼯程的⽬录结构,都是使⽤⼯具⾃动⽣成,我坚信,了解⼯具帮助我们⼲的事情⾮常必要,⽽且⾮常有好处的。这⾥主要是建⽴WEB-INF⽬录,WEB-INF/classes,WEB-INF/lib,创建初始的 l。
4、写代码前的准备⼯作
在真正开始写第⼀⾏代码之前,我们还需要做的准备⼯作有:
> 配置⽇志系统,java领域最常⽤的 Log4J
> 选择连接池,我⽤了C3P0
> 选择持久化技术。当然,直接使⽤JDBC也可以,不过现在多数项⽬还是⽤持久化层的,Hibernate 和 Ibatis,处于简单性考虑,选择Ibatis。
当然,这些准备⼯作,除了技术选型的决策,还都涉及到寻相应的 jar 包、 jar 包所依赖的 jar,以及写编写初始的配置⽂件,包括:
log4j.properties,c3p0.properties 和 ibatis 的⼀系列配置。据我所知,不了解 log4j.properties 配置项含义,只会拿来例⼦就⽤的绝不在少数,还有很多⼈,在将 web ⼯程发布到 tomat 以后,⽆法把 log4j.properties 配置与实际的⽇志⽂件所在的位置对应起来。
5、写代码测试配置,并验证不熟悉的技术(⽐如 ibatis,我第 0.2 次⽤,N 年前了解过)
这个过程耗时较长,尤其是 ibatis ,官⽅的⽂档并不丰富,使⽤它做到对数据库表的增、删、改、查,调了⼀个下午的时间,最后发
现,ibatis 出到了 3.0,但其配套⼯具ibator (⽤于⾃动从数据库⽣成表对应的 javabean 和 sql 映射⽂件)⽣成的配置⽂件语法完全不对,仔细⼀看,ibator 的最后更新时间 2008年,faint!
6、开始写⼯作代码
这时候就更体现了 Java ⼤家庭的繁荣,以及程序员的兼容并蓄了。
⾸先,会 Java,Jsp 那是肯定的。
⽽框架⽅⾯呢,我⼀直不待见 SSH,因此还是准备只⽤ Struts,这样可以不学强⼤的有点过于强⼤的Spring。
还有些技术点,要么是必然⽤到的,要么是很好⽤的,包括:
> XML处理,或者 JSON ⼆选⼀,现在 JSON ⼤有取代 XML 的趋势。
> Apache commons 系列的类库,尤其BeanUtils,StringUtils,API 多少了解⼀点还是很有好处的。
> JSTL,我⼀直很想为这项技术鸣不平,我觉得挺好的东西,但我周围的⼈都很冷落它。
然后,因为项⽬需要,我还要使⽤⼀些特定的技术:
> WEB Service技术,我⽤ Restful 模式,在Restlet 和 Jersey 之间选择,最后⽤了 Restlet。
> 需要做⼀些图表,选⽤ JFreeChart
> … 其实还有很多,不⼀⼀列举了
7、⼯程打包、发布
⽇常⼯作中,⼯程的集成、打包和发布,通常不是程序员需要关⼼的问题。但如果是你⼀个⼈在战⽃,除了会在 MyEclipse 的帮助下集成Tomcat 进⾏测试,最好掌握⼀种⼿段,把⼯程打包发布到独⽴的 Tomcat 下,从⽽避免繁琐的⼿⼯操作。
常见的⽅式有:
> ant
> maven
原来我⽤ ant,不过现在转投 maven 了,⽤熟了以后,感觉 maven ⽐ ant 要好很多,不过,ant 的价值在于灵活,有时候⽤于完成⼀些⾮标⼯作挺实⽤的,⽐如:增量拷贝⽂件等等。
如果再提稍微⾼⼀点的需求,那就是最好掌握 windows 下批处理⽂件和 linux 下 shell 脚本的编写。
8、版本控制
为了协作、分享或者是安全起见,保存代码的历史版本很重要,
因此需要选择版本管理⼯具,SubVersion 和 CVS 都很好,
不过我⽤ CVS 更熟练⼀些。
---
因此,做⼀个合格的 JAVA WEB 开发⼈员,真的是不⼤容易。
知识⾯要宽,学习能⼒要强,要善于触类旁通。
对了,我还忘了说前台相关的技术,那就是 javascript,CSS,ajax,有时候,还得搭上Flash,及JQuery等⼀系列的框架。
本⽂涉及的部分技术,每⼀个要想做到⼀定程度的熟悉,都需要不少的时间,
sql容易学吗我个⼈觉得,这个时间跨度为1-2年⽐较合适,
所以,新⼊⾏的朋友们,要在⼯作前两年经常想⼀想,⾃⼰是不是在各⽅⾯逐渐深⼊,还是⼀直在做重复性的⼯作呢?
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论