zoukankan      html  css  js  c++  java
  • 架构之美读书笔记

    架构是一个过程,而非一个结果

    艺术是不可能被生产出来的,生产出来的,叫艺术品

    常见的架构技术:分层,组件化、服务化、标准化、缓存、分离、队列、复制、冗余、代理

    好的架构致力于消除各种重复性

    让它尽可能简单,但不要过于简单

    只有变化是永恒不变的

    架构是一种这种,决定改进其中一个特征常常会对其他特征产生负面影响

    每种架构都由组件及其关系构成

    架构的目的是系统具备所要求的特征

    结构在架构设计中将系统化简为交互的组建

    建筑师的职责是:1、设计满足客户的需要。2、设计具有概念完整性,处处具有相同的设计原则。3、设计满足法规和安全性要求。  建筑师充当建造者和客户之间的桥梁

    目前软件架构师没有历史和传统规定其具体职责

    软件架构师的主要设计决定包括:行为和结构。结构指内部组件的组织结构(模块图、类图),行为包括外部行为(需求)、内部行为(内部组件之间的行为)

    架构的定义:一组有标注的图纸和功能描述,它说明了设计和构建一个系统时所使用的结构

    架构是系统设计的一部分,它突出某些细节,并通过抽象忽略掉另一些细节

    系统架构师首要关注的不是系统的功能,而是需要满足的品质

    架构师的关注顺序为:品质(可变性、可维护性、可伸缩性)、折中(根据优先级)、

    如果计划的架构不能被一个人设计,那么也不能被一个人理解

    架构师的主要关注点为:功能性、可变性、性能、容量、生态系统、可构建性、产品化、安全性

    系统的结构会反映出构建它的组织的结构。反过来也成立

    常见的重要架构结构:信息隐藏结构、使用结构、进程结构、访问结构

    信息隐藏结构:模块A的秘密是模块B的秘密的一部分,那么A就是B的一部分(两个程序共享一个秘密时,他们才属于同一个模块)

    使用结构:如果程序B必须存在并正常功能,A才能正常工作,就说模块A使用了模块B。使用结构中如果包含环,还里的所有模块都必须存在且正常工作。如果不包括环,则就是层次结构。层次结构要求:一个层次要比其上个层次快9倍,使用频率高9倍

    访问结构:如果两个段被同一组程序访问,那他们就该合并

    对于一组给定的功能需求和品质需求,没有唯一正确的架构

    架构有两种评估方法:确定架构属性(性能建模评估性能、失效数模型评估可靠性和可访问性等)、对架构师提出质询

    软件系统就像由建筑和后面的路构成的城市

    坏的设计会招致在它上面叠加坏的设计

    软件设计的关键品质是内聚和耦合。

    好的设计会限制通信的线路,只提供那些绝对需要的

    只设计你知道需要的东西

    形式永远服从功能

    XP没有贬低设计,它贬低的是不必要的工作

    YAGNI:如果你不是马上需求,就不要去做

    不要在还不知道需求的情况下就作出架构决策,不要猜测


  • 相关阅读:
    canvas
    学习总结
    后台管理人员项目,添加和查询的思路
    写了项目的一些心得
    学了一丢丢的正则皮毛
    已学的前端存储(学生)
    $.ajax()方法详解即自己遇到问题(新手)
    C#中 decimal 的四舍五入
    自己写一个C#数据结构:用List<T>实现一个简单的Stack
    【转】在CentOS 6.X上部署C# 开发环境
  • 原文地址:https://www.cnblogs.com/snake-hand/p/3211891.html
Copyright © 2011-2022 走看看