漫谈:选择Java Web开发真不容易 < 技术族谱

22 篇文章 0 订阅

原文地址:http://blog.csdn.net/jinxfei/article/details/5471474


平时在工作的时候,总是觉得刚毕业的同事们对技术的理解不到位,知其然而不知其所以然。可是,静下心来想一想,这也不能全怪他们,不是新人们不爱学,而是现如今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,创建初始的 web.xml。

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 大家庭的繁荣,以及程序员的兼容并蓄了。

首先,会 JavaJsp 那是肯定的。

而框架方面呢,我一直不待见 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等一系列的框架。

本文涉及的部分技术,每一个要想做到一定程度的熟悉,都需要不少的时间, 
我个人觉得,这个时间跨度为1-2年比较合适, 
所以,新入行的朋友们,要在工作前两年经常想一想,自己是不是在各方面逐渐深入,还是一直在做重复性的工作呢?


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值