欢迎点击下方👇🏻关注我,记得星标哟~
文末有惊喜~
架构设计的误区
对于架构设计,很多人都有误解。
有人认为架构很重要,所以任何项目都必须做架构设计,但他们忽视了一个事实,即使没有精心设计的架构,很多创业公司的初期产品也能运行,过分强调架构设计反而不会有好的收益。
还有些人认为,架构设计可以提高研发效率,但其实简单的设计往往更高效。架构设计需要时间和资源,如果把这些资源用在写代码上,项目可能会更快完成。
还有一种误区认为,大厂的项目都会做架构设计,考虑高并发、高性能、高可用性,所以我们也要做。
由于大厂的成功,以及从这些大厂来的技术专家,项目在决定架构时,最有说服力的话就是“阿里就是这么做的”,“腾讯就是这么做的”。
大公司的经验和成功模式很重要,值得学习,但盲目抄袭大厂架构,会使架构过于复杂,导致项目难以实施和维护,甚至影响团队的协作和系统稳定性。
不做架构设计,会有什么问题?
如果不做架构设计,说明你的系统还不够复杂。
但随着业务增长,系统会从单体应用变为分布式应用,系统变得越来越复杂,技术团队可能会分化为多个专门的团队,每个团队维护一批职责相关的应用。
如果没有架构设计,系统会变得混乱不堪,出现以下痛点问题:
• 应用边界模糊:研发人员胡乱拆分应用,没有基于当前业务出发,也没有明确的拆分原则和规范。导致了系统进入无序状态,大幅降低开发效率。
• 应用缺乏模块化设计:项目中所有功能代码混在一起,没有明确的模块划分,导致一个小改动牵一发而动全身,产生各种意外bug,后续修改和扩展困难。
• 团队协作效率低:没有明确的架构设计,团队成员无法理解各自的工作和依赖,导致频繁沟通、扯皮,影响开发进度和产品交付时间。
• 技术架构失控:不同的研发团队使用不同的技术或组件,导致公司内部的技术架构失控。研发人员为了追求时髦,不断引进新技术,但缺乏深度,导致出现各种问题,很难快速定位和修复,团队疲于奔命。
架构设计的目的是什么?
架构设计的目的是为了解决系统复杂度带来的问题。
通过架构设计,对系统进行有序的重构,降低系统的“熵”,使系统持续进化,从而改进软件质量,提高效率,满足当前业务的发展,并能快速扩展。
虽然结论很简单,但明白了架构设计的真正目的,我们就不难判断,在什么场景下,需要真正去做架构设计:
需求相对复杂
在需求复杂的情况下,系统可能涉及多个业务领域、复杂的数据处理流程,架构设计帮助我们理清系统的核心要素和关系,明确每个部分的职责,确保系统模块化并易于维护。
满足非功能性需求
例如,对于大型电商系统,性能、安全性、可用性、可扩展性等非功能性需求都至关重要。
架构设计要保证系统在高峰时期也能高效运行,通过运用负载均衡、缓存和读写分离等架构方案可以实现这个目标。
系统生命周期长
对于长期使用和发展的系统,架构设计时,要考虑未来可能的变化,包括新功能迭代、业务量增长带来的系统挑战等。
业务变革的需要
例如,电商平台决定从B2C模式扩展到B2B或C2C模式,这通常涉及业务流程调整、产品功能变更。架构设计确保这些新功能能顺利集成,不影响现有系统的稳定性和扩展性。
大家好,我是汤师爷,南京大学硕士,先后就职于华为、阿里,自己办过公司,也当过创业公司CTO,现任某大厂资深架构师。白天搬砖,晚上写写自媒体文章,偶尔混下互联网大会讲师。
相逢即是缘,欢迎扫下方👇🏻二维码加我微信,备注【架构资料】,免费领取学习资料,含最全架构学习路线图,海量大厂架构案例。
往期精选文章推荐:
SaaS架构:多租户系统架构设计
SaaS架构:面向中小连锁的SaaS系统整体规划
SaaS架构:中央库存系统架构设计
SaaS架构:商品系统架构设计
SaaS架构:客户管理系统架构设计
SaaS架构:线上商城系统架构设计
SaaS架构:订单履约系统架构设计
SaaS架构:促销系统架构设计
SaaS架构:组织管理的底层逻辑与架构设计
SaaS架构:多渠道概念模型设计
SaaS架构:开放平台架构设计
欢迎把文章分享至朋友圈
点击在看是对我最大的支持
↘↘↘