如何设计和构建Java / Java EE Web应用程序?[已关闭]

2022-08-31 19:43:25

我是Java开发人员,在Struts,Spring和Hibernate方面拥有近5年的经验。

几天后,我们将有一个新项目。我们有完整的要求,我们将使用Spring MVC,Spring和Hibernate来完成这个项目。

我被要求设计和构建整个Web应用程序。设计和创建架构师是我职业生涯中迄今为止从未做过的事情。我不知道我该怎么做,从哪里开始,使用什么工具等等。我甚至不知道设计和建筑的A,B,C。

你可能想知道为什么我被要求首先这样做。问题是我有机会这样做,在每个阶段我都会受到监控,我会让我的前辈审查设计。

因此,欢迎任何建议,想法和步骤开始并继续前进。


答案 1

我可以从我自己的经验中添加我的2美分(尽管它更像是开发最佳实践的汇编,但您可能会发现在设计应用程序时牢记它们很有用):

  • 没有放之四海而皆准的设计
  • 尽量保持应用尽可能轻。
  • 使用 Maven/Gradle 管理依赖关系
    • 不要过分依赖 IDE。确保项目在没有IDE的情况下生成(如果您使用的是maven/gradle,它将:)尝试使用 IDEA、Netbeans 和 Eclipse 打开您的项目。
  • 对于上面提到的技术,appfuse是一个很好的起点。
  • 首先设计数据库/实体
  • 明智而明智地使用库。不要过度使用它们。
  • 不要忘记编写JUnit/TestNG(至少对于服务层)
  • 在所有主流浏览器上测试应用程序(不仅仅是您喜欢的浏览器:)
  • 确定 Web 应用的总用户数和并发用户数。
    • 然后确定是否需要缓存。
    • 您将使用应用程序服务器群集,或者不使用。
  • 根据应用程序服务器的功能选择应用程序服务器,更重要的是“您的需求”
    • 雄猫/码头在大多数情况下绝对没问题
  • 避免使用任何特定于应用服务器的 API
  • 使用 JPA 接口/注释,即使使用休眠作为 JPA 实现
  • 在实体中映射关系时要格外小心。确定哪些属性和关系将延迟加载,哪些属性和关系将急切加载
  • 在设计应用时牢记应用安全性。弹簧安防是绝佳的选择。
  • 永远不要滥用HttpSession。不要在其中存储太多。
  • 使实体保持可序列化。强制开发人员使用 toString()、hashCode() 和 equals()
  • 不要忘记从第 1 天起使用版本控制
  • 不要只是假设spring/hibernate/spring-mvc将是你的最佳选择。创建具有至少3到4个选项的小概念证明。
  • 尝试使用 Jenkins 等 CI 工具自动集成/构建/部署
  • 检查和调整休眠生成的 SQL(不时)
  • 不要让业务逻辑渗入视图层。讨厌 jsp scriptlets?考虑速度/自由标记。JSP 不是唯一的选择。
  • 通过使用Spring的PropertyPlaceholderConfigurator外部化特定于环境的配置。
  • 如果可能的话,尝试与现有的用户身份验证机制(如LDAP / OpenID)集成,而不是编写自己的机制。这将使您免于重新发明轮子,并使用户免于记住另一组用户名和密码。

答案 2

对于体系结构设计文档,您需要具备几项内容。这不是一件容易的事,但道具如何抓住机会。由于这是一个非常大的问题,希望这些链接可以让您入门,并且可以在弄湿脚后完善问题。

方法论

您使用的方法将影响您首先承担的任务。瀑布是一种流行但过时的方法。一种较新的方法是敏捷,它有几个方面。我最喜欢的是Scrum Agile,用于开发任何规模的软件。

关系图是将系统表示为整个系统以及单个组件的最有效方法之一。您创建的逻辑示意图类型取决于系统。通常有结构图,行为图,交互图和许多其他图。这些图表显示了整个系统的各个部分,每个组件的物理布局和/或逻辑布局,通信流,过程流等。

文档

文档就像它听起来一样,文档和文档具有项目描述,范围,用户案例,序列图以及描述项目或项目片段的任何其他文档。


推荐