标签:分组 单元 模块 常用 学生信息管理系统 了解 spring 不能 交换
架构设计的关键思维的判断和取舍,程序设计的关键思维是逻辑和实现。
系统泛指由一群有关联的个体组成,根据某种规则运作,能完成个体不能单独完成的工作。系统能力不是个体能力之和。
子系统和系统定义一样,只不过视角有差异,多半是更大系统的一部分。
以微信为例:
系统从逻辑的角度拆分后得到的单元叫模块,从物理的角度拆分得到的单元叫组件。划分模块的目的是职责分离,划分组件的目的是单元服用。
举例:
一个学生信息管理系统,从逻辑角度拆分可分为“登陆注册模块”、“成绩模块”、“学籍模块”;从物理的角度拆分有Nginx、Web服务器、MySQL。
框架像spring强调的是规范,架构强调的是结构。
整个软件技术的发展史,其实就是一部与“复杂度”斗争的历史,如:机器语言->汇编->高级语言,再如:面向函数(C)->面向对象(C++、java)。架构设计也不例外,架构设计的主要目的是为了解决复杂度带来的问题。
高性能带来的复杂度主要体现在两个方面:单机复杂度和集群复杂度。
单机复杂度:
如果我们要完成一个高性能的软件系统,需要考虑一下技术点:多进程、多线程、进程间通信、多线程并发等。
集群复杂度:
1.常用的任务分配器有硬件网络设备(如F5、交换机等),软件网络设备(如LVS),负载均衡软件(如Nginx、HAProxy)或者是嵌入在程序中的算法。
2.对一个复杂的业务系统可以进行模块拆分,分布式开发。
标签:分组 单元 模块 常用 学生信息管理系统 了解 spring 不能 交换
原文地址:https://www.cnblogs.com/sjp007/p/10351772.html