我们要约束一下,我们在做什么事情
我们要知道,我们做的事情的边界
就是在哪里,对什么东西做改变,产生什么效果。
要认识到自己做的事情的边界
这个边界,特别重要
我们这里界定几个边界
就是,我们确定下来,这个岗位
我们是来早什么东西
我们是在什么边界内,对什么领域,产生什么效果,我们在什么地方,搞什么东西。
产品领域,则是商务,团队,数据设计,业务设计之类的
ui领域,他的成品,应该是figma,axurer的原型图。我认为是美观,和用户体验层面的作用
前端的城边,是代码文件夹,使用vscode编译以后的dist文件,以及前端浏览器和app的内容的效果。
后端,则是代码文件夹,以及在服务器上的部署情况。
我们这里在聊一个架构领域的问题:
架构,就是在当下硬件资源的前提下
保证系统的稳定性,还有可以接收数据的容量。
架构设计的边界:明确职责,守土有责
在软件研发团队中,很多混乱和冲突都源于职责边界模糊 。产品、UI、前端、后端、架构,每个角色都有自己的核心战场,一旦越界,轻则互相掣肘,重则系统崩塌。
本文将从架构视角出发,明确我们"在哪里、对什么、产生什么效果",并与其他领域建立清晰的隔离墙。
一、为什么必须强调"边界"?
- 没有边界,就没有专业深度------每个人都想插手别人的事,最终谁都不精。
- 没有边界,就没有责任归属------出了问题互相推诿,因为没人知道该由谁负责。
- 没有边界,就无法衡量产出------架构师的交付物到底是什么?是代码?是文档?还是其他?
因此,我们首先要锁定架构岗位的唯一战场。
二、架构领域的"边界锁定"
1. 我们在哪里(战场范围)
- 不在 业务流程图里,不在 UI像素格里,不在 前端交互逻辑里,不在后端的业务CRUD里。
- 我们的战场是:全局拓扑图与部署管线。
- 服务器节点、网络带宽、数据库集群、缓存中间件(Redis)、消息队列(Kafka/RabbitMQ)、CDN节点。
- 以及这些组件之间的数据流向图 和调用链路。
2. 我们对什么东西做改变(作用对象)
我们不改变"按钮的颜色",不改变"API返回的JSON字段名",也不改变"表格的排序逻辑"。
我们改变的是物理与逻辑的配置关系:
- 硬件映射:分配CPU、内存、磁盘IO,决定虚拟机或容器的规格。
- 流量路由:决定请求从用户浏览器出发,经过哪些网关、负载均衡,最终落到哪台Pod上。
- 数据分片:决定哪些表分库分表,冷热数据如何分离到不同存储介质。
3. 我们产生什么效果(交付物与价值)
我们不产出原型图,也不产出业务功能代码。
我们产出的是 SLA(服务等级协议)保障书 和 扩容预案:
- 稳定性效果:确保单台服务器宕机时业务零中断(故障自动转移)。
- 容量效果 :明确系统每秒最高可承受的交易数(TPS/QPS) ,以及数据存储的天花板(例如:可支撑日均1000万订单)。
三、与其他领域的"物理隔离墙"
为了不越界,我们必须承认各领域的产出终点,且架构只做审核与约束,而非替代执行。
| 领域 | 他们的产出(边界终点) | 架构对其的干预方式(非替代) |
|---|---|---|
| 产品 | PRD文档、业务流程图 | 架构只做"可行性否决":如果产品功能会导致数据库死锁或带宽打满,给出资源上限建议,但不替产品画流程图。 |
| UI | Figma / Axure 设计稿 | 架构只做"加载时长的约束":规定首屏资源包不得超过X Mb,否则影响渲染。不干涉字体、间距、配色。 |
| 前端 | VSCode源码 + Dist编译包 | 架构只做"构建与环境变量":规定静态资源上传至哪块OSS、走哪条CDN。不干涉内部组件拆分的代码逻辑。 |
| 后端 | 源码仓库 + 服务器上的运行进程 | 架构只做"资源配额与接口契约":规定每个微服务实例最大堆内存为4G,接口超时统一为3秒。不干涉内部算法的具体实现。 |
四、两大核心使命的"边界细化"
你可能会问:架构不是要保证稳定性 和容量吗?那我们就把这两个词再具体化,超出以下范围的,一概不归架构管。
1. 关于稳定性(边界是"故障域")
- 我们要做的 :划定故障爆炸半径。例如,支付服务挂了,绝对不能导致商品浏览页崩溃------通过熔断、降级、隔离舱壁模式来实现。
- 我们不做:修复某段代码里的空指针异常(那是后端的Bug修复边界)。
2. 关于容量(边界是"水位线")
- 我们要做的 :设定阈值警报。例如,Redis内存占用达到80%时自动触发扩容脚本,数据库连接数超阈值时拒绝新的慢查询。
- 我们不做:手动删除脏数据来释放空间(那是DBA或后端的数据维护边界)。
五、总结:架构师的定场诗
架构的边界,止于"方案的选定"和"资源的预估"。
当我们拿出部署架构图 和压测报告 时,我们的工作即告完成。
至于业务跑得顺不顺(产品责任)、界面美不美(UI责任)、代码有没有Bug(前端/后端责任)------只要它们没有触发我们设定的"资源红线"和"超时熔断开关",我们绝不伸手干预。
守住边界,才是对彼此专业最大的尊重。 这份共识应同步给所有团队成员,让每个人在自己的领地内深耕,最终形成合力,而非内耗。