这篇文章呢是我在阿里学习了架构设计之后总结的一篇文章,本人是高级开发,目前想进阶架构师
1 基本概念和目的
架构设计的目的是为了解决系统复杂度带来的问题,并不是要面面俱到,不需要每个架构都具备高性能、高可用、高扩展等特点,而是要识别出实际业务实际情况的复杂点,然后有有针对性地解决问题,即:有的放矢,而不是贪大求全。 在实际情况中,不一定每个系统都要做架构设计,需要结合实际情况。有时候最简单的设计开发效率反而是最高的,架构设计毕竟要投入时间和人力,这部分投入如果用来尽早编码,项目也许会更快。
2 架构设计复杂度来源
高性能
高可用
可扩展性
低成本、安全、规模
3 架构设计三原则
合适原则
GFS为何在Google诞生,而不是在Microsoft诞生,其中Google有那么庞大的数据是一个主要因素,而不是因为Google的工程师比Microsoft的工程师更加聪明。
真正优秀的架构都是企业在当前人力、条件、业务等各方面约束条件下设计出来的,能够合理地将资源整合一起并发挥出最大功效,并且能迅速落地。这也是很多BAT出来的架构师到了小公司或者创业团队反而做不出成绩的原因,因为没有大公司的平台、资源、积累,只是生搬硬套大公司的做法,失败的效率非常高。
简单原则
无论是结构的复杂性还是逻辑的复杂性,都会存在各种问题,所以架构设计时如果简单方案和复杂的方案都可以满足需求,最好选择简单的方案。《UNIX编程艺术》总结的KISS(Keep It Simple,Stupid!)原则一样适用于架构设计。
演化原则
对于软件系统来说,变化才是主题。软件架构需要根据业务的发展而不断变化。 如果没有把握“软件架构需要根据业务发展不断变化”这个本质,在做架构设计的时候就很容易陷入一个误区:试图一步到位设计一个软件架构,期望不管业务如何变化,架构都稳如磐石。
为了实现这样的目标,要么照搬业界大公司公开发表的方案;要么投入庞大的资源和时间来做各种各样的预测、分析、设计。无论哪种做法,后果都很明显:投入巨大,落地遥遥无期。更让人沮丧的是,就算跌跌撞撞拼死拼活终于落地,却发现很多预测和分析都是不靠谱的。
实践中,架构师要提醒自己不要贪大求全,遵循演化优于一步到位的原则,因为业务的发展和变化总是很快的,**无论多牛的团队,都不可能完美预测所有的业务发展和变化路径。**实践中可以参考如下建议:
-
首先,设计出来的架构要满足当时的业务需要。
-
其次,架构要不断地在实际应用过程中迭代,保留优秀的设计,修复有缺陷的设计,改正错误的设计,去掉无用的设计,使得架构逐渐完善。
-
第三,当业务发生变化时,架构要扩展、重构,甚至重写;代码也许会重写,但有价值的经验、教训、逻辑、设计等却可以在新架构中延续。
-
在这里推荐一个学习架构的群:433540541,进群可以免费获取到架构学习资料,希望能够帮到现在想要进阶架构,遇到职业瓶颈的朋友。
4 架构设计的流程
相信很多朋友看完之后也想现在就学习一下程序员进阶架构方面的知识,还有很多朋友在3-5年之间,但是呢,遇到了职业瓶颈,想进阶一个台阶,在网上找了大量的视频,看了很多书籍都没有太大的效果,公司项目上面遇到的项目问题也没有地方问,所以呢,这里有老师们录制的一些关于Java进阶的一些视频,并不是一两个方面。肯定能够帮到行业的一些朋友,少发些时间在博客和百度上面找资料,把时间利用好。可以加群:433540541,免费获取。
相关推荐
本书从基本原理入手,介绍软件架构设计过程中涉及的一些概念、流程、方法、用到的工作产品及可重用的资源,从第6章开始,通过介绍一个具体的案例来阐述如 何定义需求、创建逻辑架构、创建物理架构。在第10章“进阶”...
根据提供的信息,我们可以推断这份文档“系统架构设计师教程.pdf”是关于系统架构设计方面的教程。由于提供的部分内容仅包含重复的网址(www.TopSage.com),我们无法从中直接获取具体的教学内容。因此,我们将基于...
标题"2021 Java架构进阶 Nginx企业级教程.txt打包整理.zip"表明这是一个关于Java架构进阶和Nginx企业级应用的教程集合,内容可能涵盖Java技术栈的高级应用、系统架构设计以及Nginx服务器的配置和优化。.txt格式的...
在“架构师进阶之路-Java架构”这个资源包中,我们主要关注的是Java后端开发人员如何逐步提升自己的技术水平,成为一个优秀的架构师。这个压缩包包含了一个名为"JavaArchitecture-master"的项目,这通常意味着这是一...
【系统架构设计师】是软件开发领域中的核心角色,他们承担着设计和规划复杂软件系统架构的任务,确保系统在技术上可行、高效,并满足业务需求。系统架构设计师不仅要具备深厚的技术底蕴,还需拥有良好的管理和协调...
比较全面的阐述嵌入式系统软件架构设计的资料,pdf版本,文字版,完整无广告。 本课程是针对嵌入式软件开发的特点,讨论架构设计的思路和方法。试图给大家提供一种思想,启发大家的思维。框架,自动化代码生成和...
"《软件架构设计文档》模板" 《软件架构设计文档》模板是软件开发项目中不可或缺的一部分,它为软件架构师和开发团队提供了一个统一的架构设计蓝图。本文档模板涵盖了软件架构设计的所有方面,包括架构设计目标、...
05_设计模式与软件架构设计.pdf 06_AOP开发实践.pdf 07_软件架构通用服务.pdf ................ ............. .............. ................. .............. 09_基于SOA架构设计.pdf 10_企业软件架构.pdf 11_...
JavaEE 30招 JavaEE架构师进阶之路.zip
资源名称:架构实战软件架构设计的过程内容简介:本书从基本原理入手,介绍软件架构设计过程中涉及的一些概念、流程、方法、用到的工作产品及可重用的资源,从第6章开始,通过介绍一个具体的案例来阐述如 何定义需求...
Java开发者技术书籍大全 - Java入门书籍,Java基础及进阶书籍,框架与中间件,架构设计,设计模式,数学与算法,JVM周边语言,项目管理&领导力&流程,职业素养与个人成长,格局与视野,面试参考书等。Java技术书籍...
本文档为2021年下半年系统架构设计师下午真题及答案解析,内容主要围绕着一个机器学习应用开发平台的设计与实施展开,提出了一个具体的项目需求和架构设计方案,并针对这些设计要求了进行了评估。文档中提及的需求...
最后,本书对架构之美进行了总结,强调了在软件开发过程中,架构设计不仅需要遵循技术规范,还需要在美学和创新性上有所追求。作者们通过分析不同类型的系统,展示了架构设计在实际应用中的多样性和深度。 综上所述...
软件架构设计说明书 软件架构设计说明书是指在软件开发过程中,对软件系统的整体架构进行设计和描述的文档。该文档旨在为软件开发团队提供一个统一的架构蓝图,以指导软件的设计、开发和测试工作。软件架构设计说明...
Redis进阶,架构师成长之路
希塞2019年系统架构设计师培训讲义是一份专注于系统架构师考试的培训资料,内容覆盖了系统架构设计的多个方面,包括企业信息化战略与实施、软件工程、软件架构设计、系统安全分析与设计、系统可靠性分析与设计、项目...
《大型分布式网站架构设计与实践》主要介绍了大型分布式网站架构所涉及的一些技术细节,包括SOA架构的实现、互联网安全架构、构建分布式网站所依赖的基础设施、系统稳定性保障和海量数据分析等内容;深入地讲述了...
《系统架构设计师教程》是由杨春辉主编,清华大学出版社出版的一本专为系统架构设计师准备的教程。这本书深入探讨了系统架构设计的核心概念、方法论和最佳实践,旨在帮助读者理解和掌握构建高效、可扩展、易维护的...
这门课程的核心目标是帮助学员掌握全面的架构设计理论、实践技巧以及行业最佳实践,从而在复杂的软件开发环境中发挥关键作用。 在架构师的道路上,学习者需要理解并掌握以下几个重要的知识点: 1. **系统设计基础*...