面向软件开发人员的Java

时间:2010-12-22 13:39:14

标签: java development-environment

我是.NET开发人员(现在已经有一段时间了)。我在一家刚刚被一家大公司收购的组织工作,该公司的主要开发语言是Java。有一些.NET开发人员,但是现在团队合并后,.NET与Java的比率大幅下降。

话虽这么说,我已经决定开始Java开发是最好的。然而,到目前为止我所看到的“学习Java”的大部分书都采用了一种非常基本的方法(什么是类,OOP原则等等)。我对这部分开发感到满意并且不需要入门(除非有差异如此深刻,以至于有人从Java的角度推荐基础知识......)。

无论如何,我正在寻找一本关于Java开发的书籍推荐,从软件开发人员的角度讨论今天的技术。例如,MVC架构,应用程序最佳实践(我是一个Web开发人员,这包括Web服务),是值得使用JSP还是考虑使用Ruby等等。

巨大的奖金将是“通过实践学习”。像Murachs这样的东西,我可以从头到尾逐步完成一个项目,并且基本面足够轻,我不会觉得无聊。我希望能够带走足够的基础知识,为一些内部项目做志愿者,并从那里成长。

如果我的问题不必要地广泛,我很抱歉,但我正在努力寻找除Eclipse安装之外的起点(我在Ubuntu上这样做,故意避免使用Windows)。

感谢您提供的任何指导或见解。

编辑 - 在与同事讨论后,阅读Bert的伟大建议(所有这些都非常好,非常感谢你们),结果主要关注EE和Glassfish。他们使用NetBeans进行开发,因为它与Glassfish紧密相连。

这对我来说意义不大,除了我认为并行绘制的是IIS / Web应用程序到Win32应用程序。但也许这有助于澄清我的OP中一些更开放的问题。

9 个答案:

答案 0 :(得分:21)

Effective Java作者:Josh Bloch

它可能不是“边做边学”,但它会深入了解如何有效地使用Java语言。

然后我会用Josh Bloch和Neal Gafter的Java Puzzlers补充它。

答案 1 :(得分:3)

我最好的选择是根据您的要求学习Spring:

  

MVC架构,应用程序最佳   实践(我是一名网络开发人员,这个   包括网络服务),是吗?   值得使用JSP或   考虑Ruby等等。

您可以从http://www.springsource.org/

访问SpringSource开始

答案 2 :(得分:2)

我想向您提出几点意见:

  • 基本的Java 语言相当小而C-ish。据我所知,C#和Java几乎完全相同。
  • Java 运行时库非常非常大,而且与C#不同。很少有人知道所有的Java 6运行时库。
  • Java有几种常用的IDE。您将需要学习团队其他成员使用的那个。

我建议您快速浏览Oracle Java教程,只是为了掌握精神并做一些练习,然后在互联网上查看常见的“Java for C#programmer”备忘单。然后做很多代码,然后阅读Effective Java。

(对于那些认为他们熟悉Java 6运行时的人,请考虑您是否熟悉RMI,Rhino Javascript引擎以及XSLT实现中的XPath以及其他所有内容)

答案 3 :(得分:1)

除非你在JVM上编写JRuby,否则Ruby没有任何意义。

如果您正在编写Web应用程序,则需要了解使用JSTL(JSP标准标记库),servlet,HTML,CSS和JavaScript编写的JSP。从Apache下载Tomcat - 它是一个servlet / JSP引擎,可让您在本地部署Web应用程序以进行学习。它内置了一个HTTP侦听器,因此您不需要IIS或Apache。

您需要知道如何创建和部署Web存档(WAR)文件。这是一个包含Web应用程序标准格式的ZIP文件。

我会看看Tomcat的“第一个网络应用”文档来了解它。

有了这个,回过头来谈谈框架。 (当你这样做时,我会推荐Spring。)

答案 4 :(得分:1)

答案 5 :(得分:1)

以下是我喜欢的一些参考资料。我相信还有更好的,但有些我已阅读并可以保证:

Java in a Nutshell是核心语言的经典摘要。如果您需要更多内容,那么有类似Java for Programmers的书籍可供程序员转换为Java(我读取它)。

Sun's Core Servlets and JavaServer Pages是一本关于Java servlet和JSP的好书。但是考虑到很多网络技术是建立在这个基础之上的(例如Spring),所以这可能会给你基础,但不会直接了解你将使用的特定框架。此外,目前很多网络技术都是基于客户端/ JavaScript / AJAX的,例如jQuery的。

至于MVC,请考虑专注于MVP。我一直在使用Google Web Toolkit来利用我的Java背景来创建客户端应用程序,但它也是了解MVP的好方法 - 阅读大规模应用程序开发和MVP Part IPart II以及GWT MVP Development with Activities and Places。但是,GWT不断发展。

我的最后一个建议是你缩小你的注意力 - 尝试弄清楚哪些框架在工作中流行并决定你是否要专注于一个层:前面(例如HTML / CSS / jQuery),中间(例如Spring),或后端(例如Hibernate)。一旦你想出来,然后发布一个更具体的问题(例如,学习XYZ的最佳资源是什么)。

答案 6 :(得分:0)

仅仅是我对java的经历(有限但我参加了一个教学JSP的Web开发课程)任何体面的技术通常都是第三方。但是,根据我在使用Netbeans进行Web开发时的情况,Netbeans特别在Ubuntu中内置了Tomcat,以便于调试。

答案 7 :(得分:0)

有关类似专栏的更多内容,您可以从这篇文章中找到答案

https://stackoverflow.com/questions/3820437/life-after-head-first-java/3820449#3820449

答案 8 :(得分:0)

Java环境非常广泛,您可能已经想到了。

有数百种框架和工具可用于基本上做同样的事情。要想一个想法,你可以看一下Matt Raible编写的this presentation,在那里他比较了许多Java Web框架。

正如其他人所建议的,你应该明确地看一下Spring Framework。它广泛应用于企业界。有几本关于Spring的好书。 如果你想以“教程化”的方式获得Spring MVC的基础知识,你可以看看这个book。它没有涵盖最新的Spring版本(3.0),也不是一本“完美”的书,但它应该让你在运行一些例子的同时获得基础知识。 此外,网上有数千个Spring-MVC教程。 例如,你可以看看: http://www.adobocode.com/spring/a-spring-web-mvc-tutorial

如今,RESTful服务也很受欢迎。我一直在使用JBoss的Resteasy框架,我发现它很容易设置和使用。这个book解释了REST架构,并使用Resteasy作为示例的框架。

我还推荐了O'Reilly的“Head First Design Patterns”。它涵盖了使用Java的最重要的模式,它将帮助您了解如何将语言用于您可能已经熟悉的模式。

还有一个建议:你可以考虑在Java TV上“调整”。这是一个包含数百个Java教程视频的优秀资源。它涵盖了广泛的技术,因此您应该能够找到适合自己的东西。