架构:层次化

设计良好的模块,应该是层次化的。层次化不是自然而然的,而是需要精心的设计。设计一个层次化的组件,可以从下面几方面来考虑:

  • 切分功能,每个组件专心做一件事。
  • 识别功能之间的依赖,避免双向依赖。
  • 识别出最小的公理系统(内核组件),然后在这个公里系统之上建立定理系统(基础服务组件),最后再建立常用的推论(应用组件)。
  • 分析哪些会改变,哪些不会改变。不变部分固化在组件中,可能会改变的部分抽象成接口,以便扩展。
  • 考虑默认值和默认扩展。默认值和默认扩展应该是最安全、最常用的选择。对于默认值和默认扩展,用户在使用时不需要额外的配置。
时间: 2024-10-15 10:41:48

架构:层次化的相关文章

从100PV到1亿级PV网站架构演变

如果你对项目管理.系统架构有兴趣,请加微信订阅号"softjg",加入这个PM.架构师的大家庭 一个网站就像一个人,存在一个从小到大的过程.养一个网站和养一个人一样,不同时期需要不同的方法,不同的方法下有共同的原则.本文结合我自已14年网站人的经历记录一些架构演变中的体会. 1:积累是必不可少的 架构师不是一天练成的. 1999年,我作了一个个人主页,在学校内的虚拟空间,参加了一次主页大赛,几个DREAMWEAVER的页面,几个TABLE作布局,一个DB连接,几行PHP的代码嵌入在HT

从100PV到1亿级PV站点架构演变

假设你对项目管理.系统架构有兴趣,请加微信订阅号"softjg".增加这个PM.架构师的大家庭 一个站点就像一个人,存在一个从小到大的过程. 养一个站点和养一个人一样.不同一时候期须要不同的方法,不同的方法下有共同的原则. 本文结合我自已14年站点人的经历记录一些架构演变中的体会. 1:积累是不可缺少的 架构师不是一天练成的. 1999年,我作了一个个人主页,在学校内的虚拟空间,參加了一次主页大赛,几个DREAMWEAVER的页面.几个TABLE作布局,一个DB连接,几行PHP的代码嵌

从100PV到1亿级PV网站架构演变(转)

http://www.linuxde.net/2013/05/13581.html 一个网站就像一个人,存在一个从小到大的过程.养一个网站和养一个人一样,不同时期需要不同的方法,不同的方法下有共同的原则.本文结合我自已14年网站人的经历记录一些架构演变中的体会. 积累是必不可少的 架构师不是一天练成的. 1999年,我作了一个个人主页,在学校内的虚拟空间,参加了一次主页大赛,几个DREAMWEAVER的页面,几个TABLE作布局,一个DB连接,几行PHP的代码嵌入在HTML中,再用ftp传到服务

CCNA_1(Introduce/CCIE Overview/Topology/OSI Overview/Device Overview/Cables Overview)

拓扑 Topology CAM表 内存可寻址表,MAC地址和发包接口 动态mac aging time 100s FSC 帧校验序列   MD5校验 Unicast Multicast Broadcast 三层地址255.255.255.255 二层地址FF.FF.FF.FF 局域网 四个冲突域 一个广播域 广域网 Bandwidth带宽 Duplex双工模式 三层交换机已经可识别ip 网段即是广播域 两个广播域 11个冲突域 OSI 开放式系统互联 PDV 每层加报头: Fragment数据段

浅谈层次化的AI架构

原文地址:http://www.aisharing.com/archives/86/comment-page-1 记得在以前的一篇文章中谈到了一种类似于双缓冲的AI结构,最近在整理一些东西的时候,发现这样的AI结构具有一定的通用性,而且层与层之间耦合度相对较低,作为一种层次化的AI架构,非常值得一谈. 在我的脑海中,AI一般分为两个部分,一个是决策(Decision)部分,一个是行为(Behavior)部分,决策部分负责做什么,行为部分负责怎么做.在一些国外的公司里,AI程序员也大致分为这两种(

1.HCNA-HNTD——企业网络架构介绍

最初,企业网络是指某个组织或机构的网络互联系统.企业使用该互联 系统主要用于共享打印机.文件服务器等,使用email实现用户间的高效 协同工作.现在,企业网络已经广泛应用在各行各业中,包括小型办公 室.教育.政府和银行等行业或机构. 大型企业的网络往往跨越了多个物理区域,所以需要使用进程互连技术 来连接企业总部和分支机构,从而使得出差的员工能随时随地接入企业 网络实现移动办公,企业的合作伙伴和客户也能够及时高效的访问到企业的相应资源及工具.在实现进程互连的同时,企业还会基于对数据的 私密性和安全

架构师的讨论

WZ 架构师这东西..我司的架构师是属于啥都做的?但是不参与具体的功能开发STST 不做具体的,意味着空得很 DH 做技术选型啦?性能优化啊?安全专项啊之类的 STST 我不相信,不做具体的,能把设计做好 DH 那是因为做过很多年具体的了 没见过刚毕业进来就挂个架构师头衔的 STST 不做具体的,就得不到具体的反馈,得不到反馈,就无法确认设计没问题 做多少年也一样,这行业没有完全一样的设计,也没有必要 DH 我们这个职位更像是资深开发CRS? 说到这个我突然想起来,前端时间前.net?MVP,老

软件系统的架构设计

软件系统架构(Software Architecture)是关于软件系统的结构.行为.属性.组成要素及其之间交互关系的高级抽象.任何软件开发项目,都会经历需求获取.系统分析.系统设计.编码研发.系统运维等常规阶段,软件系统架构设计就位于系统分析和系统设计之间.做好软件系统架构,可以为软件系统提供稳定可靠的体系结构支撑平台,还可以支持最大粒度的软件复用,降低开发运维成本.如何做好软件系统的架构设计呢?笔者就这一问题做如下探讨分析. 软件系统架构设计方法步骤 基于体系架构的软件设计模型把软件过程划分

大型互联网技术架构4-分布式存储-II Google

The largest single database on earth - Google Spanner. 我们继续互联网技术架构-分布式存储. 上文大篇幅介绍了一些分布式存储的理论,偏重理论.可别小看这些理论,Google的各个神器都是建立在这些理论之上,甚至整个Apache的大数据3剑客项目都是受惠于这些理论.难怪@Tiger大牛讲Google靠的是一大批世界顶尖数据,物理,计算领域的Ph.D.,这些大神以及他们的Paper是Google为什么是Google的原因,以及Google没有开源