zoukankan      html  css  js  c++  java
  • 《架构整洁之道》阅读笔记03

    接着上一次的《架构整洁之道》阅读笔记02继续写最后一篇:

    10.插件式架构

    1.软件开发技术发展的历史:就是一个如何想法设法方便地增加插件,从而构建一个可扩展、可维护的系统架构的故事。

    2.系统的核心业务逻辑必须和其他组件隔离,保持独立,其他组件要么可以去掉的,要么有多种实现的。

    11.业务逻辑

    业务逻辑是一个系统存在的意义,属于核心功能,是系统用来赚钱或省钱的那部分代码,是整个系统中的皇冠明珠。

    业务逻辑应该保持纯净,不要掺杂用户界面或者所用数据库相关东西。

    理想情况下,代表业务逻辑的代码应该是整个系统的核心,其它底层概念的实现应该以插件形式接入系统中。

    业务逻辑应该是系统中最独立、复用性最高的代码。

    12.整洁架构

    常见系统架构,六边形架构(端口与适配器架构)、DCI架构、BCE架构。

    1.分层:这些架构都会将软件切割成不同的层,至少有一个层是只包含软件的业务逻辑的,用户接口、系统接口属于其他层。

    2.代码依赖只能使由外向内,内层结构的代码不能包含有任何外层结构的信息

    每一种架构一定能在写系统的业务逻辑的时候有以下特征:

    1、与框架分离:系统架构不依赖于某个功能丰富的框架中的某个函数,框架被当作工具使用,不需要让让系统来适应框架。

    2、可测试性:系统的业务逻辑可以脱离UI、数据库、Web服务及其他外部元素来测试。

    3、与UI分离:UI必须能非常容易独立地修改。而不能在改变UI的同时需要改变系统其他部分。比如当把系统的UI从Web UI改成控制台UI,你并不需要改变任何业务逻辑的代码。

    4、与数据库分离:能很方便地在Oracle,SQL Server,Mongo DB,BigTable,CouchDB或者其他数据库中进行切换和改变。业务逻辑决不能依赖这些数据库。

    5、与外部结构分离:系统的业务逻辑并不需要知道任何外部的结构。

    13.SOLID设计原则

    SRP(单一职责原则):每个软件模块都有且只有一个需要改变的理由。

    适用范围:方法、类、接口、包、模块、应用(应用的职责)、系统(业务系统的边界)

    OCP(开闭原则):易于扩展、 修改关闭

    LSP(里氏替换原则):如果想用可替换组件来构建软件系统,那么这些组件必须遵守同一个约定,以便让这些组件可以相互替换。

    ISP(接口隔离原则):主要告诫软件设计师应该在设计中避免不必要的依赖。任何层次的软件设计如果依赖了它并不需要的东西,就会带来意料之外的麻烦

    DIP(依赖反转原则):依赖关系应该应该多引用抽象类型,而非具体实现

    14.哪些类组合成组件

    主要是解决组件聚合的问题

    原则:复用/发布等同原则、共同闭包原则、共同复用原则。

    15.管理依赖关系

    主要是解决组件耦合的问题

    帮助我们确定组件之间的相互依赖关系,要考虑三个原则:无依赖环原则、稳定依赖原则、稳定抽象原则。

    ADP:组件依赖关系图中不应该出现环

    SDP:依赖关系必须指向更稳定的方向

    SAP:一个组件的抽象化程度应该与其稳定性保持一致。

  • 相关阅读:
    对于python中的self,cls,decorator的理解
    获得平台无关的文件锁
    Python 字符编码判断
    Flex 减肥
    Reporting Service报表开发
    JavaScript 中的单例模式 (singleton in Javascript)
    asp.net MVC 权限设计
    c# IO&&线程 打造 定时打开指定程序
    JavaScript 实现接口 (Interfaces In JavaScript)
    C#温故而知新—闲话.Net
  • 原文地址:https://www.cnblogs.com/cuijunfeng/p/13056587.html
Copyright © 2011-2022 走看看