首页 > 其他分享 >架构整洁之道笔记4

架构整洁之道笔记4

时间:2024-01-05 16:49:18浏览次数:33  
标签:架构 系统 笔记 细节 软件架构 可选项 组件 整洁

软件架构

架构师的定位

工作实质:规划如何将系统切分为组件,并安排好组件之间的排列关系,以及组件之间互相通信的方式。

目的:更好地对组件开发、部署、运行、维护。

如果想设计一个更方便推进各项工作的系统,策略就是在设计中尽可能长时间地保留尽可能多的可选项。

开发的角度

难以开发的系统也不会健康长久。

架构设计要适应开发团队的结构,或者说架构设计最后也会慢慢适应团队结构。

对于多个小组的开发团队,系统要有划分清晰的组件和可靠稳定的接口。

部署的角度

一般来说,一个系统的部署成本越高,可用性就越低。软件架构的目标是要实现一键式的轻松部署。

运行的角度

软件架构对系统运行的影响没有前面的几个大。优化重心应该放在开发、部署和维护。

良好的软件架构应该能明确地反映该系统在运行时的需求。就是说开发人员可以通过架构可以了解运行过程,简化对系统的理解。

维护的角度

维护成本是最高的。成本一,我们在现有系统中寻找在哪里新增功能、修改问题的时间和经历。成本二,修改代码时可能的衍生问题。

保持可选项

保留可选项就是说让软件维持其灵活和便捷的“软”性。

保留什么可选项?就是那些无关紧要的细节设计。

这里的细节设计是相对于软件的核心策略所说的。软件可以分为策略和细节,策略包括软件中所有业务规则和操作过程,就是系统的价值所在。细节是人与系统交互中不影响策略本身的一些行为,比如数据库、I/O设备等。

架构让这些细节与策略脱离开,推迟这些具体的决策过程。

一个优秀的架构师应该致力于最大化可选项数量。

标签:架构,系统,笔记,细节,软件架构,可选项,组件,整洁
From: https://www.cnblogs.com/liucaizhi/p/17947565

相关文章

  • 知识管理方案探讨及主流笔记软件体验
    前言平常本人使用hexo博客系统,用于记录学习笔记、生活随笔等,但是随着笔记的增多,一些碎片化的、不成体系的知识点又不足以单独发文章,了解到双链类笔记对知识体系的串联,于是开始寻找更好的知识管理方案。以下体验仅代表个人意见。软件体验可以看看下了31个markdown编辑器,我就不......
  • [NLP复习笔记] N-gram 及基本平滑方法
    1.N-gram模型1.1N-gram模型介绍\(\text{N-gram}\)是一种基于统计语言模型的算法,用于预测文本中的单词,其中\(\text{N}\)一般指的是序列中的单词数量。其基本思想是将文本内容进行大小为\(\text{N}\)的滑动窗口操作来计算概率。例如:当\(\text{N}=1\)时,模型被称为"u......
  • 笔记day3
    原码,反码,补码负数在内存中存储的时候,储存的是二进制的补码二进制最高位存储的是符号位,如果为1则表示的是一个负数,0是正数原码符号位(最高位)不变,其他位按位取反得到的是反码。反码加1得到的是补码。#define_CRTSECURE_NO_WARNINGS1#include<stdio.h>#include<string.h>intmain......
  • HarmonyOS鸿蒙操作系统架构
    HarmonyOS鸿蒙操作系统是基于微内核架构的,其核心组件包括:1.调度器(Scheduler):负责任务的调度和执行。2.内存管理(MemoryManagement):负责内存的分配、回收和保护。3.文件系统(FileSystem):负责对存储设备的访问和管理。4.设备驱动(DeviceDriver):负责硬件设备的控制和管理。5.网络......
  • 深度解析Kubernetes架构
    @[TOC]深度解析Kubernetes架构Kubernetes(K8s)是一个开源的容器编排平台,用于自动化容器的部署、扩展和管理。它提供了一个强大的、可扩展的架构,支持容器化应用的高效部署和运维。在这篇博文中,我们将深度解析Kubernetes的架构,深入探讨其各个组件和它们之间的交互。1.1:Kubernetes核心组......
  • 全志R128 SDK架构与目录结构
    R128S2是全志提供的一款M33(ARM)+C906(RISCV-64)+HIFI5(Xtensa)三核异构SoC,同时芯片内部SIP有1MSRAM、8MLSPSRAM、8MHSPSRAM以及16MNORFLASH。本文档作为R128FreeRTOSSDK开发指南,旨在帮助软件开发工程师、技术支持工程师快速上手,熟悉R128FreeRTOSSDK的开发流......
  • 探索架构之美 | 小米分享架构师的方法论
    大家好,我是小米!今天我们要聊的话题可是相当精彩——“架构师的方法论”!作为一名热爱技术的小伙伴,我深知在软件开发领域,拥有一套科学的方法论是多么的重要。所以,不废话,让我们一起踏上探索架构的奇妙世界的征程吧!第一章:架构师的身份认同作为架构师,我们首先要明确自己的身份。不仅仅是......
  • Docker 学习笔记 - 1
    获取镜像dockerpull[选项][DockerRegistry地址[:端口号]/]仓库名[:标签]具体的选项可以通过dockerpull--help命令看到,这里我们说一下镜像名称的格式。Docker镜像仓库地址:地址的格式一般是<域名/IP>[:端口号]。默认地址是DockerHub(docker.io)。仓库名:如之前......
  • openGauss学习笔记-186 openGauss 数据库运维-升级-集群管理组件增量升级
    openGauss学习笔记-186openGauss数据库运维-升级-集群管理组件增量升级本章介绍版本集群管理组件增量升级方法。186.1操作步骤集群管理组件升级前准备与检查集群管理组件升级集群管理组件升级后检查集群管理组件增量升级注意事项:集群管理组件增量升级操作不能和扩节......
  • 微服务架构下如何保证数据一致性
    公司新产品供应链平台基于Saas的多租户模式设计,采用微服务架构。在前期技术架构选型、基础方案设计的过程中,我就一直在考虑如何保证在微服务架构下的数据一致性。背景数据一致性深受重视的原因主要是受老系统的影响。老系统采用单体架构设计,但作为Saas模式提供服务,一个服务集群为几......