架构定义

Architecture definition

据我了解MVC、MVVM、SOA、Onion是一种架构,但我真的很困惑。我认为我假设所有这些都定义为相同的架构概念是不正确的。我想知道关于建筑的真相...

这个问题很宽泛,没有一个普遍接受的答案。它可能迟早会被否决并关闭。我会尽量回答的。

体系结构是 属性 特定软件的一部分。 MVC、MVVM 和 SOA 是可以由不同软件实现的架构模式。

建筑的定义有很多种。我最喜欢的是:

"The things that are important and will be hard to change later."

这个定义是由 Martin Fowler 提出的,但我不确定他是否是第一个提出这个定义的人。我喜欢它,因为它清楚地表明,拥有比绝对需要更多的架构是一件坏事,尤其是在一个可能发生变化且未来难以预测的世界中。

IASA 将架构定义为:

"IT architecture is the art and science of designing and delivering valuable technology strategy."

Tom Gilb 将其定义为:

"The ‘architecture’ is the set of entities that in fact exist and Impact a set of system Attributes directly, or indirectly, by constraining, or influencing, related Engineering decisions."

基本上,它们是应该提前做出的重大决定,以确保您能够交付。正如弗兰克所说,他们以后很难改变。