写点什么

架构设计复杂度的 6 个来源

《从 0 开始学架构》架构设计方法论

2019 年 3 月 13 日

架构设计复杂度的6个来源

谈到架构设计,相信每个技术人员都耳熟能详。我总结了三个架构设计相关的特性:


  • 架构设计的思维和程序设计的思维差异很大。

  • 架构设计没有体系化的培训和训练机制。

  • 程序员对架构设计的理解存在很多误区。


所以,虽然每个程序员心中都有一个成为架构师的梦想,梦想是美好的,但道路是曲折的。


我在十余年的技术生涯中,先后参与了包括社交、电商、游戏、中间件、内部运营系统等领域的架构设计,不断学习、思考、实践、总结、改进、交流,逐步形成了自己的一套架构设计方法论。《从 0 开始学架构》专栏涵盖了我的整套架构设计方法论和架构实践,主要包括以下内容:



开始学习之前,我们先来分析一下架构设计的目的是什么?通过回顾架构产生的历史背景和原因,我们可以基本推导出答案:架构设计的主要目的是为了解决软件系统复杂度带来的问题。那么,架构设计的复杂度来源是什么呢?我总结了 6 个复杂度来源:



延伸阅读


架构是什么?


架构设计的目的是什么?


一、高性能


对性能孜孜不倦的追求是整个人类技术不断发展的根本驱动力。但伴随性能越来越高,相应的方法和系统复杂度也是越来越高。软件系统中高性能带来的复杂度主要体现在两方面,一方面是单台计算机内部为了高性能带来的复杂度;另一方面是多台计算机集群为了高性能带来的复杂度



部分解决方案:


复杂度来源:高性能


高性能缓存架构


二、高可用


系统的高可用方案五花八门,但万变不离其宗,本质上都是通过“冗余”来实现高可用。它在形式上和高性能一样,都是通过增加更多机器来达到目的,但本质上是有根本区别的:高性能增加机器目的在于“扩展”处理性能;高可用增加机器目的在于“冗余”处理单元。通过冗余增强了可用性,但同时也带来了复杂性,我会在专栏中根据不同的应用场景逐一分析。



部分解决方案:


复杂度来源:高可用


三、可扩展性


由于软件系统固有的多变性,新的需求总会不断提出来,因此可扩展性显得尤其重要,几乎所有的技术人员对于可扩展性都特别重视。设计具备良好可扩展性的系统,有两个基本条件:正确预测变化、完美封装变化。但要达成这两个条件,本身也是一件复杂的事情。在具体代码中使用哪些可扩展的技术?最终的效果如何?我将在专栏中为你具体分析。



部分解决方案:


复杂度来源:可扩展性


四、低成本、安全、规模


我将在专栏中,为你分析低成本给架构设计带来的主要复杂度,体现在引入新技术或创造新技术,讨论从功能安全和架构安全引入的复杂度,以及规模带来复杂度的主要原因是“量变引起质变”。



学习了 6 大复杂度来源后,你可以结合所在的业务,分析一下主要的复杂度是这其中的哪些部分?是否还有其他复杂度原因?欢迎你加入专栏的学习,和我一起讨论。相信经过深度的思考,你对技术的理解会更加深刻。


部分解决方案:


复杂度来源:低成本、安全、规模


专栏简介:


每个程序员都有成为架构师的梦想,程序员成长也绕不开架构设计。


《从0开始学架构》专栏作者是资深技术专家李运华,目前带领多个研发团队,承担架构设计、架构重构、技术团队管理、技术培训等职责,曾就职于华为和 UCWeb,写过《面向对象葵花宝典》一书。


在专栏中,作者从架构基础、三大架构模式和实战的角度分享一整套架构设计方法论。照着做,你也能成为架构师。


专栏共 50 期,已更新完毕。目前有超过 3 万人加入学习,互动留言字数超过 20 万,邀请你加入学习!


2019 年 3 月 13 日 18:235368

评论

