咱们来看看软件架构的通常定义:程序员
程序和计算系统软件体系结构是指系统的一个或多个结构。 该结构包括软件的构建,构建的外部可见属性以及它们之间的相互关系。数据库
该体系结构不是可操做的软件。 具体来讲,这是一个表达式,它使软件工程师可以:编程
我为何说软件架构很是重要? 直接编程直接开发,请多看看如下几点?:安全
这个问题可能会被你们问到,包括一些IT公司也在问,这个问题的答案可能不只仅是简单的句子或者定义能够回答,咱们来看下面几个图片的例子:架构
这是什么东西? 乐高玩具,乐高玩具,咱们都玩过吗?
它能够做为一个完整的模型出售给您,您也能够将其所有分解并自由地将其从一个模型从新组装到另外一个模型,由于每一个Lego模块都有一个水平和坚决方向的标准。 界面,这就是咱们常说的高内聚和低耦合。并发
咱们来看看上面的图片。
一个是清代的八封信,另外一个是孔乙己。
记住四种写做方式?
而后,你专门研究了回写单词的四种方式,但你有没有想过我能够将单词转化为单词? 这是一个很好的折扣吗?框架
为何M1A2和Apache直升机中的A8处理器或最新奔腾处理器没有? 实用,测试是最好的!异步
咱们谈论软件架构。 该架构的最终体现是一款软件。 什么是成功的架构? 什么是成功的软件?模块化
咱们看上边的图片,这是美国的阿里巴巴级宙斯盾驱逐舰。 右边是印度的“德里级”驱逐舰库里盾,由美国安吉斯本身设计和建造。
两艘军舰有什么区别?测试
一种是模块化设计,总体线条流畅,模块可随意更换。
一种是拼凑而成的,线条被暴露出来,而且甲板上充满了各类电子设备和天线。 一旦被损坏,维护起来很是困难。
固然,咱们这里主要讲JAVA。 因此,做为一名JAVA和J2EE架构师,须要什么样的技能才能达到架构师的水平?
上面的图片,咱们这样看,它分为三部分:
说了这么多架构以后,咱们来谈谈架构师。
若是您看到它,架构师的首要责任是集中于:非功能需求,即非功能需求。
许多人仍然不清楚功能需求与非功能需求之间的界限。 这里有两个例子来讲明:
页面查询时,这个查询与哪一个数据库表关联,由于个人业务是这样的一个需求,在界面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,腾讯,互联网,高科技等等,以及其余一些公司,他们依靠的不是业务逻辑,而是真正的技术,这足以解释问题,因此若是你想走技术路线,请注意更多细节和更低层次的东西。