【发布时间】:2018-02-17 00:48:59
【问题描述】:
我正在运行一个使用 Spring 和 Hibernate 以 Java 构建的电子商务网站。如果我必须简要描述当前的架构,那么它是这样的:
- 两个项目 - store front 和 admin
- Storefront 项目包含 dao、模型、服务、控制器和视图,用于显示网站的店面视图,还包含应用程序的 API
- Admin 项目包含 dao、模型、服务、控制器和视图,用于显示用于管理此电子商务商店的后端/管理界面。
- Storefront 和 admin 都独立地与通用 MySQL 数据库通信,并且每当需要在这两个项目之间进行任何通信时,他们都会使用 REST API 来实现。
- 我遵循此架构独立开发两个项目,保持轻量级并独立部署。
但我不确定这是不是正确的做事方式。我经常遇到的主要问题是:
- 它通常会导致代码重复,主要是在模型中,因为这两个项目都有,但它们中的大多数属性是共同的。
- 如果需要对数据库进行任何更改,那么我必须确保在两个项目中正确进行这些更改,因为它们都在进行独立的数据库调用。
请提出处理和构建此类项目的最佳方法。网站统计数据为:
- 大约 100 万种产品
- 月流量约100万
- 每天订单约 1000 个
我们希望在未来 9 个月内实现更多流量和订单增长。因此,建议您牢记未来的可扩展性。
【问题讨论】:
标签: java api web-applications architecture