问答文章1 问答文章501 问答文章1001 问答文章1501 问答文章2001 问答文章2501 问答文章3001 问答文章3501 问答文章4001 问答文章4501 问答文章5001 问答文章5501 问答文章6001 问答文章6501 问答文章7001 问答文章7501 问答文章8001 问答文章8501 问答文章9001 问答文章9501

软件架构师需要掌握哪些知识?

发布网友 发布时间:2022-04-23 18:49

我来回答

1个回答

好二三四 时间:2022-09-03 00:47

在技术全面、成熟练达、洞察力强、经验丰富,具备在缺乏完整信息、众多问题交织一团、模糊和矛盾的情况下,软件架构师能迅速抓住问题要害,并做出合理的关键决定的能力具备战略性和前瞻性思维能力,善于把握全局,能够在更高抽象级别上进行思考。主要包括如下:

1、对项目开发涉及的所有问题领域都有经验。

2、具备领导素质,以在各小组之间推进技术工作,并在项目压力下做出牢靠的关键决策;

3、拥有优秀的沟通能力,用以进行说服、鼓励和指导等活动,并赢得项目成员的信任;

4、以目标导向和主动的方式来不带任何感情色彩地关注项目结果,构架师应当是项目背后的技术推动力,而非构想者或梦想家;

5、精通构架设计的理论、实践和工具,并掌握多种参考构架、主要的可重用构架机制和模式;

6、具备系统设计员的所有技能,但涉及面更广、抽象级别更高; 活动确定用例或需求的优先级、进行构架分析、创建构架的概念验证原型确定设计议等。

热心网友 时间:2023-07-13 18:59

