zoukankan      html  css  js  c++  java
  • 《架构之美》阅读笔记01

    一、阅读内容
    第一章架构概述
    第二章两个系统的故事:现代软件神话
    二、笔记总结
    (1)什么是软件架构?
    其实在好多学科中都用到了“架构”这个词,大都表达了对所创造作品的描述,或者是对创造过程的计划。但是在软件专业中还有更具体的表达。软件架构不是一个简单的实体,软件架构师需要用多分文档来对软件的行为和结构进行描述,以此来形成软件架构。《软件架构实践》一书对软件架构的规范化定义是这样的,一个程序或计算机系统的软件架构是系统的一种结构或一组结构,包含了软件元素、软件元素外部可见的属性以及元素之间的联系。这里的外部可见的属性指的是其他元素对该元素可以做出的假定,比如所提供的服务,执行的特征或者错误处理等等。实际上,软件架构对软件设计进行了适当的抽象化,使得架构师更关注软件设计中的某些方面。
    (2)软件架构师要做什么?
    这里就用到了我们在软件需求分析课堂上所学到的知识了。这里只突出强调两点,要关注利益相关人员的需求,以及同时做到关注软件的功能和品质。每一个或者说每一类的利益相关者对软件系统的品质关注点是不一样的,软件架构师需要同这些利益相关者展开协作,理解这些品质关注点和约束,并为这些品质关注点排列优先级。尽管许多架构都能满足功能需求,但是能满足品质需求的却很少。架构师需要对软件系统形成全面的理解,在软件设计中做出明智的决定。
    (3)什么是好的软件架构?
    其实创建软件架构的过程就是一个取舍的过程,对于一组给定的功能需求和品质需求,是没有唯一正确的软件架构的,我们需要从经验中对架构进行评估。首先一个好的软件架构须让系统的每一个用户都能理解该系统的架构,如果不能让一个人理解软件的架构的话,那么这个软件的架构一定不是好的架构。其次,在使用架构之前必须先构建,使用一个好的架构一定是可构建的,可扩展的。最后也是最重要的一点,好的架构必须从软件设计到构建到使用的全过程使得所有人都满意,这里包含了三个层次。第一是能使软件开发人员的工作变得简单。第二是使软件测试人员的工作变得轻松,最后是让使用软件的用户拥有良好的使用体验。
  • 相关阅读:
    案例5-1.3 整型关键字的散列映射 (25分)--散列表(除留余数法+线性探测法)
    基础实验5-2.2 电话聊天狂人 (25分)-散列表
    习题8.4 畅通工程之最低成本建设问题 (30分)--最小生成树
    练习4.2 平衡二叉树的根 (25分)
    案例7-1.5 与零交换 (25分)--dfs
    习题2.8 输出全排列 (20分)--dfs
    nginx 日志切割
    mysql添加索引
    mysql常见错误码及说明
    MYSQL数据类型分类
  • 原文地址:https://www.cnblogs.com/420Rock/p/6283836.html
Copyright © 2011-2022 走看看