我是如何成为一个Java Web开发者的

jopen 9年前

我是如何成为一个Java Web开发者的

英文原文:How Do I Become a Java Web Developer?

最近有人在我的 非死book 页面上问我,“我怎么才能成为一个 Java Web 开发者?”对于这个问题,答案其实并不简单。成为一个 Java Web 开发人员包括很多方面。我遇到过的 Java 程序员,可能曾是优秀的前端开发人员,也可能以前是不错的后端开发人员。所谓“前端”,我指的是众多浏览器端技术——HTML、CSS、 Javascript,以及 Java 模板技术,如 Thymeleaf、SiteMesh,或者古老的 JSPs。后端开发人员有更坚实的 Java、数据库(SQL 和 NoSQL),消息传递(JMS/AQMP)和 Web 服务(SOAP/REST)技能。

你应该也知道所谓的“全栈”Java 开发人员。这是个人的技能集合。一个完整的全栈开发者应该同样胜任前端开发和后端开发的工作。这可能是难度系数最高的一条路了,因为所涉及得技术非常多 样。也许有一天,你前一秒还在 jQuery 调试,接下来就去性能调优 Oracle 数据库查询了。但是,成为一个全栈 Java 开发人员是需要时间和经验的。

从哪里开始?

对于有抱负的开发人员,技术的前景会成为压倒一切的动力。但是技术也是在不断变化发展中的。你会冒着学习的东西很快就会过时的风险吗?

客户端技术

我建议新手开发人员可以从基础的学起;HTML,CSS 和 JavaScript。这些技术是 web 开发的核心。而且这些技术在某种意义上说也是通用的,无论你是 Java web 开发人员还是 Ruby Web 开发人员都要用到。

HTML

HTML——超文本标记语言。这是用来生成网页的。你需要对 HTML 有一个深入的了解。在万维网初期,HTML 习惯上是一个由网页服务器向浏览器提供的文件。它对静态内容非常有效。不会改变内容。但是,现在人们越来越倾向于动态的内容。于是,HTML 不再是静态的文件,HTML 开始按需生成。作为一个 Java web 开发者,你得会编写如何为网页浏览器生成 HTML 文件的代码。你需要对 HTML 文档的结构有一个深刻的理解。

CSS

CSS——层叠样式表。这是用来显示页面样式的。它控制字体、颜色和布局。与 HTML 定义的是网页的内容不同,CSS 定义的是当在浏览器中呈现时网页的外观。例如,你可以对桌面 Web 应用程序使用一套 CSS 规则,对移动应用程序使用另一套不同的 CSS 规则。相同的 HTML,当渲染在浏览器上时,就有了两个完全不同的外观。

Javascript

Javascript——制作网页上的东西。不要将 Java 与 Javascript 混淆。虽然它们有一些语法的相似性,但这是两个完全不同的编程语言。JavaScript 才能真正推动 Web 2.0 应用程序。通过使用 Javascript,你可以根据用户的操作,动态地改变 HTML/CSS,提供更有视觉感受的网页给用户。

HTTP

HTTP(超文本传输协议)——客户端和 Web 服务器之间的通信。有太多的 web 开发人员居然对 HTTP 一无所知。HTTP 绝对是你必学的关键技能。尤其是当你要用 AJAX 工作的时候。你需要知道一个 POST 和一个 GET 之间的区别。你应该记住 HTTP 状态码 200,301 和 404 的含义——以及更多。作为一个 Java web 开发人员,你的日常工作不可避免要与 HTTP 打交道。

服务器端技术

Java

Java——本文的问题就是如何成为一个 Java web 开发人员。所以,你当然得知道 Java 编程语言。除了 Java 本身,你还应该熟悉 Java Servlet API。有一些 Java web 框架,隐藏着 Java Servlet API 的用法。如果出现问题,那么你需要知道幕后究竟发生了什么事情。

JPA

JPA——Java 持久性 API——使用数据库。JPA 是 Java 传统关系数据库的标准。Hibernate 是现在使用最广泛的 JPA 实现。作为一个 Java web 开发人员,你肯定要用到数据库。你要从数据库中得到内容,以显示在网页上,或从用户那里接收内容存储到数据库中。所以,Java web 开发人员需要知道如何使用 JPA。

