预测师的架构入门学习总结

写在前面

前段时间一直在学习架构设计的相关知识,对架构的演化有了一点点自己的理解,本篇是我的架构入门总结,21年年初应该会接触一些项目拆分的工作,也希望学到的内容可以应用于实践。本文未来还会补充更多细节。

架构是什么

这是我读阿里技术博客的一篇文章总结的:
在这里插入图片描述
为什么需要架构设计呢?或者说架构设计为什么这么重要呢?
架构设计的主要目的不是为了拆分任务,不是为了实现业务需求,甚至不是为了实现高性能和高可靠的系统。
架构设计的主要目的是为了解决系统复杂度带来的问题。

架构的一般需求

高性能,高可用,可扩展

架构的演化流程

单机部署->动静分离->集群化->读写分离->分库分表->垂直拆分->微服务->引入消息队列

架构设计原则

李运华大佬总结的原则:
在这里插入图片描述
纵观淘宝的发展,也能看到类似的架构设计原则,过早优化是万恶之源,架构设计是门取舍的艺术。

架构设计方法论

我自己设计的架构设计方法论:先头脑风暴,再权衡利弊,再挑best one。详细来说,就是包含如下几个流程:
1.看下公司体量,理解清除业务(领域驱动),理清楚业务的复杂度。
2.根据业务抽象出架构的框架,弄清楚为了实现业务带来的系统复杂度。
3.找到公司里已经使用的技术,包括自研技术和开源技术。
4.根据每个技术的特点进行设计,以及综合根据业务的场景和未来半年时间可能达到的量等考量,进行设计。
5.设计三个方案,进行优劣分析,然后综合别人的意见选出最棒的方案。

对架构师的要求

李运华说,架构师的内功主要包括判断力(准确判断系统复杂度),执行力(用合适的方案解决问题),创新力(创造新的方案解决复杂问题)。
因此在成长为架构师的过程中,要不断积累经验(10000小时理论),拓宽视野(泡脑子的过程),深度思考(归纳总结,举一反三)。(PS:学习成长也是这个道理,贴一张今天技术群刚刚讨论的结论)
在这里插入图片描述
此外,要成为架构师,还需要这十二项修炼Java程序员必备的12项软技能

参考资料

《大型网站技术架构》
《从0开始学架构》
《淘宝技术这十年》
《架构设计:大型互联网架构演化简史》
《软件架构师12项修炼》

  • 29
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 6
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 6
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值