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

     架构师必须做出许多设计决定,对于软件系统,这些设计决定包括行为上的和结构上的:外部行为描述展示了产品如何与它的用户、其他系统和外部设备进行交互,这应该表现

    为需求;结构描述展示了产品如何划分为多个部分,以及这些部分之间的关系;内部行为描述,用于描述组件之间的交互接口。

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

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

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

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

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

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

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

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

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

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

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

    只设计你知道需要的东西

    形式永远服从功能

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

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

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

  • 相关阅读:
    使用Mutex实现程序单实例运行(c#)
    KMP(转载来自Matrix67原创)
    【转载】搞ACM的你伤不起(转载,不过这个神作实在是太经典了)
    POJ 3125 Printer Queue【打印队列】
    弱校ACM奋斗史
    POJ 2063 Investment
    程序员的艺术:排序算法舞蹈【视频】
    POJ 2063 Investment【经典完全背包】
    快速幂模板
    搞ACM的你伤不起(转载,不过这个神作实在是太经典了)
  • 原文地址:https://www.cnblogs.com/amiee/p/6417209.html
Copyright © 2011-2022 走看看