随笔分类 - sw_architecture
软件架构
摘要:root_inc common_inc mod_a_inc mod_b_inc dir_mod_a mod_a_inc mod_a_submod1 a1_func.c a1_func.h mod_a_submod2 a2_func.c a2_func2.h dir_mod_b mod_b_inc m
阅读全文
摘要:1、依赖倒置的场景需求: 1) 模块A、B互相依赖,耦合较大,希望改成单向依赖 2)模块A是底层,模块B是上层,底层不应该调用上层,即只允许B调用A。 2、未倒置前,A调用B:module_a_func 调用module_b_func(in_data, out_data) module_b: 提供m
阅读全文
摘要:https://www.cnblogs.com/viaiu/p/9939301.html http://www.sohu.com/a/207062452_464084
阅读全文
摘要:https://blog.csdn.net/feixiaoxing/article/details/7294900
阅读全文
摘要:1,可维护(Maintenance),被修改的能力。包括纠错,改进,新需求或功能规格变化的适应能力。 1)模块:高内聚,低耦合 2)处理流程和数据解耦 3)抽象:提取共同特征&流程,剥离易变部分 4)接口设计:原子化,不暴露内部数据和实现 5)组件&服务:自治,自组织,独立演进 2,简洁(Simpl
阅读全文
摘要:耦合性(英语:Coupling,dependency,或称耦合力或耦合度)是一种软件度量,是指一程序中,模块及模块之间信息或参数依赖的程度。 内聚性是一个和耦合性相对的概念,一般而言低耦合性代表高内聚性,反之亦然。耦合性和内聚性都是由提出结构化设计概念的赖瑞·康斯坦丁(英语:Larry Consta
阅读全文
摘要:原贴:https://coolshell.cn/articles/4535.html 以前本站向大家介绍过一些软件开发的原则,比如优质代码的十诫和Unix传奇(下篇)中所以说的UNIX的设计原则。相信大家从中能够从中学了解到一些设计原理方面的知识,正如我在《再谈“我是怎么招聘程序”》中所说的,一个好
阅读全文
摘要:原贴:https://coolshell.cn/articles/8961.html 前些天发了一篇《如此理解面向对象编程》的文章,然后引起了大家的热议。然后我在微博上说了一句——“那23个经典的设计模式和OO半毛钱关系没有,只不过人家用OO来实现罢了……OO的设计模式思想和Unix的设计思想基本没
阅读全文
摘要:http://blog.csdn.net/zhangerqing/article/details/8194653 设计模式(Design pattern)是一套被反复使用、多数人知晓的、经过分类编目的、代码设计经验的总结。使用设计模式是为了可重用代码、让代码更容易被他人理解、保证代码可靠性。 毫无疑
阅读全文
摘要:https://www.ibm.com/developerworks/cn/rational/06/r-wenyu/index.html https://www.ibm.com/developerworks/cn/rational/r-4p1-view/ 呼唤架构设计的多重视图方法 灵感一闪,就想出
阅读全文
摘要:1,接口定义就是功能抽象(找共同点)的过程,明确接口的适用范围,功能定义和使用约束。 举个例子:flash_read(int chip, int addr, int len, char *data) chip是flash芯片的编号,多芯片要求统一编码(不可重复),无论flash类型。 addr和le
阅读全文
摘要:《敏捷软件开发:原则、模式与实践.pdf》定义了面向对象设计的5个基本原则: 单一职责原则(Single-Resposibility Principle) 其核心思想为:一个类,最好只做一件事,只有一个引起它的变化。单一职责原则可以看做是低耦合、高内聚在面向对象原则上的引申,将职责定义为引起变化的原
阅读全文
摘要:step1:通过依赖倒置实现单向依赖 A依赖于B,胜过A/B互相依赖。 step2: 层次化 & 胶水层 A1,A2依赖于B,A1依赖于A2。重构为A1/A2依赖于B,A1/A2互不依赖,即分层。 A/B/C互相依赖,增加胶水层D,A/B/C依赖于D,D作为代理模块,A/B/C互不依赖。 step3
阅读全文
摘要:http://www.open-open.com/doc/view/ceee1d75382f4bbc93c8a8a2a98b4e52 Characteristics of a Good API • Easy to learn • Easy to use, even without documenta
阅读全文
摘要:https://en.wikipedia.org/wiki/Coupling_(computer_programming) In software engineering, coupling is the degree of interdependence between software modu
阅读全文