Java 应用程序服务器

Java 应用程序服务器——Java web 应用程序的运行时容器。Tomcat 是到目前为止最流行的 Java 应用程序服务器。Web 应用程序归档文件,又名 WAR 文件,有一个 Java 标准。这些被部署到应用程序服务器,如 Tomcat,以此为你的 web 应用程序提供运行环境。十年以前,还流行在应用程序和应用程序服务器之间应用更复杂的耦合。然而,现在的趋势更支持应用程序和应用服务器之间的松散耦合。

Java 框架

请注意,到目前为止,我还没有提到任何 Java 框架。我所描述的,都是你作为一个 Java web 开发人员会用到的不同技术。客户端技术完全独立于服务器端技术。Firefox 不在乎,服务器运行的是 Java,Python 还是 .NET。不过,新手开发人员似乎常常遗忘这一点。

不使用 Java 框架的 Java web 开发也是可以的。但是这样一来,你需要额外写很多代码来处理原本框架可以为你办到的事情。这就是为什么开发 Java web 应用程序时,你通常会想要使用某一个框架。

Spring 框架

Spring 框架是构建 web 应用程序一个非常棒的工具集合。虽然没有精确的统计数据,但我看到有文章估算已有超过 60% 基于 Java 的 web 应用程序使用 Spring。这其实也不奇怪。Spring Core 有 IoC 容器和依赖注入。Spring MVC,是一款基于 MVC 的成熟又灵活的 web 框架。Spring Security 是保护网站最好的工具。Spring Date 有助于维护持久性。Spring 还有其他的项目,你可以用来构建大范围推广的应用。

当涉及到整体框架时,真的找不到替代品代替 Spring。哪怕存在着很多针对不同 Spring 项目的竞争技术。但是,没有单一的解决方案,能够具备 Spring 框架系列项目的深度和广度。在我的 Spring 入门在线教程上,我对主要的 Spring 框架项目做了一个很好的概述,并说明了如何使用它们来构建企业级应用程序。

Grails

Grails 是建立在 Spring 之上的快速应用程序开发框架。它不但拥有 Spring 的所有内容,还借鉴了 Groovy 的生产力优势。我喜欢将 Grails 形容为用 Groovy 包装过的 Spring。关键一点要记住的是,其背后依然是 Spring。

Grails 现在越来越受到企业的欢迎。Grails 的优势之一就是其出色的社区支持。

Spring Roo

Spring Roo 是一个纯 Java 框架,这似乎和 Grails 的作用相同,不过它没有 Groovy。我不是 Spring Roo 的的粉丝,并且我最后一次使用 Spring Roo 也不是因为市场要求。Spring Roo 还没有被广泛接受。

Play

基于 Scala 的框架。虽然我还没有尝试过 Play。但是现在市场上面的反响不错。所以有机会的话我会试一试。不过它目前还没有被企业中广泛采用。至少到现在为止还没有。

JBoss Sea

JBoss Seam 可能是最接近 Spring 框架的替代品。JBoss Seam 遵循 JEE 标准。JBoss Seam 是一个很好的选择,具有良好的支持而被企业所接受。不过,JBoss Seam 经常因为在开发和性能方面比 Spring 慢而饱受诟病。但是有的批评对于 JBoss Seam 过于苛刻了。

结论

成为 Java web 开发人员是不可能一蹴而就的。没有所谓的《21 天自学成为 Java web 开发者》的速成教材,也没有捷径。你需要学习和掌握很多不同的技术。而所有这些都需要时间来学习。

成为 Java web 开发人员是一个非常有意义的事业。你刚入门的时候可以只专注于前端技术,也可以只专研后端技术。随着以后开发的项目增多,你就可以从这一技术领域转移到另一个技术领域。

如果我现在作为一个 Java web 开发人员入门的话,我会先专注于客户端技术,因为客户端技术独立于服务器端技术。因此,等你入门了以后,你将会有更多的就业选择。此外,虽然客户端技术的 薪酬通常比服务器端的低,但这会是一个良好的开端。你可以快速获得技能以便于就业,然后再转移焦点,拓宽技能集,以谋求更好的就业机会。

-

译文链接:http://www.codeceo.com/article/how-i-be-java-web-developer.html

翻译作者:码农网 – 小峰