2009-12-03 77 views
4

我想在java web开发中采取下一步,我希望深入了解&反馈:我的下一步应该是什么以及如何最好地采取它们。用java开发下一步?

在学习java web开发的基础知识时,我将一个简单的web应用程序放在一起,它执行简单的会计和财务计算。 Web应用程序是一个JVM,使用Tomcat,并具有标准的网络功能 - 即登入/登出,基本保障等

我怎样才能让这个网络应用更多的“企业级” - 分配的功能可以通过不同的服务器/ jvms,HA,可平衡的等等。

我需要了解/学习什么? - 即EJB3和Spring框架(好像春天是更好的选择),REST和/或SOAP等

一个会如何建议(书籍,网站等)我学会了 “要求”(见前面的行)

谢谢!

+0

我假设你已经熟悉MVC?否则,这将是“企业就绪”之前的第一步。 – BalusC 2009-12-03 16:17:36

+0

是的,我熟悉MVC。作为附加信息,该应用程序使用Stripes框架构建,并使用域驱动设计,DAO和服务层。 – Ari 2009-12-03 18:33:15

回答

2

有几件事情要考虑,深思:

  • 有多好应用程序的错误处理/记录?例如,如果用户试图将货币值放入X中,应用程序会做什么?
  • 什么是在用户的应用程序中配置的,什么是配置文件和什么是在数据库配置方面?你有密码在应用程序内加密吗?
  • 构建此应用程序将使用哪些模式?现在您有原型可以看到使用的模式吗?
  • 此应用程序是否准备好处理不同的货币和语言?
  • 如果有人离开屏幕几个小时并尝试使用表单会发生什么?
  • 应用程序具有哪些管理功能?
  • 它处理用户禁用JavaScript的情况吗?
  • 你的应用程序的局限性是什么?IOW有什么办法不能处理它?
  • 您是否考虑尝试为应用程序编写手册?
5

在我看来,你应该针对同一个问题尝试不同的方法,所以你可以比较不同工具和框架的优缺点。

例如,尝试使用EJB构建应用程序,然后使用Spring创建相同的应用程序。以JSF编写代码的表示层,然后使用Tapestry重写它。

我认为这对你很有帮助,因为当你为未来的发展选择工具时,你将能够做出最好的决定。

+0

您声明:“...尝试使用EJB构建应用程序,然后使用Spring创建相同的应用程序。”你能推荐任何可以帮助我学习Spring的资源(书籍),所以我可以在Spring中做EJB3的等价工作吗?在某种程度上,我已经在表现层上玩过了 - 我使用不同的框架(Struts2,Stripes和Wicket)构建了相同的组件,以确定我首先想要使用哪一个组件。有什么特别的我必须知道吗? – Ari 2009-12-03 17:53:14

+0

我认为这是一个神的开始:http://download.oracle.com/docs/cd/E11035_01/wls100/programming/spring.html 另外,我觉得Spring Framework的参考文档是一个很好的信息来源。他们与JEE进行了许多比较,以证明他们的选择合理,甚至还告诉你何时使用JEE技术而不是Spring更好。 – Alexandre 2009-12-12 19:04:03

1

让一些真正的用户使用您的应用程序。通过让真实用户使用它,您会惊讶于您的应用可以执行多少“新”功能/改进(以及您将学会满足这些要求的技术)。

0

我建议你为每个你想学习的新框架/库创建一个小的Java实验项目。

我已经使用maven帮助我快速并始终如一地创建Java项目,我一次试验一种技术,比如Spring,Hibernate等,我使用maven的网站生命周期来记录笔记了解我学到的知识并记录如何构建和运行每个项目。因此,现在我有20个左右的项目可以用作基线项目,每个框架都有一个项目可以用于构建。

此外,我更喜欢购买和阅读书籍,而不是依靠谷歌和网站来学习新的框架。似乎我能够以这种方式更快地学习。

我还建议您编写您自己想要使用的网络应用程序。或者写一个网络应用程序,解决您遇到的问题。我发现我通过这种方式学到了很多东西,而不是简单地从教科书中的例子中复制和粘贴。

希望帮助, - 戴夫

+0

嗨戴夫, 你试过蚂蚁以及?你觉得Maven相对容易还是难以拾取? 我也发现(更喜欢)阅读书籍更容易学习,但有时我能在网上找到精彩的演讲,讲座等。 谢谢, Ari – Ari 2009-12-03 18:06:48

+0

