美国上市公司,专注Java培训21年

如何成为一名架构师?


如何成为一名架构师?成为一名架构师的薪资和待遇都是不错的,很多Java程序员都希望成为一名架构师那么怎么才能成为一名架构师呢?首先我们来看看架构师的定义。

架构的定义

先来看看软件架构的普遍定义吧。

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

体系结构并非可运行软件。确切的说,它是一种表达,使软件工程师能够:

分析设计在满足规定需求方面的有效性。

在设计变更相对容易的阶段,考虑体系结构可能的选择方案。

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

软件架构的重要性

为什么说一个软件架构是很重要的呢?直接编程直接开发,多EASY?请看下面几点:

软件架构能够满足系统的品质

架构设计使受益人达成一致的目标

架构设计能够支持计划编制过程

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

架构设计能够有效地管理复杂性

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

架构设计能够降低维护费用

架构设计能够支持冲突分析

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

我们谈的是软件架构,架构的最终体现是一个软件,那么什么是成功的架构什么是成功的软件呢?

架构之美

架构,架构,到底什么是架构?我以前上大学时有一个70多岁的老教授,他上课每讲20分钟左右,需要2个同学”架“着去上一次WC,我们的架构师当然不是指这种”架构师“。那么我们一直说的架构,到底它是一个什么样的东西呢?怎么样又可以做出一个完美的架构呢?

架构就像是迷踪拳

动作轻灵敏捷,灵活多变,它其实违背一切传统拳法,因此可以克敌制胜。架构就像是独孤九剑,破剑式、破枪式、无招胜有招,它发源于传统武术,又扩展了传统的武术

架构就像是一件艺术珍品,有时一个看似简单的架构往往却是一件艺术珍品。

大家知道这幅画吗?他是挪威画家蒙克的一幅作品叫”呐喊“,蒙克这个人是一个疯子,这幅画很简单,就是随手涂鸦一般,但是大家可知道这幅画值多少钱吗?2012年该画在纽约苏富比拍卖上以1.19亿美元被拍卖。

架构的意境

一个好的架构不应该受限于框架,受限于语言,受限于技术,受限于各种条条框框,它是一种意境。

JAVA通用领域的相关技术

当然,我们这边主要说的是JAVA,那么作为一名学习JAVA、J2EE的架构师来说,要具备一些什么样的技能才能达到架构师的水平呢?

顶部,是我们需要掌握的一些技术领域的知识,它可以使我们应对通用领域如电商、企业OA、银行保险金融等领域的一些解决方案和设计

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

底部,底部呢?它是我们的基础,为铺设我们通向中间或者更上层的一个基石,这也是为什么大家有时发觉我的博客和其它博客有不一样的地方,不仅仅有编程还有”中间“的这一层即数据库、性能、安全、框架搭建这些东西混合在里面的原因,因为我不希望大家通过阅读完了我的博客还只是停留在一个码农、码工、螺丝钉的这种水平上。

功能性需求

页面查询,这个查询是关联哪些哪些数据库表,因为我的业务是有这样这样的需求,在界面A里点了一个按钮,然后弹出窗口B,在窗口B里要显示什么样的数据,最后界面A里点完后,当我打开界面B时哪块数据已经随之发生了更改。

非功能性需求

我们的系统查询速度小于2S,是否考虑使用异步查询、使用队队列机制,系统要求可以容纳1000个并发,这个系统要可以做成插件式的,要可以横向扩展,要符合XXX协议,这个Webservice要做成SOAP HEAD内带有BASIC认证,还是做成符合NTLM的认证的,还是使用令牌环认证的?这个下拉框要做成即可输入又可以下拉的,这块认证要访问LDAP?

很多以业务为主的项目型公司认为架构师就是trouble shooting(即排错、查错的意思,就是有错误、出问题了再找架构师),把架构师当成了fireman(救火员),可是你不自己想想为什么出了问题架构师过来2秒、2分钟或者1天半可以解决你们1个月几十人天天到零晨也解决不了的问题呢?嗯?

解决了说这是人家应该的,解决不了,说人家架构师不合格呢?是不是我们应该从这个软件最早的框架上、架构上去发现一下问题呢?

