序言
在从编程小白到架构师的修炼过程中,所需要学习的知识是非常庞杂的。
我最开始学习架构设计的时候,一直搞不清楚系统如何实现从无序到有序,网上也找不到系统的资料。
这里整理了这些年关于架构设计的知识储备,给一些刚迈入架构师或想要进入架构师行业的同学,一点点参考(内容会逐渐深入)。
一、什么是架构设计?
所谓架构设计,就是用于指导大型软件系统各个方面的设计。而架构师要做的,就是用最小的人力成本满足需求开发和需求变更,用最小的运行成本来保障软件的运行。
常用的方法有:
1.使用微服务架构,把复杂系统拆分成一系列小的服务,再拆成功能模块,让人员更好地分工协作
2.前后端分离,让程序员专注某个知识领域,降低开发难度
3.分层设计,隔离业务逻辑,减少需求变更带来的影响
二、为什么需要架构设计?
原因无他,就是复杂。
1.需求让技术变复杂。小网站与大网站的技术复杂度不是一个等级,想想你自己搭建的个人站和谷歌网站的差别;
2.人员让技术复杂。成员水平不等、擅长技术也不一样,有效协作是考验;
3.技术本身复杂。使用的语言、框架、组件、数据库、大数据等技术,都有学习成本
4.软件稳定运行也复杂。软件上线并不是软件项目的终点,那才是真正考验的开始,因为充满了各种不确定性。比如某明星发个微博可能造成系统瘫痪,又比如有人删库跑路了(参考年初某盟的删库事件)。
正因为存在以上原因,我们才需要架