Java项目学习SpringBoot 2.x 实战仿B站高性能后端项目

511 阅读5分钟

Download:学习资料 提取码:pakq

架构的定义

  我们来看看软件架构的一般定义:

  程序和计算系统软件体系结构是指系统的一个或多个结构。 该结构包括软件的构建,构建的外部可见属性以及它们之间的相互关系。

  该体系结构不是可操作的软件。 具体来说,这是一个表达式,它使软件工程师能够:

  分析满足监管要求的设计有效性。

  在设计更改相对容易的阶段,请考虑架构的可能选项。

  降低与软件构建相关的风险。

  软件架构的重要性

  我为什么说软件架构非常重要? 直接编程直接开发,请多看看以下几点?:

  软件架构可以满足系统的质量

  体系结构设计允许受益者达成一致的目标

  架构设计可以支持规划过程

  架构设计对系统开发的指导性

  架构设计有效管理复杂性

  架构设计为复用奠定了基础

  架构设计降低了维护成本

  架构设计可以支持冲突分析

  什么是好的软件架构

  这个问题可能会被大家问到,包括一些IT公司也在问,这个问题的答案可能不仅仅是简单的句子或者定义可以回答,我们来看下面几个图片的例子:

  这是什么东西? 乐高玩具,乐高玩具,我们都玩过吗?

  它可以作为一个完整的模型出售给您,您也可以将其全部分解并自由地将其从一个模型重新组装到另一个模型,因为每个Lego模块都有一个水平和坚定方向的标准。 界面,这就是我们常说的高内聚和低耦合。

  什么是坏架构

  我们来看看上面的图片。

  一个是清代的八封信,另一个是孔乙己。

  记住四种写作方式?

  然后,你专门研究了回写单词的四种方式,但你有没有想过我可以将单词转化为单词? 这是一个很好的折扣吗?

  要知道最时尚并不一定是最好的

  为什么M1A2和Apache直升机中的A8处理器或最新奔腾处理器没有? 实用,测试是最好的!

  成功的软件又是怎么样的呢

  我们谈论软件架构。 该架构的最终体现是一款软件。 什么是成功的架构? 什么是成功的软件?

  我们看上边的图片,这是美国的阿里巴巴级宙斯盾驱逐舰。 右边是印度的“德里级”驱逐舰库里盾,由美国安吉斯自己设计和建造。

  两艘军舰有什么区别?

  一种是模块化设计,整体线条流畅,模块可随意更换。

  一种是拼凑而成的,线条被暴露出来,并且甲板上充满了各种电子设备和天线。 一旦被损坏,维护起来非常困难。

  JAVA通用领域的相关技术

  当然,我们这里主要讲JAVA。 所以,作为一名JAVA和J2EE架构师,需要什么样的技能才能达到架构师的水平?

  上面的图片,我们这样看,它分为三部分:

  在顶端,我们需要掌握一些技术领域的知识,它可以使我们能够解决诸如电子商务,公司OA,银行保险金融等解决方案和设计其他领域的共同领域。

  在中间,为了达到这些技术的顶端,我们需要了解一些中间件,数据库,开发框架知识,它是一个支柱。

  底部,底部? 这是我们的基础,为我们达到中层或上层奠定基石,这就是为什么人们有时会发现我的博客和其他博客有不同的地方,不仅是编程,而且还有“中间”层。也就是说,数据库, 安全和框架建设混杂在一起,因为我不希望每个人都通过阅读我的博客而停留在码,码和螺丝的水平。

  架构师的职能

  说了这么多架构之后,我们来谈谈架构师。

  如果您看到它,架构师的首要责任是集中于:非功能需求,即非功能需求。

  许多人仍然不清楚功能需求与非功能需求之间的界限。 这里有两个例子来说明:

  功能性需求

  页面查询时,这个查询与哪个数据库表关联,因为我的业务是这样的一个需求,在界面A中有一个按钮,然后弹出窗口B,在窗口B中显示什么样的数据,最终的界面 点K结束后,打开界面B时哪个数据发生了变化。

  非功能性需求

  我们的系统查询速度小于2S,是否考虑使用异步查询,采用团队排队机制,系统需求可容纳1000个并发,这个系统应该做成插件,能够水平扩展,能够遵守XXX协议,此Web服务是否要使用SOAP HEAD和BASIC身份验证,NTLM身份验证或令牌环身份验证?该下拉框可以被输入并且可以被下拉。此身份验证是否可以访问LDAP?

  许多面向商业的项目公司认为,架构师在解决问题(即故障排除,故障排除,错误,然后找到架构师)时,将架构师视为消防员。你不会为自己考虑为什么问题架构师已经出现了2秒钟,2分钟或1天半的时间来解决过去几个月无法解决的问题。好?

  解决这是人们应该解决的问题,说人类建筑师失败了?是不是我们应该从这个软件和架构的最早框架中找到问题?