当前位置: 首页 > news >正文

《Unity3D高级编程之进阶主程》第二章 架构(二) - 软件系统架构思维方式

        软件研发、系统架构中最重要的能力——抽象能力。

        架构师先要在大脑中形成抽象概念,然后是子模块分解,以及子模块之间的沟通方式,然后是依次实现子模块,最后将子模块拼装组合起来,形成最后系统。我们常说编程和架构设计就是搭积木,优秀的架构师受职业习惯影响,眼睛里看到的世界都是模块化拼装组合式的。

思维方式

1、分层思维

        构建一套复杂系统,我们把整个系统划分成若干个层次,每一层专注解决某个领域的问题,并向上提供服务。这样的抽象做法,让复杂的事务变得更加清晰有序。有些层次并不一定是横向的,也可以是纵向的,纵向的层次贯穿其他横向层次,称为共享层。

架构案例

中小型的Spring Web应用程序,三层架构:

Linux操作系统

TCP/IP协议栈

2、分治思维

        分而治之也是应对和管理复杂性的一般性方法。

分治的思维流程:

作者2015年思考Unity3D手游项目开发整体流程时,用分治法抽象出来的对整个问题的分解。

3、演化思维

        架构既是设计出来的,同时也是演化出来的,对于互联网系统,基本上可以说是三分设计,七分演化,而且是在设计中演化,在演化中设计,一个不断迭代的过程。

        架构师除了要利用自身的架构设计能力,同时也要学会借助用户反馈和进化的力量,推动架构的持续演进,这个就是演化式架构思维。

        从单块架构开始,随着架构师对业务域理解的不断深入,也随着业务和团队规模的不断扩大,渐进式地把单块架构拆分成微服务架构的思路,这就是演化式架构的思维。

相关文章:

  • keepalived HA nginx方案
  • vue3记个坑关于router的特点
  • Reflector简介-archlinux更新镜像列表工具
  • Kafka 进阶指南
  • vue3引入本地静态资源图片
  • 免费的CMS指纹识别系统
  • 【动态规划 前缀和】2478. 完美分割的方案数
  • 国产音频放大器工作原理以及应用领域
  • 外贸企业选择什么网络?
  • Git的安装配置及使用(超详细!!!)
  • LeetCode.224基本计算器
  • 【幂等性】详解
  • springboot升级到2.7.17后,quartz集群模式配置修改
  • java多线程之ThreadLocal详解
  • 【Linux详解】进程地址空间
  • [nginx文档翻译系列] 控制nginx
  • AzureCon上微软宣布了哪些容器相关的重磅消息
  • Making An Indicator With Pure CSS
  • MaxCompute访问TableStore(OTS) 数据
  • miaov-React 最佳入门
  • MySQL几个简单SQL的优化
  • PHP的Ev教程三(Periodic watcher)
  • Python学习之路13-记分
  • Traffic-Sign Detection and Classification in the Wild 论文笔记
  • 关于Java中分层中遇到的一些问题
  • 入口文件开始,分析Vue源码实现
  • 最简单的无缝轮播
  • zabbix3.2监控linux磁盘IO
  • ​【已解决】npm install​卡主不动的情况
  • #Linux(make工具和makefile文件以及makefile语法)
  • #stm32驱动外设模块总结w5500模块
  • #我与Java虚拟机的故事#连载06:收获颇多的经典之作
  • %3cli%3e连接html页面,html+canvas实现屏幕截取
  • (bean配置类的注解开发)学习Spring的第十三天
  • (floyd+补集) poj 3275
  • (二)c52学习之旅-简单了解单片机
  • (附源码)springboot太原学院贫困生申请管理系统 毕业设计 101517
  • (九)信息融合方式简介
  • (三)Kafka 监控之 Streams 监控(Streams Monitoring)和其他
  • (一)ClickHouse 中的 `MaterializedMySQL` 数据库引擎的使用方法、设置、特性和限制。
  • (转)linux下的时间函数使用
  • .L0CK3D来袭:如何保护您的数据免受致命攻击
  • .NET CORE 3.1 集成JWT鉴权和授权2
  • .NET MAUI Sqlite数据库操作(二)异步初始化方法
  • .net 简单实现MD5
  • .netcore 如何获取系统中所有session_如何把百度推广中获取的线索(基木鱼,电话,百度商桥等)同步到企业微信或者企业CRM等企业营销系统中...
  • .Net程序帮助文档制作
  • @entity 不限字节长度的类型_一文读懂Redis常见对象类型的底层数据结构
  • @PostConstruct 注解的方法用于资源的初始化
  • [BZOJ4337][BJOI2015]树的同构(树的最小表示法)
  • [C][数据结构][树]详细讲解
  • [codevs1288] 埃及分数
  • [HJ73 计算日期到天数转换]
  • [NOIP 2003] 栈(三种方法:DP、数论、搜索)
  • [python]tkinker的GUI应用执行耗时长的任务