Java 将特定于应用程序的项(如API、数据库模型)和特定于平台的项分开是一个好主意吗

Java 将特定于应用程序的项(如API、数据库模型)和特定于平台的项分开是一个好主意吗,java,microservices,Java,Microservices,将特定于应用程序的项(如API、数据库模型和特定于平台的项)分开是一个好主意吗?例如:我有一个酒店管理平台,如预订、客房等,服务以API的形式公开,它有自己的数据模型 如果我想使用这个平台来实现资产管理这样的用例,比如床位、桌子、存货及其生命周期等的数量 将新的数据模型单独包含在现有的特定于平台的模型中是一个好主意吗?或者我可以创建一个新的应用程序后端并分离出新的数据模型和特定于用例的API吗?使用松散耦合的体系结构,保持独立的特定于应用程序的项和特定于平台的项总是很好的。原因是,一旦你通过了超

将特定于应用程序的项(如API、数据库模型和特定于平台的项)分开是一个好主意吗?例如:我有一个酒店管理平台,如预订、客房等,服务以API的形式公开,它有自己的数据模型

如果我想使用这个平台来实现资产管理这样的用例,比如床位、桌子、存货及其生命周期等的数量


将新的数据模型单独包含在现有的特定于平台的模型中是一个好主意吗?或者我可以创建一个新的应用程序后端并分离出新的数据模型和特定于用例的API吗?

使用松散耦合的体系结构,保持独立的特定于应用程序的项和特定于平台的项总是很好的。原因是,一旦你通过了超小型项目,每一个变更或更新都会变得越困难,因为它们之间的耦合越紧密。松散耦合使您能够继续前进,添加特性,修复bug,等等

根据我开发大规模应用程序的经验,在某一点上,我认为任何程序都会成为维护、更新和添加的噩梦。设计的耦合越松散,该点的延迟就越大。如果它是紧密耦合的,可能在大约10000行代码之后它就变得不可维护了,添加一些特性就不可能从根本上不重新编写

松散耦合允许它增加到1000000-10000000行代码,同时仍然能够在合理的时间内进行更改和添加新功能。这些数字并不是字面意义上的,因为它们只是虚构出来的,而是让人感觉到这些数字在哪里有用。 对于您这样的应用程序,我希望您为后端创建一个新的应用程序,并将新的数据模型和特定于用例的API分开


松散耦合越多,应用程序的生命周期就越长。

松散耦合的体系结构保留单独的应用程序特定项和平台特定项总是好的。原因是,一旦你通过了超小型项目,每一个变更或更新都会变得越困难,因为它们之间的耦合越紧密。松散耦合使您能够继续前进,添加特性,修复bug,等等

根据我开发大规模应用程序的经验,在某一点上,我认为任何程序都会成为维护、更新和添加的噩梦。设计的耦合越松散,该点的延迟就越大。如果它是紧密耦合的,可能在大约10000行代码之后它就变得不可维护了,添加一些特性就不可能从根本上不重新编写

松散耦合允许它增加到1000000-10000000行代码,同时仍然能够在合理的时间内进行更改和添加新功能。这些数字并不是字面意义上的,因为它们只是虚构出来的,而是让人感觉到这些数字在哪里有用。 对于您这样的应用程序,我希望您为后端创建一个新的应用程序,并将新的数据模型和特定于用例的API分开


松散耦合越多,应用程序的寿命就越长。

在关注点分离和实用性之间应该始终保持平衡。在一个非常简单的项目中,过于松散的耦合可能是一种过激的行为,并造成不必要的复杂性。因此答案是:这取决于当前和未来的需求


在您的情况下,如果您只使用该平台,您可以直接集成它,而不引入新的中间数据模型或服务。但是,如果您计划在平台功能中添加新的业务逻辑,即将其用于需求的某些部分,为某些其他部分实施修复、更改或新功能,那么引入新的独立服务可能会有所帮助。一个直接的优势是可以选择实现单元测试,特别是针对您的实现。

在关注点分离和实用性之间应该始终保持平衡。在一个非常简单的项目中,过于松散的耦合可能是一种过激的行为,并造成不必要的复杂性。因此答案是:这取决于当前和未来的需求

在您的情况下,如果您只使用该平台,您可以直接集成它,而不引入新的中间数据模型或服务。但是,如果您计划在平台功能中添加新的业务逻辑,即将其用于需求的某些部分,为某些其他部分实施修复、更改或新功能,那么引入新的独立服务可能会有所帮助。一个直接的优势是可以选择实现单元测试,特别是针对您的实现。

我认为这取决于
酒店管理和资产管理两个领域的重叠程度。如果资产与酒店管理API管理的现有数据紧密耦合,则整合这些数据以描述关系是有意义的。感谢Sandrogo,这是基于实体之间紧密耦合的一个很好的决定因素。还有其他因素需要考虑,我认为这取决于你的两个领域酒店管理和资产管理的重叠程度。如果资产与酒店管理API管理的现有数据紧密耦合,则整合这些数据以描述关系是有意义的。感谢Sandrogo,这是基于实体之间紧密耦合的一个很好的决定因素。还有其他需要考虑的因素吗?谢谢。但是,正如你所说,用例越来越大,这绝对让我想到使用单独的应用程序后端。谢谢。但正如你所说,用例越来越大,这绝对让我想到了独立的应用程序后端。