关于业务系统的架构思考

简介: 最近参与了很多的业务系统架构的讨论,有很多收获,也发现了很多不同领域的问题或解决方案抽象起来是一致的,这里做下简单的总结。 **一、不能将团队边界、领域边界混为一谈** 我们的人员是高效利用的,领域与团队间是不能一一对应的。绝大多数时候领域的边界是不变的,而团队的职责在不断调整,一个团队也很有可能是因为项目而设置,这个时候不能因为团队边界就去改变领域边界。 ![DomainBou

最近参与了很多的业务系统架构的讨论,有很多收获,也发现了很多不同领域的问题或解决方案抽象起来是一致的,这里做下简单的总结。

一、不能将团队边界、领域边界混为一谈

我们的人员是高效利用的,领域与团队间是不能一一对应的。绝大多数时候领域的边界是不变的,而团队的职责在不断调整,一个团队也很有可能是因为项目而设置,这个时候不能因为团队边界就去改变领域边界。

DomainBoundary2.png

当我们遇到"冲突"时,应该先聚焦在领域边界,忽略团队边界,应该从如果大家是一个团队,大家一起想架构方案会是什么样的方案。确定了方案后,再思考团队分工。

大家试试,真的可以解决很多问题哦!

二、架构的核心问题就是分层和边界问题

分层的本质就是将变化分离,让每一层独立变化,不用影响全局。分层可以缩小讨论范围,有利于更聚焦于问题本身。软件分层还是一种最佳实践。

这里想强调一下分层和边界定义对我们这样工作环境的意义,业务是在发展变化的,软件一定跟着一起变化,而我们今天的业务形式变化常常会让你无法在教科书中找到"正确"的架构设计,这个时候分层可以让我们把确定性的东西想清楚,封装好。让我们把精力花在不确定性的地方。

如果我们讨论复杂的业务和架构问题时,摸不清头脑,那就先进行分层,是我个人的实践方案,感觉很有用

三、架构的核心问题也是问题定义或领域分析的问题

正确的问题定义和领域定义最接近于问题的本质,当然也是对问题发展方向支撑最好的。面向对象设计思想也解释了这一点,面向对象就是一种能够让我们把问题和领域分析清楚的方法。

我这里想突出一种场景,当问题定义错误,领域划分错误,这个时候如果有另外的领域依赖了本领域,那就是个灾难,这个雷埋给了所有直接或间接信任你的人。

四、架构是一种平衡,不能一刀切

问题的解决方案往往是Hybrid模式的,这个不能理解为妥协。这里面主要想讲的跟第一条的核心思路相依,也与第二条相关。就是我们往往不是将软件分层去讨论,而是拿着两个完整的域或系统去讨论,而很多的冲突是不同层之间的。我们应该针对不同层提出不同的解决方案,形成一种Hybrid的方案。最终达到一种非妥协的平衡。

五、大数据时代,架构多了一种选择,很多可以变成一个优化问题。问题从定性变成了定量。

软件世界常常存在矛盾,比如CAP的矛盾。但今天在大数据时代,结合实时技术,我们可以将矛盾的某一个方面拿出来,从定性改为定量,经如一致性,假设我们的一致性能做到99.9999%,也能让一致性影响的用户范围永远小于个位数,可能就够了,而这个对于一致性的"放弃",很可能节省了巨大的人力和基础设施成本。这方面AE的区域化部署技术在一致性解决上面就采用了这样的思路。

相关文章
|
3月前
|
SQL 前端开发 关系型数据库
如何开发一套研发项目管理系统?(附架构图+流程图+代码参考)
研发项目管理系统助力企业实现需求、缺陷与变更的全流程管理,支持看板可视化、数据化决策与成本优化。系统以MVP模式快速上线,核心功能包括需求看板、缺陷闭环、自动日报及关键指标分析,助力中小企业提升交付效率与协作质量。
|
2月前
|
数据采集 机器学习/深度学习 运维
量化合约系统开发架构入门
量化合约系统核心在于数据、策略、风控与执行四大模块的协同,构建从数据到决策再到执行的闭环工作流。强调可追溯、可复现与可观测性,避免常见误区如重回测轻验证、忽视数据质量或滞后风控。初学者应以MVP为起点,结合回测框架与实时风控实践,逐步迭代。详见相关入门与实战资料。
|
2月前
|
前端开发 JavaScript BI
如何开发车辆管理系统中的车务管理板块(附架构图+流程图+代码参考)
本文介绍了中小企业如何通过车务管理模块提升车辆管理效率。许多企业在管理车辆时仍依赖人工流程,导致违章处理延误、年检过期、维修费用虚高等问题频发。将这些流程数字化,可显著降低合规风险、提升维修追溯性、优化调度与资产利用率。文章详细介绍了车务管理模块的功能清单、数据模型、系统架构、API与前端设计、开发技巧与落地建议,以及实现效果与验收标准。同时提供了数据库建表SQL、后端Node.js/TypeScript代码示例与前端React表单设计参考,帮助企业快速搭建并上线系统,实现合规与成本控制的双重优化。
|
3月前
|
人工智能 监控 测试技术
告别只会写提示词:构建生产级LLM系统的完整架构图​
本文系统梳理了从提示词到生产级LLM产品的八大核心能力:提示词工程、上下文工程、微调、RAG、智能体开发、部署、优化与可观测性,助你构建可落地、可迭代的AI产品体系。
588 51
|
2月前
|
机器学习/深度学习 人工智能 缓存
面向边缘通用智能的多大语言模型系统:架构、信任与编排——论文阅读
本文提出面向边缘通用智能的多大语言模型(Multi-LLM)系统,通过协同架构、信任机制与动态编排,突破传统边缘AI的局限。融合合作、竞争与集成三种范式,结合模型压缩、分布式推理与上下文优化技术,实现高效、可靠、低延迟的边缘智能,推动复杂场景下的泛化与自主决策能力。
280 3
面向边缘通用智能的多大语言模型系统:架构、信任与编排——论文阅读
|
2月前
|
人工智能 自然语言处理 安全
AI助教系统:基于大模型与智能体架构的新一代教育技术引擎
AI助教系统融合大语言模型、教育知识图谱、多模态交互与智能体架构,实现精准学情诊断、个性化辅导与主动教学。支持图文语音输入,本地化部署保障隐私,重构“教、学、评、辅”全链路,推动因材施教落地,助力教育数字化转型。(238字)
|
3月前
|
消息中间件 数据采集 NoSQL
秒级行情推送系统实战:从触发、采集到入库的端到端架构
本文设计了一套秒级实时行情推送系统,涵盖触发、采集、缓冲、入库与推送五层架构,结合动态代理IP、Kafka/Redis缓冲及WebSocket推送,实现金融数据低延迟、高并发处理,适用于股票、数字货币等实时行情场景。
384 3
秒级行情推送系统实战:从触发、采集到入库的端到端架构
|
3月前
|
前端开发 API 定位技术
如何开发车辆管理系统中的用车申请板块(附架构图+流程图+代码参考)
本文详细解析了如何将传统纸质车辆管理流程数字化,涵盖业务规则、审批流、调度决策及数据留痕等核心环节。内容包括用车申请模块的价值定位、系统架构设计、数据模型构建、前端表单实现及后端开发技巧,助力企业打造可落地、易扩展的车辆管理系统。
|
2月前
|
存储 人工智能 搜索推荐
拔俗AI助教系统:基于大模型与智能体架构的新一代教育技术引擎
AI助教融合大语言模型、教育知识图谱、多模态感知与智能体技术,重构“教、学、评、辅”全链路。通过微调LLM、精准诊断错因、多模态交互与自主任务规划,实现个性化教学。轻量化部署与隐私保护设计保障落地安全,未来将向情感感知与教育深度协同演进。(238字)
|
2月前
|
机器学习/深度学习 人工智能 搜索推荐
拔俗AI学伴智能体系统:基于大模型与智能体架构的下一代个性化学习引擎
AI学伴智能体系统融合大模型、多模态理解与自主决策,打造具备思考能力的个性化学习伙伴。通过动态推理、长期记忆、任务规划与教学逻辑优化,实现千人千面的自适应教育,助力因材施教落地,推动教育公平与效率双提升。(238字)