我用了很久的蚂蚁。在使用ant时,我尝试使用Maven作为依赖管理器。 但是如果我不得不这样做,我会咬下子弹,学习Maven,并使用Maven而不是蚂蚁。我发现Maven在使用它时感到困惑。但是现在,在阅读在线Maven书籍(就像google的“maven book”)之后,我发现maven很容易理解,并且使我的工作效率更高。 – Upgradingdave 2009-12-03 19:17:06

0

Spring或挂毯将是新学的很好的选择。您的应用是否使用任何网络服务?如果不行的话。与其他应用程序服务器(如JBoss和Weblogic)一起工作,并注意它们与java的细微差别。我还建议学习Maven并将其应用到构建/部署过程中。

玩得开心, 迈克

+0

通过“您的应用程序使用任何Web服务?如果不工作的话。”你问我的应用程序是否消费或提供Web服务? 无论哪种情况,您能推荐哪些材料可以帮助我吗? 另外,是Maven的路要走,即我应该学习它(或之前)蚂蚁? – Ari 2009-12-03 18:02:33

1

我建议以下书籍/教程是为每一个Java开发人员必须:

  • 曼宁:春天在行动 - 第2版
  • 曼宁:Java持久性与休眠
  • 核心JavaServer Faces
  • Adob​​e Flex(Adobe网站视频教程)
  • 有效的Java

除了标准的技术上面,你必须熟悉

  • 不同的测试框架,JUnit是必须的
  • 这样的构建工具Ant和Maven

您也可以通过下载MyEclipse或Flex Builder的试用版来构建小型项目。

0

通过学习一些测试驱动开发,您可以大大减少构建应用程序所需的时间。

尝试学习JUnit - 现在它正在成为一项核心技能,即使在不起眼的店铺。

如果您专注于网络,试用Selenium - 它具有Java控制器来驱动Java测试用例的测试。

中投入了一点时间后,无论您在上工作的框架或应用程序如何,TDD都会付诸东流。如果你学习测试驱动你的代码,你将会得到更小,更干净的代码和更少的调试。

+0

我正在学习JUnit的过程中;我已经变得精通,但并不完全符合我的愿望。 我简单看了一下硒站点,看起来很有用;我将不得不进一步调查。 – Ari 2009-12-03 17:59:32

+0

这可能是值得一看Steve Freeman的新书(JMock的合着者)。http://www.growing-object-oriented-software.com/ – daf 2009-12-03 18:04:00

0

您可以看看AppFuse,它是一组Java事物。

或者,你可能会在几个技术看一看一起玩,并添加:

  1. 版本控制 - SVN
  2. 工具 - Ant或Maven
  3. 框架 - 春,煤层, Struts的
  4. ORM - Hibernate或者iBatis的
  5. 测试驱动开发 - JUnit中,艾玛
  6. 持续集成 - 哈德森

我也会阅读Pragmatic Programmer和/或Code Complete。

0

请允许我声明“企业” - 已不一定意味着横向扩展解决方案,许多企业Java应用程序都运行在需要长期运行系统技能的大型系统上。

我建议掌握了Java语言运行,了解字节码和装载如何遍历JVM对焦点在任何给定的框架。

说到框架,如果您真的有时间,请尝试自己重新创建一个应用程序框架。尝试并重新发明车轮。海事组织是一个很好的教训,为什么框架本身存在,教导人们使用这些功能,而不是总是试图解决它们。

还有一件事,永远不会忘记数据库。我不在乎那些看起来像Oracle,MySQL或NoSQL的东西,而是成为数据存储的同等主人。

+0

在我的问题中,我打算“定位企业”意味着 - HA,可扩展性(参考客户和未来功能)和可维护性。 据我所知,上述可以通过分发我的应用程序 - 在一组服务器上具有Web层,在另一组上的业务层等等来实现。我已经学习了2种分发我的应用程序的方法--Spring和EJB3。为此,我有兴趣学习Spring。有另一种方法吗? 我努力掌握java语言和运行时,但这需要时间和练习;你不会碰巧知道一个捷径? :-) – Ari 2009-12-03 18:58:00

+0

就像我说的,把你的想法(应用程序分发),并尝试从头开始创建必要的胶水,不要使用现有的框架。介绍了解这些事情的最佳途径。此外,对应用程序进行分层是“扩展”的多种方式之一,但不是唯一的,在这里和即将推出的大型平台平台上,也可以理解如何在自己的JVM中进行扩展。 – Xailor 2009-12-03 21:35:24