发布
暂无评论
  • 如何做互联网系统架构

    做架构,一定要先了解清楚具体的场景和需求,抓住问题,理解问题的本质。

    2020 年 7 月 2 日

  • 架构设计的目的

    如果深入探讨一下,为何要做架构设计?或者架构设计目的是什么?大部分人可能从来没有思考过。

    2018 年 5 月 3 日

  • 11.2 安全架构:加密与解密

    11.2安全架构:加密与解密

    2020 年 12 月 6 日

  • 【架构中的物联网】影子机制

    《架构中的物联网》文章主要是记录我在学习和思考物联网架构设计中的思路。主要从架构设计的角度解析物联网业务场景的解决方式。这些解决方式不仅仅局限于物联网领域,我希望能够透过这些设计来看到架构背后的思想。

    2021 年 1 月 8 日

  • 架构设计流程(一):识别复杂度

    从今天开始,我将用4讲内容,通过一个模拟的设计场景“前浪微博”,和你一起看看在实践中究竟如何进行架构设计。

    2019 年 9 月 6 日

  • 扩展:目标检测常用数据集综述

    2020 年 7 月 9 日

  • 网络安全及系统安全架构设计

    网络安全及系统安全架构设计

    2020 年 8 月 26 日

  • 第十二章总结

    第十二章架构总结:

    2021 年 1 月 10 日

  • 关于系统架构学习总结

    架构设计

    2020 年 7 月 2 日

  • 架构 0 期 -week5- 命题作业

    用你熟悉的编程语言实现一致性 hash 算法。

    2020 年 7 月 10 日

  • 架构一期第七周作业

    性能压测的时候,随着并发压力的增加,系统响应时间和吞吐量如何变化,为什么?

    2020 年 11 月 8 日

  • 到底什么是云原生架构?

    2019 年 9 月 25 日

  • 巧房微服务架构实战

    演讲嘉宾刘朝刚,巧房科技架构师内容介绍巧房主要是为房产中介提供SaaS服务的,随着客户数量的不断增多,客户需求也逐渐呈现出“多并且急”的特点,此时之前的单体架构的弊端就逐渐显现出来——耦合性太强,整个需求的开发发布成本比较高。与此同时,微服务和容器技术的出现与发展为解决上述问题指明了方向,经过详细调研与可行性分析之后,开始实施了由单体架构向基于Spring Cloud和Kubernetes的微服务架构进行迁移, 目前这套架构已经在线上运行一年多。在这一年多的实践过程中,也遇到了很多困难、做出了很多选择与取舍,也填了很多坑。在此,将实践经验分享给大家。主要涵盖以下几个方面的内容: 背景——简单介绍一下整个巧房微服务架构产生的背景。 架构——介绍一下巧房科技是如何基于Spring Cloud和Kubernetes的来实现微服务的,日志平台和监控平台是如何设计与实现的。 CICD——介绍一下巧房科技整个开发发布流程以及CICD是如何做的,从而来保障微服务能高质量的快速发布。 典型问题——介绍一下在实施微服务架构这一年中,遇到的典型问题以及相对应的解决方案。

    2018 年 12 月 18 日

  • 架构师(7 月刊)

    InfoQ中文站的电子杂志《架构师》(2012年7月刊)出炉了。本期的主编是InfoQ中文站总编辑郑柯。7月份《架构师》杂志ArchSummit架构师峰会专刊,本期我们对即将在ArchSummit架构师峰会上做分享的讲师就相关议题进行了采访。

  • 架构设计第一课

    如何成为一个架构师

    2020 年 6 月 10 日

  • 模块答疑:我能从大厂的大数据开发实践中学到什么?

    你好,我是李智慧,又到了我们模块答疑的时间了。在这个模块里,我主要讲了大数据开发的实践,所以今天我想和你聊聊我在大厂里学到哪些经验。

    2018 年 12 月 25 日

  • 架构之美(精选版)

    健壮、优雅、灵活和易维护的软件架构是怎样炼成的?本书通过一系列优秀的文章回答了这个问题,这些文章来自于十几位当今一流的架构师。在每篇文章中,作者都向我们展示了一个著名的软件架构,并分析了什么让其具有创新性,让其极其符合设计目标。本迷你书是《架构之美》的精选版,节选了其中的4个章节。

  • 架构设计复杂度来源

    架构设计复杂度的来源很多,其中相对重要的有高性能、高可用和可扩展,这是整个架构课程的脉络,也是进行架构设计的考量维度。

    2020 年 9 月 3 日

  • 第 1 周 架构方法 浮皮潦草之总结

    浮皮潦草之我见

    2020 年 9 月 20 日

发现更多内容

【架构师训练营 - week2 -2】总结

早睡早起

架构学习(二)作业

漫步跑小鸡

架构师训练营第二周作业

努力努力再努力m

极客大学架构师训练营

week2.学习总结

个人练习生niki

第二周作业

架构师训练营 - 第二周 - 作业

亮灯

编程的发展和设计的美

林昱榕

极客大学架构师训练营 编程的本质 面向对象的本质

架构师训练营第二周心得

努力努力再努力m

极客大学架构师训练营

week2.课后作业

个人练习生niki

依赖倒置原则

架构师训练营第二次总结

+╮(╯▽╰)╭/>……

面向对象编程原则

asd945

架构师训练营第二课作业

曾祥斌

架构师训练营第二章作业

JUN

OOD

Kiroro

第二周--设计模式

Just顾

week02 学习总结

Just顾

依赖倒置原则

Acker飏

极客大学架构师训练营

架构师训练营第二周-作业 Cache优化

无心水

极客大学架构师训练营 ISP

架构师训练营-作业2

进击的炮灰

架构师课程学习第二周心得

秤须苑

极客大学架构师训练营

架构师训练营第二周总结

陌生人

架构训练营第二周作业

Gavin

week02-作业

seki

万物互联=区块链+物联网

CECBC区块链专委会

AI 物联网 区块链技术 智能高效

架构师训练营学习总结(第二周)

战峰

「编程模型」C++代码组织

顿晓

c++ 命名空间 namespace 代码组织 编程模型

第二周学习总结

iHai

极客大学架构师训练营

架构师训练营 Week 02 总结

Wancho

面向对象设计

架构训练营第二周总结

Gavin

架构师训练营第二周总结

毛叫

极客大学架构师训练营

面向对象编程记录

asd945

NLP领域的2020年大事记及2021展望

NLP领域的2020年大事记及2021展望

架构设计复杂度的6个来源-InfoQ