构建长期应用程序架构

时间:2011-11-30 23:15:04

标签: java java-ee architecture

我有兴趣了解Web应用程序是如何发展的。我们的想法是,如果应该在基于Java的Web应用程序中引入新技术或设计方法,那么值得探索的前5-10种技术是什么?如果有人可以指出好书或在线资源来进行这项研究,那将会很有帮助。

3 个答案:

答案 0 :(得分:1)

一个关键方面是开发人员的工作效率。 Matt Raible(通常是非EE空间)和Adam Bien在EE6空间中进行了一些优秀的研究和演示。

答案 1 :(得分:1)

对于我所有快速且有效的网络解决方案,我使用Grails。它提供了生产力,合理的性能。它受VMWare支持,因此长期支持看起来不错。

答案 2 :(得分:1)

您的应用程序随着时间的推移成功发展的能力更多地与您的软件架构有关,而不是与您的技术或方法有关。但是,您选择的技术和方法将影响您构建软件的方式。

首先,知道你的反对意见。在20世纪60年代后期,人们开始研究应用程序随时间发生的变化。在过去40年中,这些观察已被转变为一系列法律(参见Meir Lehman)。这个东西看起来很明显,但它是一个很好的起点:

  • 随着系统的发展,除非进行维护或减少工作,否则其复杂性会增加。
  • 必须不断增加系统的功能,以保持用户在其生命周期内的满意度。除非严格维护并适应运营环境的变化,否则系统的质量似乎会下降。

如果您长期处于这种状态,那么最大的问题可能是组织问题,而不是技术问题。例如,开发人员已经知道并喜欢使用哪些技术?如果开发商计划坚持公司5到10年,那么问一下激励他们的未来是什么。收集有关“热门”Web应用技术的想法的最佳地点是http://www.infoq.com/

考虑哪种方法适合您组织的技术和业务文化。敏捷开发很棒,但它并不适合每个组织或每个环境。

考虑供应商。我曾经在一个真正的蓝色IBM商店工作,因为IBM制造了坚实的软件和硬件。但是,客户真的被锁定在供应商中。客户端在1997年仍然使用令牌环网络和OS / 2.在需要时给自己一些空间来切换工具和技术。一个活生生的呼吸应用程序几乎永远不会幸存十年使用,而不需要至少切换一次技术堆栈。

要真正创建一个能够应对商业环境变化的软件设计,请遵循旧的格言“构建一个扔掉”。我们曾经使用新的操作系统,新的编程范例,从绿屏终端到胖客户端GUI的转换来构建新系统......这是对公司信息技术的彻底改造。如果我们没有制造原型并扔掉原型,我们就永远不会成功。当我们构建原型时,我们第一次没有选择所有正确的技术和方法。但是,当我们建立生产系统时,我们有机会纠正这些错误。这只有在您可以创建原型然后在用于实际业务需求之前将其丢弃之后才有效。一旦应用程序投入生产,“扔掉一个”的窗口就消失了。

祝你好运! -Aaron