如何做一个软件架构

本文探讨了软件架构的重要性,指出架构应基于实际业务需求,而非为了架构而架构。提出了从明确目标、梳理任务到制定实施计划的构建流程,并强调以业务为中心、数据为驱动的设计原则。同时,列举了应对技术挑战的模式,如分层、分布式等,并概述了互联网架构的各组成部分。文章最后提到评估架构好坏的标准,包括业务契合度、性能和投入收益比等。
摘要由CSDN通过智能技术生成

什么是架构?指导软件系统各个方面的设计,后续的一系列系统开发活动都会在这个架构之内实施。

举个例子,公司让IT部门规划适应未来3年发的技术架构,结果的做法是收集了一些架构资料,为了架构而架构,做了个PPT,PPT里各种华而不实的几张图,当进行技术评审的时候,架构方案自己都说服不了自己,PPT里描述的各种点都没有坚实的理由支撑,这还何谈进行技术评审。

做事还是先厘清思路再做事,什么是思路?即目标、做什么、怎么做和结论是什么。没有思维框架的指导,做事就会像无头苍蝇一样乱哄哄的不知所措。

那如何做一个软件架构呢?首要分析当前所存在问题或者业务战略目标,把它都很清晰地描述出来,搞明白为什么要做这件事。其次梳理要哪些事情,分清优先级。最后想清楚怎么做,计划投入多少资源来做事,产出收益是什么,制定实施计划表。这里有个方法是用小黄鸭调试法,不断问自己为什么这么做,这么做解决了什么问题,能不能先说服自己,能不能说服别人,能不能达到预期。

全局遵循以业务为重心、以数据为中心得设计原则,其次才是使用各种手段和技巧,不要一味追求一步到位,完美主义,架构一定是渐进式发展。

当前软件架构面临大流量、高并发、高可用、海量数据处理、复杂网络环境、快速需求响应和发布挑战。应对这些挑战也有相应得一些模式,例如分层、分割、分布式、缓存、异步、冗余、自动化、人工智能等。

当前常用的互联网架构主要包括前端架构(We和App开发技术、浏览器和协议优化技术、CDN、动静分离、反向代理、DNS)、网关和应用层架构(网关技术、负载均衡技术、动态页面静态化技术、业务拆分DDD技术)、应用服务架构(微服务框架、分布式消息队列技术、分布式缓存技术、分布式一致性服务)、存储架构(分布式文件系统、分布式关系型数据库、NoSQL数据库、图数据库)、后台架构(大数据平台技术、搜索引擎技术、推荐引擎技术、数据仓库技术)、运维与安全架构(数据采集与展示、数据监控与报警、攻防技术、数据加解密技术)。

如何评价一个架构的好坏?首先是否符合实际业务,然后是响应时间、并发数、吞吐量、性能计数器、高可用、可扩展、可伸缩、安全性和投入收益比几个方向进行评估。

以上是对架构的一点理解,主要还是要强调不能为了架构而架构,在解决问题的前提下越简单越好。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值