架构师首先必须具有丰富的开发经验,是个技术主管。因为他必须清楚什么是可以实现的,实现的方式有哪些,相应的难度怎么样,实现出来的系统面对需求变化的适应性等一系列指标。另外,需要对面向过程、面向对象、面向服务等设计理念有深刻的理解,可以快速的察觉出实现中的问题并提出相应的改进(重构)方案(也就是通常说的反模式)。这些都需要长期的开发实践才能真正的体会到,单从书本上很难领会到,就算当时理解了也不一定能融会到实践中去。在技术能力上,软件架构师最重要也是最需要掌握的知识是构件通信机制方面的知识,包括进程内通信(对象访问、函数调用、数据交换、线程同步等)以及进程外(包括跨计算机)的通信(如RMI、DCOM、Web Service)。在WEB应用大行其道的今天,开发者往往对服务器间的通信关注的比较多,而对进程内的通信较少关注。进程外跨机器通信是构建分布式应用的基石,它是架构设计中的鸟瞰视图;而进程内的通信是模块实现的骨架,它是基石的基石。如果具体到一个基于.Net企业级架构设计,首先需要的是语言级别的认识,包括.NET的CLR、继承特性、委托和事件处理等。然后是常用解决方案的认识,包括ASP.NET Web Service、.NET Remoting、企业服务组件等。总之,丰富的开发实践经验有助于避免架构师纸上谈兵式的高来高去,给代码编写人员带来实实在在的可行性。其次,具有足够的行业业务知识和商业头脑也是很重要的。行业业务知识的足够把握可以给架构师更多的拥抱变化的能力,可以在系统设计的时候留出一些扩展的余地来适应可能来临的需求变化。有经验的设计人员可能都碰到过这样的事,一厢情愿的保留接口在需求变化中的命中率非常低。也就是说,在系统设计之初为扩展性留下来的系统接口没能在需求变化的洪流中发挥真正的作用,因为需求的变化并没有按照预想的方向进行,到最后还是不得不为变化的业务重新设计系统。这就是因为对业务知识的理解和对市场或者商业的判断没有达到一个实用的、可以为架构扩展性服务的水平。再次,架构设计师对人的关注必须提升到架构设计之初来纳入考虑的范围,包括沟通以及对人员素质的判断。软件过程是团队协作共同构建系统的过程,沟通能力是将整个过程中多条开发线粘合在一起的胶水。大家都应该碰到过事后说“原来是这样啊,我不知道啊”或者某个开发人员突然高声呼喊“为什么这里的数据没有了”之类的。沟通的目的就是尽量避免多条开发线的混乱,让系统构建过程可以有条理的高效进行。另外,对人的关注还表现在对团队成员的素质判断上,比如哪些开发人员对哪些技术更熟悉,或者哪些开发人员容易拖进度等。只有合理的使用人力资源,让合适的人做合适的事情才能让整个软件过程更加高效。架构师应时刻注意新软件设计和开发方面的发展情况,并不断探索更有效的新方法、开发语言、设计模式和开发平台不断很快地升级,软件架构师需要吸收这些新技术新知识,并将它们用于软件系统开发工作中。但对新技术的探索应该在一个理性的范围内进行,不能盲目的跟风。解决方案提供商永远都希望你能使用它提供的最新技术,而且它们在推广自己的解决方案的时候往往是以自己的产品为中心,容易给人错觉。比如数据库,往往让人觉得它什么都能做,只要有了它其它什么都不重要了。但事实上并不是如此,对于小型应用可以将许多业务逻辑用script的方式放入数据库中,但很少看到大型应用采用这样的做法。对于新东西需要以一种比较的观点来判断,包括横向的比较和纵向的比较,最后得出一些性能、可移植性以及可升级等指标。另外,新入行的开发人员往往关心新技术动向而忽略了技术的历史,而从DOS时代一路杀过来的开发者就对现在的技术体系有较全面的把握。
声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com
个人账户养老金预测公式:现有5万元,缴费20年,能领多少钱? 临沂比较有名的男装品牌 呼伦贝尔市悦动网络科技有限公司怎么样? 呼伦贝尔中汇实业有限公司怎么样? 呼伦贝尔油玉不绝电子商务有限公司怎么样? 如何避免wps卡顿? 属鼠的男人找对象是属什么,属鼠的人和什么属相合 96年鼠的姻缘在哪年 属相相合年份运势提升 2024属鼠找对象属什么最佳 黑客攻击网站能报案吗 架构师都需要学习什么? 架构师需要学习哪些知识呢? 要想成为前端架构师,应该学习哪些技术? 怎样更改电脑的IP地址? 请问服务器IP地址能修改?怎么修改 钉钉一个文件需要下载打印签名,签完后如何回传? 有那么多羊绒做羊绒衫吗?知乎 30羊绒和50羊绒差别大么 如何选择辨别羊绒线? 单k互k是什么意思? 怎样区别羊绒跟羊毛? KBTC是正宗的主流币吗? 羊绒大衣为什么比羊毛贵那么多知乎 NZADD的K区块链支付有什么特点? DIGICCY BANKING 是什么意思? 怎么辨认羊绒真假 网上购物快递K单是什么意思啊? 怎样区别纯羊绒衫和添加了羊毛的羊绒衫? 币圈t是什么单位 k特币与摩哈币对比,那个是真的加密数字货币 想成为javaEE架构师,前期需要学习那些内容? ltr是啥意思? 有知道立创商城中的 专用传感器/LSM6DSLTR 编带元器件怎么样吗?了解过吗? 打印机设置中,A4纸张和LTR纸张有什么不同? 短散在元件的相关元件 佳能MP288的主要性能 repeatmasker能查基因组吗 股票短线看15分钟还是30分钟 怎么做隧道照明设计? 迈锐宝用什么型号的火花塞 股票做短线是什么意思? 佳能MP236的详细参数 电路板上的 TR 表示什么类型的电子元器件? 电路图中TR符号代表什么元件 打印机显示检查打印模式,没有合适的纸张,请装载(LTR) 炒股短线一般持股多久 震旦打印机警告 没有适合的纸张 装载纸张(LTR) 股票短线交易有什么技巧 短线操作技巧:股票短线怎么操作 醋酸真丝可以蒸汽熨烫吗