`

架构设计之初体验,送给准备进阶架构的朋友(个人总结)

阅读更多

这篇文章呢是我在阿里学习了架构设计之后总结的一篇文章,本人是高级开发,目前想进阶架构师

1 基本概念和目的

架构设计的基本概念和目的

 

架构设计的目的是为了解决系统复杂度带来的问题,并不是要面面俱到,不需要每个架构都具备高性能、高可用、高扩展等特点,而是要识别出实际业务实际情况的复杂点,然后有有针对性地解决问题,即:有的放矢,而不是贪大求全。 在实际情况中,不一定每个系统都要做架构设计,需要结合实际情况。有时候最简单的设计开发效率反而是最高的,架构设计毕竟要投入时间和人力,这部分投入如果用来尽早编码,项目也许会更快。

2 架构设计复杂度来源

高性能

高性能

 

高可用

高可用

 

可扩展性

可扩展性

 

低成本、安全、规模

低成本、安全、规模

 

3 架构设计三原则

架构设计三原则

 

合适原则

GFS为何在Google诞生,而不是在Microsoft诞生,其中Google有那么庞大的数据是一个主要因素,而不是因为Google的工程师比Microsoft的工程师更加聪明。

真正优秀的架构都是企业在当前人力、条件、业务等各方面约束条件下设计出来的,能够合理地将资源整合一起并发挥出最大功效,并且能迅速落地。这也是很多BAT出来的架构师到了小公司或者创业团队反而做不出成绩的原因,因为没有大公司的平台、资源、积累,只是生搬硬套大公司的做法,失败的效率非常高。

简单原则

软件领域的复杂性

 

无论是结构的复杂性还是逻辑的复杂性,都会存在各种问题,所以架构设计时如果简单方案和复杂的方案都可以满足需求,最好选择简单的方案。《UNIX编程艺术》总结的KISS(Keep It Simple,Stupid!)原则一样适用于架构设计。

演化原则

对于软件系统来说,变化才是主题。软件架构需要根据业务的发展而不断变化。 如果没有把握“软件架构需要根据业务发展不断变化”这个本质,在做架构设计的时候就很容易陷入一个误区:试图一步到位设计一个软件架构,期望不管业务如何变化,架构都稳如磐石。

为了实现这样的目标,要么照搬业界大公司公开发表的方案;要么投入庞大的资源和时间来做各种各样的预测、分析、设计。无论哪种做法,后果都很明显:投入巨大,落地遥遥无期。更让人沮丧的是,就算跌跌撞撞拼死拼活终于落地,却发现很多预测和分析都是不靠谱的。

实践中,架构师要提醒自己不要贪大求全,遵循演化优于一步到位的原则,因为业务的发展和变化总是很快的,**无论多牛的团队,都不可能完美预测所有的业务发展和变化路径。**实践中可以参考如下建议:

  • 首先,设计出来的架构要满足当时的业务需要。

  • 其次,架构要不断地在实际应用过程中迭代,保留优秀的设计,修复有缺陷的设计,改正错误的设计,去掉无用的设计,使得架构逐渐完善。

  • 第三,当业务发生变化时,架构要扩展、重构,甚至重写;代码也许会重写,但有价值的经验、教训、逻辑、设计等却可以在新架构中延续。

  • 在这里推荐一个学习架构的群:433540541,进群可以免费获取到架构学习资料,希望能够帮到现在想要进阶架构,遇到职业瓶颈的朋友。

4 架构设计的流程

 

架构设计的流程

相信很多朋友看完之后也想现在就学习一下程序员进阶架构方面的知识,还有很多朋友在3-5年之间,但是呢,遇到了职业瓶颈,想进阶一个台阶,在网上找了大量的视频,看了很多书籍都没有太大的效果,公司项目上面遇到的项目问题也没有地方问,所以呢,这里有老师们录制的一些关于Java进阶的一些视频,并不是一两个方面。肯定能够帮到行业的一些朋友,少发些时间在博客和百度上面找资料,把时间利用好。可以加群:433540541,免费获取。

分享到:
评论

相关推荐

    架构设计图架构设计架构设计架构设计架构设计

    架构设计架构设计架构设计架构设计架构设计架构设计架构设计架构设计架构设计架构设计架构设计架构设计架构设计架构设计架构设计架构设计架构设计架构设计架构设计架构设计架构设计架构设计架构设计架构设计架构设计...

    安全架构设计方法指南.pptx

    华为出品-安全架构设计方法指南,讲解安全架构设计的来源、软件系统架构与安全架构的定义,常见的系统架构表现形式,安全架构视图,安全架构设计的基本步骤和参考,基于八维度设计框架的安全架构设计方法,维度安全...

    逻辑架构和物理架构在架构设计中的应用

    在不同的架构设计方法中出现的软件架构视图种类很多,本文介绍最常用的两种架构视图——逻辑架构视图和物理架构视图,并通过具体案例的分析说明如何运用它们进行架构设计。当观察和描述事物大局的时候,逻辑架构和...

    Java互联网架构师系统进阶课程.txt

    Java互联网架构师系统进阶课程 目录1.并发编程2.Spring3.mybaits4.Jvm与性能调优5.tomcat6.MySQL7.Nginx8.netty9.分布式思维10.zookeeper11.架构核心服务层技术基础篇12.Dubbo 全解析

    架构实战 : 软件架构设计的过程

    本书从基本原理入手,介绍软件架构设计过程中涉及的一些概念、流程、方法、用到的工作产品及可重用的资源,从第6章开始,通过介绍一个具体的案例来阐述如 何定义需求、创建逻辑架构、创建物理架构。在第10章“进阶”...

    【精心整理】系统架构设计师软考资料.zip

    系统架构设计师:软件架构师之路 系统架构设计师复习笔记 系统架构师论文范文50篇(含完整目录) 系统架构设计师各知识点思维导图(很全很详细) 2010年下半年系统架构设计师上午试题分析与解答 2009年下半年系统架构...

    系统架构设计师教程(软考)划重点版本

    【内容介绍】 系统架构设计师,软件架构设计、软件工程、项目管理课程内容的重点,善于总结整理考试重点,抓住考试难点。 【学习目标】 1.知识覆盖面广,适合零基础考生。 2.帮助考生在最短的时间,抓住考试重点和...

    进阶之光里的RxJava

    第8到第10章介绍架构设计所需要的知识点。第11章简单介绍Android系统框架与MediaPlayer框架。本书详细并深入讲解Android开发者必备的和前沿的知识,适合有一定开发基础的开发者阅读,这有助于他们提高技术水平;同时...

    [精品]企业信息化架构规划设计全面参考资料合集(100份).zip

    华为安全架构与设计进阶课件 华为流程与信息化实践与架构规划 某大型集团公司IT技术架构规划方案 企业信息化建设TOGAF内训课件 企业架构设计理论与IT架构规划方法 某集团流程优化及IT规划项目-IT架构规划设计报告...

    .net三层架构设计案例-新手进阶

    .net三层架构设计案例新手进阶篇,新手可以学习比较简单的分层概念。

    架构师进阶之路-Java架构致力于提供后端工程师提供架构设计相关的各种资源和面试题 .zip

    架构师进阶之路-Java架构致力于提供后端工程师提供架构设计相关的各种资源和面试题。.zip

    架构设计之性能设计经验

    因此在进行架构设计中性能设计非常重要。 但架构设计实际是一个平衡设计,在可用性、可扩展性、可维护性、可靠性、高性能等之间做个妥协选择。这些非功能性的需求再加上复杂的功能性需求,同时还要考虑到项目管理...

    Android进阶架构资料.jpg

    Android架构师知识图谱 按照图中的知识系统学习,Android架构师职位

    java初级进阶到架构师148讲视频教程.zip

    java初级进阶到架构师148讲视频教

    java架构师是什么?58套java架构师资源870G进阶架构师学习.pdf

    java架构师是什么?58套java架构师资源870G进阶架构师学习

    软考高级系统架构设计师资料

    “系统架构设计师,属于计算机技术与软件(高级)专业技术资格。考试合格人员能够根据系统需求规格说明书,结合应用领域和技术发展的实际情况,考虑有关约束条件,设计正确、合理的软件架构,确保系统架构具有良好的...

    2009-2018年软考系统架构设计师真题及答案解析(28套)

    2009年下半年 系统架构设计师 案例分析.docx 2009年下半年 系统架构设计师 综合知识.docx 2009年下半年 系统架构设计师 论文 .docx 2010年下半年 系统架构设计师 案例分析.docx 2010年下半年 系统架构设计师 综合...

    修炼Java开发技术_ 在架构中体验设计模式和算法之美

    《修炼Java开发技术:在架构中体验设计模式和算法之美》细致地分析了Java数据结构、设计模式、算法和架构的基本知识,与读者一起在架构中体验设计模式和算法之美。本书内容新颖、知识全面、讲解详细,全书共分27章,...

    java 高级架构进阶学习

    Java高级架构进阶 思维导图 面试真题 架构视频 更多Java架构进阶视频.jpg 0.4MB 对标年薪50W资深架构师成长路线图(简图).png 0.2MB spring源码分析教程.jpg 0.5MB mybatis源码分析教程.jpg 0.5MB 再谈柔性...

    嵌入式系统软件架构设计.pdf

    比较全面的阐述嵌入式系统软件架构设计的资料,pdf版本,文字版,完整无广告。 本课程是针对嵌入式软件开发的特点,讨论架构设计的思路和方法。试图给大家提供一种思想,启发大家的思维。框架,自动化代码生成和...

Global site tag (gtag.js) - Google Analytics