2010-12-03 43 views
1

我对Java开发的知识相当有限。我遇到了以下相当令人畏惧的,被称为“相当典型的Java堆栈”的组件/工具/框架列表。我会去调查这些,但还有什么应该在我的事情清单上知道一些事情?可以是下面的替代选项,也可以是不包含在此列表中的附加组件类型。我应该了解Java开发堆栈的哪些组件?

我的主要目的是做一些Scala开发,但实际上涉及到很多与Java的交互。

  • 检票
  • 休眠(JPA)
  • Atomikos公司(JTA)
  • 陶土
  • 检票 - 推(的cometd)
  • 道场
  • AspectJ的
  • XStream的
  • TestNG的
  • DBUnit的
  • EasyMock的
  • MySQL的
  • 码头
  • Maven的
  • 哈德森

编辑:当我说 “知道”,现在,我的意思不是知道他们深度以及如何与他们一起发展。我的意思是,我应该了解他们,他们是什么,并认识到我应该考虑什么时候使用它们。所以我有兴趣听到所有常用的工具/技术/框架,以便我可以对它们进行初步的调查。

+0

您是否在谈论Web开发,桌面应用程序开发,服务器端开发,嵌入式开发发展,移动开发,科学发展......仅举几例? Java在很多地方都有使用,你需要什么工具很大程度上取决于你要做什么。 – 2010-12-03 13:07:03

+0

Web开发,主要是服务器端(客户端可能主要限于测试服务器端的应用程序)。大型应用程序,与多个开发人员 – 2010-12-03 13:09:15

回答

4

这是一个相当大规模的服务器园区web应用程序的技术集合。

我建议您关注核心Java运行时并首先了解它,因为这是所有其他技术最终构建的基础。


编辑:由于你的重点是技术,我建议你开始学习如何在Java EE 6服务器比如GlassFish v3的我认为这是相当不错的编写和部署Scala程序。其原因很简单 - 您列出的所有技术都是独立的实体,需要将这些实体合并才能工作。通过使用Java EE服务器,您可以将许多功能整合到一个包中,因此您可以推迟实际的修补程序,直到您更熟悉基于Java的Web平台上的Scala环境。当你从“我已经编写了一个Scala程序”到“我编写并部署了一个Scala程序到我可以在这个网页上看到的生产Java EE服务器”时,你实际上已经完成了一个非一件平凡的工作。

+0

谢谢,但我的重点是现在的技术。我想有一个关键的介绍性知识(“全尺寸服务器园web应用程序”是我正在使用的应用程序的标题) – 2010-12-03 12:10:54

0

把你的列表放在积压,并开始与一个强大的IDE(日食或netbeans)。

我认为首先需要添加一个日志框架(log4j)和一个测试框架(jUnit或TestNG)。对于建设 - 我建议先看看蚂蚁,然后再移动到maven。

哈德森是伟大的,但它只有在你使用版本控制,问题跟踪和建设工具时才有意义(对我来说)。

+0

谢谢。我正在使用Eclipse – 2010-12-03 12:19:02

0

我认为自己是一名Java开发人员,并且您的列表中只有一个项目(我已经使用过)(XStream)。另外我知道其他5个项目,但其中大多数我从来没有听说过。

我认为http://download.oracle.com/javase/7/docs/api/overview-summary.html的东西比其他人在“相当典型的Java堆栈”时更为重要。如果你不知道你在标准运行时已经有了什么,你怎么知道你需要哪些额外的框架组件?大约有40000个课程需要了解。了解10元一天,你会掌握基础知识,10年:-)

0
  • 啪API - 良好的XMPP协议API
  • 萨克森 - XSLT处理器
  • Spring框架 - web开发平台
  • PostgreSQL的 - 伟大的RDBMS :)
  • 的java.nio
  • .....

还有许多,许多。

1

我只是会使用我用我自己

  • 休眠(JPA)的技术评论 - 这个框架可以让您轻松与关系数据库的记录作为普通Java工作对象
  • 道场 - Javascript库,方便客户端操作。如果你主要进行服务器端开发,你大多不需要担心这一点。
  • AspectJ - 面向横切需求的面向方面编程的实现。这是一个深深的兔子洞。这允许您以功能方式与Java代码进行交互。
  • DBUnit - 我只用它作为预加载数据库的工具,其中包含大量测试记录
  • EasyMock - 测试库允许您专注于单元测试单个功能块
  • MySQL - 标准RDMS
  • Jetty - servlet容器的纯Java实现。非常适合快速开发。
  • 的Maven - 管理你的项目和建筑的依赖性/部署你的项目构建工具