架构师啊,这不是一个trouble shooting的问题啊。

在节前我也进行了一些面试,出于纯技术角度来说,即走架构师,TECH LEADER这样的路线的侯选人。我还是发觉了不少的问题这也是中国的一个通病:即我们的程序员,很多时候不是在做程序,而更多时候是在做业务逻辑,成了一个某一领域的业务人员了。

当然,我们的程序员在其职业生涯的前3年、4年都是做某一块领域的代码的,这个是没有问题的,但是请一定一定记住,我们是编码,是IT,是程序员,不是“业务人员”!!!

什么是IT?什么是程序员?什么是Tech Leader?什么是架构师?这个问题大家有必要好好的去问一下自己,去好好的想一下,架构师的要求是什么?

我这边随便说一些东西:相信对一些要走技术道路的同学们是有帮助的:

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

如果你是要走技术路线,一定一定请记得“数据库+ASP/JSP”不是技术,它只比表单制作,报表制作人员稍微强了那么一点点。

请一定记住,技术路线关注的是非功能性需求,非功能性需求啊,就是一种一通百通的东西,有了这块底蕴,任何需求和你说清了,对你来说是没有任何“难度”的,或者你再去学,是可以举一反三的啊。

最近一直面试一些侯选人,做架构师的,在此过程中我对此深有感受,找一个程序员开发不难,招一个架构师,难。。。唉,我觉得大家有必要要考虑一下,如果我走技术路线,我缺什么,我怎么补,还要关注些什么?

科技是第一生产力,管理方法论中的所谓的六SIGMA即六西格玛的第一条就是“技术人才是当下企业的第一生产力”,大家看看能够发财的是哪些公司?阿里,淘宝,支付宝,GOOGLE, 通讯,互联网,高科技等等等一些企业,他们靠的不是业务逻辑,而是真正的技术,这足以说明问题了,所以大家如果要走技术道路,请多关注一下更细节,更底层的东西吧。

不断的需要自我激励

成功的唯一方法便是,承认现实,超越现实,鼓起勇气并善用它。

学会平静的对待生活中的不完美之处,适应自己的情绪,了解如何让它们自然宣泄出去

学习如何把不完美的地方转换成我们的优势,激发我们的创造力

自我激励,不管外部条件是否有激励性,找到一种激发最佳状态的情绪,学习如何在我们的意识中制造一些波动来激励我们前进

免责声明:内容来源于公开网络若涉及侵权联系尽快删除!


【免责声明】本文部分系转载,转载目的在于传递更多信息,并不代表本网赞同其观点和对其真实性负责,如涉及作品内容、版权和其它问题,请在30日内与我们联系,我们会予以重改或删除相关文章,以保证您的权益!

Java开发高端课程免费试学

大咖讲师+项目实战全面提升你的职场竞争力

  • 海量实战教程
  • 1V1答疑解惑
  • 行业动态分析
  • 大神学习路径图

相关推荐

更多
  • Java高级工程师岗位要求
    Java高级工程师岗位要求
    Java高级工程师岗位要求,Java高级工程师是企业中非常关键的技术岗位,主要负责软件的设计、开发、测试和维护工作。具体岗位要求可能因企业的规模、行业、产品和技术栈的不同而有所差异,但通常包括以下几个方面: 详情>>

    2024-03-05

  • 面试Java开发工程师一般问什么问题?
    面试Java开发工程师一般问什么问题?
    面试Java开发工程师一般问什么问题?面试Java开发工程师时,面试官通常会从多个角度评估应聘者的技能和经验,包括基础知识、编程能力、项目经验、问题解决能力、沟通能力以及对Java技术的理解。以下是一些常见的面试问题: 详情>>

    2024-02-29

  • 如何用Java开发游戏?
    如何用Java开发游戏?
    如何用Java开发游戏?使用Java开发游戏可以分为几个步骤,下面是一些基础的指导: 详情>>

    2024-02-29

  • Java编程的工作怎么样?
    Java编程的工作怎么样?
    Java编程的工作怎么样?Java编程的工作在软件开发领域是非常广泛和需求的。以下是关于Java编程工作的一些信息: 详情>>

    2024-02-23

  • Java开班时间

    收起