Software Architecture软件架构是啥
随着软件行业的发展,软件的规模越来越大,"Software Architecture软件架构"这个名词开始频繁出现。"软件架构"究竟指的是什么?
广义的"软件架构"针对整个软件系统,当然包括"软件系统"的全部内容,同时包括网络、计算机,外部设备等物理节点,以及开发者,维护者和客户等人员。
狭义的"软件架构"指的是软件开发过程中,软件顶层架构的设计。
本文讨论的是狭义的软件架构,主要包括三方面的内容:
- 架构模式:顶层模型的设计方法
- 设计模式:框架类结构的设计方法
- 架构设计目标:非功能性的约束

Software Architecture软件架构凭啥
领域驱动设计(Domain Driven Design)
Eric Evans在《领域驱动设计-软件核心复杂性应对之道》这本书中提出了传统的DDD四层架构模式。

六边形架构(Haxagonal Architecture)
六边形架构是Alistair Cockburn在2005年提出的,解决了传统的分层架构所带来的问题。Vaughn Vernon 在《实现领域驱动设计》一书中,作者将六边形架构应用到领域驱动设计的实现。将传统的分层架构变成了内部和外部,内部实现领域模型,外部实现适配器。
洋葱架构(Onion Architecture)
Jeffrey Palermo在2008年提出了洋葱架构。它是从六边形架构发展而来,将六边形改为圆环,层层依赖。
干净架构(Clean Architecture)
Robert C. Martin在2012年提出了干净架构(Clean Architecture),这是六边形架构的一个变体。

DCI架构
DCI代表Data, Context, Interaction。ames O. Coplien和Trygve Reenskaug在2009年发表了一篇论文《DCI架构:面向对象编程的新构想》
重点是关注数据的不同场景的交互行为, 核心思想是将面向对象系统的数据模型和动态的行为模型区分开来,用不同的对象复用同一段交互行为。

Software Architecture软件架构有啥
架构模式很难被具体化、框架化,因为它们太过抽象,只是若干设计原则,这样的框架即使被设计出来,也难以流行起来。
相对于抽象的架构模式,框架类设计模式还是很流行的。最流行的当然是MVC框架模式。
MVC框架模式
MVC即模型(model)、视图(view)、控制器(controller)设计模式可谓是无人不知不人不晓。它的缺点是比较重,各部分没有解耦。
MVP框架模式
Model-View-Presenter设计模式是在MVC基础上发展而来,将模型与视图完全分离,可以修改视图而不影响模型。
MVVM框架模式
Model-View-ViewModel设计模式是MVP的进一步改进,使用双向绑定将View与ViewModel的数据传输自动化。
VIPER框架模式
VIPER模式最初是在2013年由Jeff Gilbert 和 Conrad Stoll 提出,随后在《Architecting iOS Apps with VIPER》文中做了详细的介绍。
由View+Interactor+Presenter+Entity+Routing组成,是Clean Architecture的一种实现模式。

Software Architecture软件架构干啥
软件架构设计最大的困难与问题在于,架构模式过于抽象,很难有具体的框架支撑,很难重用代码;设计模式可以有具体的框架类支持,不进行架构设计,直接使用框架是可以的,但是很难支撑复杂系统的高层架构。
所以,对于软件架构设计最有意义的事情,就是把抽象和具体连接起来,既是抽象的模式,同时又是具体的可重用框架。
结合具体的项目过程,我设计了一个模式,同时也实现了一个框架。
Bricks Architecture(砖块架构)
这个模式,命名为Bricks Architecture(砖块架构)。
这个框架,命名为Bricks(离别钩),出自《七种武器》:"你用离别钩,只不过为了要相聚"。
Bricks是一个完全模块化的模式,主要有六种模块:Builder+Router+Interactor+Context+bricK+Scenario。

与干净架构(Clean Architecture)的关系
Bricks Architecture既是Clean Architecture的一种变体,同时也是Clean Architecture的一种实现模式。
Brick对应于Entities
Context对应于UseCases
Adapter对应于Adapters
与DCI架构的关系
Bricks Architecture既是DCI的一种变体,同时也是DCI的一种实现模式。
Brick对应于Data
Context对应于Context
Adapter+Interactor对应于Interaction
与MV*架构的关系
Builder可以实现为Generator,生成MVP架构的代码,如果使用双向绑定如VUE,那么将生成MVVM架构的代码
Builder也可以实现为Controler,加载手写代码,可以视为MVC架构的代码。
与VIPER架构的关系
Model是由Builder根据Brick(Entity)生成原文转载:http://www.shaoqun.com/a/865385.html
跨境电商:https://www.ikjzd.com/
indiegogo:https://www.ikjzd.com/w/265
空中云汇:https://www.ikjzd.com/w/2684
pocket:https://www.ikjzd.com/w/1903
SoftwareArchitecture软件架构是啥随着软件行业的发展,软件的规模越来越大,"SoftwareArchitecture软件架构"这个名词开始频繁出现。"软件架构"究竟指的是什么?广义的"软件架构"针对整个软件系统,当然包括"软件系统"的全部内容,同时包括网络、计算机,外部设备等物理节点,以及开发者,维护者和客户等人员。狭义的"软件架构"指的是软件开发过程中,软件顶层架构的设计。本文
慧聪集团:https://www.ikjzd.com/w/1836
邓白氏集团:https://www.ikjzd.com/w/582
2021方特蓝水星平安夜好玩吗?2021汕头方特欢乐世界圣诞跨年晚上到几点?:http://www.30bags.com/a/422916.html
2021仿山庙会时间?定陶仿山庙会什么时候结束?:http://www.30bags.com/a/428220.html
2021放假安排 五一法定假日放几天?:http://www.30bags.com/a/430774.html
2021放假安排出炉!上海迪士尼乐园圣诞季回归!爆笑全网!以为丁真在西藏,其实丁真在四川!:http://www.30bags.com/a/223525.html
男人撕开奶罩揉吮奶头 我都说疼了他还在继续:http://lady.shaoqun.com/m/a/247840.html
荒岛上和野狗生活的萝莉 凌淑娟在仓库被一群野狗:http://www.30bags.com/m/a/249679.html
夺走妻子初夜的男人,后来变成了我的桥:http://lady.shaoqun.com/a/415041.html
睡前故事"爱睡懒觉的猪"哄女朋友睡觉:http://lady.shaoqun.com/a/415042.html
男人渴望得到你,所以"用心":http://lady.shaoqun.com/a/415043.html
69岁女子被29岁男护士性侵,韩国电影《老妇人》无法摆脱痛苦:http://lady.shaoqun.com/a/415044.html
没有评论:
发表评论