阿里十年架构师分享如何成为一个Java架构师(文末附学习路线)架构的定义软件架构的重要性什么是好的软件架构什么是坏架构要知道最时尚并不一定是最好的成功的软件又是怎么样的呢JAVA通用领域的相关技术架构

架构的定义

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

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

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

分析满足监管要求的设计有效性。在设计更改相对容易的阶段,请考虑架构的可能选项。降低与软件构建相关的风险。

软件架构的重要性

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

软件架构可以满足系统的质量体系结构设计允许受益者达成一致的目标架构设计可以支持规划过程架构设计对系统开发的指导性架构设计有效管理复杂性架构设计为复用奠定了基础架构设计降低了维护成本架构设计可以支持冲突分析

什么是好的软件架构

这个问题可能会被大家问到,包括一些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天半的时间来解决过去几个月无法解决的问题。好?

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

建筑师,这不是一个问题解决问题。

在节日之前,我还进行了一些采访。从纯粹的技术角度来看,我选择了建筑师TECH LEADER的候选人。

我仍然发现很多问题。这在中国是一个普遍的问题:我们的程序员经常不做程序,但更多时候他们在做业务逻辑并成为某个领域的商人。

当然,我们的程序员在他们职业生涯的头三年和四年都会为某个领域编写代码。这不是问题,但请务必记住我们是编码,IT和程序员。 ,而不是“业务人员”!

它是什么?什么是程序员?什么是技术领导者?什么是建筑师?

我们必须很好地问自己这个问题。好好想一想。建筑师的要求是什么?

我随便在这里说些什么:我相信这对于一些想要走技术之路的学生很有帮助:

TCP / IP协议,加密和解密,计算机原理(附加补码),JPG代码,MPEG2-3协议,逻辑电子电路,计算机编译原理(堆栈,堆栈,队列),这些东西在工作时总是使用?这些是你一直关注的底层吗?

如果您要采取技术路线,一定要记住“数据库+ ASP / JSP”不是技术。它只比表格制作强大一点。报告作者有点强大。

请记住,技术线主要关注非功能性需求。非功能性需求只是一站式的东西。有了这个基础,任何需求都很清楚。你什么都没有。 “困难”,或者如果你去上学,你可以用不同的方式来做。

我最近一直在采访一些候选人并担任建筑师。我对这个过程深感不安。找到一名程序员来开发和招聘一名建筑师并不困难。这很难......呃,我认为我们需要考虑一下,如果我采用技术路线,我缺少什么,如何补充它,还有什么我应该注意?

科学技术是第一生产力。所谓的六西格玛管理方法论是六西格玛的第一个。 “技术人才是当前企业的第一生产力。”让我们看看哪些公司可以发财。阿里,淘宝,支付宝,GOOGLE,腾讯,互联网,高科技等等,以及其他一些公司,他们依靠的不是业务逻辑,而是真正的技术,这足以解释问题,所以如果你想走技术路线,请注意更多细节和更低层次的东西。

架构师需要学习的技术

以下六大知识体系是我从业多年总结出来的经验,都是当前最主流的技术。想学习这些技术的朋友可以加我的架构群  : 697579751 。里面会分享这些技术知识点供大家学习免费下载 

一、阅读源码

二、分布式架构

三、微服务架构

四、并发编程

五、性能优化

六、项目实战

总结:

以上就是我总结出的关于架构师需要掌握学习的知识体系,,希望以上的内容可以帮助到正在默默艰辛,遇到瓶疾且不知道怎么办的Java程序员们,我能帮你的只有这么多了

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏数据猿

普元信息政务大数据咨询顾问夏佳斌:数据资源体系的核心——资源定义、运营机制和支撑平台

12月1日下午,由上海大数据联盟、数据猿主办的第20期魔方大数据在上海宝华万豪酒店成功举办。本期魔方大数据以“政务大数据”为主题,邀请了技术方和产业方大咖共聚一...

29311
来自专栏云计算D1net

为何开发商搞不定SaaS?

软件即服务(SaaS)正在迅速成为销售软件的主流方式。像谷歌和微软这些大公司之所以专注于SaaS模式,是由于它从许多方面开辟了新的收入来源。 过去几年,许多大宗...

4156
来自专栏张俊红

运营--获取用户的八大方法

今天分享的是《增长黑客》这本书,全书主要分获取用户、活跃用户、留存用户、增加收入、病毒传播五个部分,是一个产品完整的生命周期所包含的过程。本篇主要写用户获取。 ...

3178
来自专栏Java架构

阿里架构师谈谈架构和如何成为一个Java架构师

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

3769
来自专栏程序你好

苹果世界开发者大会上介绍了AI人工智能功能的iPhone手机

932
来自专栏麦应用专栏

麦应用小程序 | App可直接打开小程序!微信到底想要干嘛?

未来,用户可以从APP跳转至某一微信小程序的指定页面,完成服务以后再跳转回原APP,多场景使用更加方便。

57814
来自专栏云计算D1net

说说云计算时代,运维人员会踩到哪些坑?

近期在ChinaUnix论坛有一场讨论,标题是——云计算时代:运维人员会踩到哪些坑? 整个讨论过程非常活跃,大概有50个答复,运维派这就给大家整理了一些讨论的优...

4534
来自专栏腾讯大讲堂的专栏

浅谈用户体验的可视化

记得初学设计时就常常听到这么句话,设计不单单是做出一个极具美感的躯壳,更重要的是它背后的实用价值——所谓设计的实用性。而在互联网里,这种实用性更多的体现在用户体...

1916
来自专栏云计算D1net

想开发云应用程序?先选择合适的PaaS!

从一个方面来分析,开发云应用程序的平台即服务模式有两种:一种是专用模式,托管在本地或私有云中;另一种是公共模式,由第三方提供商来托管,并采用订阅支付模式。那只是...

4076
来自专栏人称T客

云存储详解,企业数据该如何上云?

2465

扫码关注云+社区