我想在java web开发中采取下一步,我希望能够获得洞察力和信息。反馈意见:我的下一步应该是什么,以及如何最好地采取它们。
在学习java web开发的基础知识的同时,我整理了一个简单的Web应用程序,它可以执行简单的会计和财务计算。 Web应用程序位于单个jvm上,使用Tomcat,并具有标准Web功能 - 即登录/注销,基本安全性等。
如何让这个网络应用程序更加“企业就绪” - 在不同的服务器/ jvms,HA,平衡能力等上分发层的功能
我需要知道/学习什么? - 即EJB3或Spring Framework(似乎是更好的选择),REST和/或SOAP等。
如何推荐(书籍,网站等)我了解“要求”(参见上一行)?
谢谢!
答案 0 :(得分:5)
在我看来,你应该针对同一个问题尝试不同的方法,这样你就可以比较不同工具和框架的优缺点。
例如,尝试使用EJB构建应用程序,然后使用Spring构建相同的应用程序。获取用JSF编写的代码的表示层,然后使用Tapestry重写它。
我认为这对您非常有帮助,因为在为您的未来发展选择工具时,您将能够做出最佳决策。
答案 1 :(得分:2)
要考虑的一些事项,作为思考的食物:
答案 2 :(得分:1)
EJB或Spring?现在被问到很多,here's a decent related question about them。
答案 3 :(得分:1)
让一些真实用户使用您的应用程序。通过让真正的用户使用它,你会惊讶于你的应用程序中可以执行多少“新”功能/改进(以及你将学习以满足这些要求的技术)。
答案 4 :(得分:1)
我建议每个Java开发人员都必须阅读以下书籍/教程:
除了上述标准技术,您必须熟悉
此外,您还可以通过下载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内容。
或者,您可以查看一些可以使用的技术并添加:
我还会阅读实用程序员和/或代码完成。
答案 9 :(得分:0)
请允许我说“企业” - 并不一定意味着横向扩展解决方案,许多企业Java应用程序都在需要长期运行系统技能的大型系统上运行。
我建议掌握Java 语言和运行时,了解字节码和加载如何遍历JVM而不是关注任何给定的框架。
说到框架,如果你真的有时间,请尝试自己重新创建一个应用程序框架。尝试并重新发明轮子。国际海事组织这是一个很好的教训,为什么框架本身存在,并教导人们使用这些功能,而不是总是试图解决它们。
还有一件事,永远不会忘记数据库。我不关心看起来像Oracle,MySQL或NoSQL,但也成为数据存储中的平等主人。