采用Java开发的下一步?

时间:2009-12-03 15:32:45

标签: java web-applications

我想在java web开发中采取下一步,我希望能够获得洞察力和信息。反馈意见:我的下一步应该是什么,以及如何最好地采取它们。

在学习java web开发的基础知识的同时,我整理了一个简单的Web应用程序,它可以执行简单的会计和财务计算。 Web应用程序位于单个jvm上,使用Tomcat,并具有标准Web功能 - 即登录/注销,基本安全性等。

如何让这个网络应用程序更加“企业就绪” - 在不同的服务器/ jvms,HA,平衡能力等上分发层的功能

我需要知道/学习什么? - 即EJB3或Spring Framework(似乎是更好的选择),REST和/或SOAP等。

如何推荐(书籍,网站等)我了解“要求”(参见上一行)

谢谢!

10 个答案:

答案 0 :(得分:5)

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

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

我认为这对您非常有帮助,因为在为您的未来发展选择工具时,您将能够做出最佳决策。

答案 1 :(得分:2)

要考虑的一些事项,作为思考的食物:

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

答案 2 :(得分:1)

EJB或Spring?现在被问到很多,here's a decent related question about them

答案 3 :(得分:1)

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

答案 4 :(得分:1)

我建议每个Java开发人员都必须阅读以下书籍/教程:

  • Manning:Spring in Action - 第2版
  • Manning:Java Persistence with Hibernate
  • 核心JavaServer Faces
  • Adob​​e Flex(Adobe网站视频教程)
  • Effective Java

除了上述标准技术,您必须熟悉

  • 不同的测试框架,JUnit是必须的
  • 构建ANT和Maven等工具

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

答案 5 :(得分:0)

我建议您为要学习的每个新框架/库创建小型java实验项目。

我使用maven取得了很好的成功,帮助我快速,一致地创建了我用来一次试验一种技术的java项目,比如Spring,Hibernate等。我使用maven的网站生命周期来记录关于我学到了什么,并记录了如何构建和运行每个项目。所以,现在我有20个左右的项目,我可以用作基线项目,每个框架一个,用于构建。

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

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

希望有所帮助, - 戴夫

答案 6 :(得分:0)

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

玩得开心, 麦克

答案 7 :(得分:0)

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

尝试学习JUnit - 它现在已经成为一项核心技能,即使在不成熟的商店也是如此。

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

TDD投入一点时间后,无论您使用哪种框架或应用,都会获得回报。如果你学会测试驱动代码,你最终会得到更小,更干净的代码和更少的调试。

答案 8 :(得分:0)

您可以查看AppFuse,它是一组Java内容。

或者,您可以查看一些可以使用的技术并添加:

  1. 版本控制 - SVN
  2. 工具 - Ant或Maven
  3. 框架 - Spring,Seam,Struts
  4. ORM - Hibernate或iBatis
  5. 测试驱动开发 - JUnit,Emma
  6. 持续整合 - 哈德森
  7. 我还会阅读实用程序员和/或代码完成。

答案 9 :(得分:0)

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

我建议掌握Java 语言运行时,了解字节码和加载如何遍历JVM而不是关注任何给定的框架。

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

还有一件事,永远不会忘记数据库。我不关心看起来像Oracle,MySQL或NoSQL,但也成为数据存储中的平等主人。