• 程序员向架构师转型必备01


    《程序员向架构师转型必备01》

    什么是架构?

    架构分成两大流派——组成派和决策派。Mary Shaw 在《软件体系结构:一门初露端倪学科的展望》中,为“软件架构”给出了非常简明的定义:软件系统的架构将系统描述为计算组件及组件之间的交互。

    上述定义是“组成派”软件架构概念的典型代表,有如下两个显著特点:
    (1)关注架构实践中的客体——软件,以软件本身为描述对象;
    (2)分析了软件的组成,即软件由承担不同计算任务的组件组成,这些组件通过相互交互完成更高层次的计算。

    而“决策派”软件架构概念则有如下两个显著特点:
    (1)关注架构实践中的主体——人,以人的决策为描述对象;
    (2)归纳了架构决策的类型,指出架构决策不仅包括关于软件系统的组织、元素、子系统和架构风格等几类决策,还包括关于众多非功能需求的决策。

    对不同的角色来说,架构的定义都不相同,架构是分与和的艺术,架构属于设计,但并非所有设计都属于架构。架构涉及的决策,往往对整体质量、并行开发、适应变化等方面有着重大影响。而且实际的设计往往是分层次依次展开的——无论是决策如何切分系统还是决策技术选型都是如此。

    虽然我们最常听到的说法是“软件系统的架构”,但未必是完整的软件系统才有架构。真实的软件其实是“由组件递归组合而成”的。 组件的粒度可以很小,也可以很大;任何粒度的组件都可以组合成粒度更大的整体。即所谓的粒度多样性问题;组件粒度的界定,必须在具体的实践上下文中才有意义;你的大粒度组件,对我而言可能是原子组件。即所谓的粒度相对性问题; 组件分为原子组件和复合组件两种;在特定的实践上下文中,原子组件是不可再分的;复合组件是由其他组件(既可以是原子组件,又可以是复合组件)组合而成的;无论是原子组件还是复合组件,它们之间都可以通过交互来完成更复杂的功能。

  • 相关阅读:
    函数初识
    文件操作
    CentOS 7运维管理笔记(6)----Apache 基于 IP 的虚拟主机配置
    CentOS 7运维管理笔记(4)----安装ftp服务器
    CentOS 7运维管理笔记(3)----Linux路由器配置
    CentOS 7运维管理笔记(2)----修改命令提示符颜色
    CentOS 7运维管理笔记(1)----设置默认启动模式为GUI模式或命令行模式
    CentOS 7运维管理笔记(5)----源代码安装Apache 2.4,搭建LAMP服务器
    CentOS 7 下 安装Webmin 启动防火墙失败----Applying firewall rules:iptables-restore:line 2 failed
    CentOS 7 禁用IPV6以提高网速
  • 原文地址:https://www.cnblogs.com/zmh-980509/p/13099246.html
Copyright © 2020-2023  润新知