欢迎来到天天文库
浏览记录
ID:43658257
大小:208.88 KB
页数:23页
时间:2019-10-12
《系统架构设计师高级复习精华绝对精品》由会员上传分享,免费在线阅读,更多相关内容在工程资料-天天文库。
1、2017系统架构:系统架构师是怎样炼成的坦率的讲,除了少数对开发程序极其热爱并愿意为之奋斗终身的编程者來说,对于大多数开发人员,写代码只是他们未来获得职业提升的一个必不可少的积累阶段,在做开发的时间里,他们会积极学习各种知识,经验,培养自己的商业头脑,包括扩展白己各方面的资源,这些积累会为他们未来成为管理者或创业打下牢固的基础。成为架构设计师是广大开发者职业发展道路之一,架构师究竟是个什么样的职业?需要具备什么基本能力?如何才能成为一个优秀的架构设计师以及架构设计师需要关注哪些内容?针对有关问题,
2、本期我们为您釆访了(微软认证专家,系统分析员,希赛顾问团顾问,中国计算机学会会员)张友邦,他会就相关问题与大家分亨他的看法。“在我工作的六年多时间里,除了第一年是纯粹编码以外,其余时间都在做和架构设计有关的工作,当然也还一直在写各种各样的代码。”张友邦认为架构设计可能看起来很神秘,新入门或没有架构设计经验的程序员刚开始的时候会有种不知所措的感觉,但其实架构设计是件很容易的事,它只是软件系统开发中的一个环节而已,整个软件系统的开发和维护以及变更还涉及到很多事情,包括技术、团队、沟通、市场、环境等等。
3、同时,张友邦表示,虽然架构设计是件容易的事情,但也不是大多数没有架构设计经验的程序员想象屮的画画框图那么简单。把儿台服务器一摆,每一台服务器运行什么软件分配好,然后用网络连接起来,似乎每个企业级应用都是如此简间单单的几步。但现实生活中的软件系统实实在在可以用复杂大系统來形容,从规划、开发、维护和变更涉及到许许多多的人和事。架构设计就是要在规划阶段都把后面的事情尽量把握进來,要为稳定性努力,还要为町维护性、扩扩展性以及诸多的性能指标而思前想后。除了技术上的考虑,还要考虑人的因素,包括人员的组织、软件
4、过程的组织、团队的协作和沟通等。另外,架构设计还需要方法论的指导。张友邦强调,这些方法论的思路包括,至上而下的分析,关注点分离,横向/纵向模块划分等。有时候觉得架构设计决策就像是浏览GoogleEarth,实际上反映的是一种自上而下的决策过程。对问题的分解是软件思维的基本素质,可以有横向分解、纵向分解以及两者的结合。能不能有效快速准确的分解问题,是软件开发人员需要首先训练的项目。另外,架构设计屮图形化的工具非常有用,它能把系统的结构和运作机制以图形化的方式表达出来。也正因为这样才有了架构设计就是画
5、框图的误会。再者,架构设计是一个工程性质的工作,对当事人的实际从业经验耍求较高。只有对市场上的各种技术有较全面的了解Z后才有可能设计出一个尽可能满足各种设计约束的架构。在谈到架构师需要具备的能力上,张友邦认为架构师首先必须具有丰富的开发经验,是个技术主管。因为他必须清楚什么是可以实现的,实现的方式有哪些,相应的难度怎么样,实现出来的系统面对需求变化的适应性等一系列指标。另外,需要对而向过程、面向对象、而向服务等设计理念有深刻的理解,可以快速的察觉出实现屮的问题并提出相应的改进(重构)方案(也就是通
6、常说的反模式)。这些都需要长期的开发实践才能真正的体会到,单从书本上很难领会到,就算当时理解了也不一定能融会到实践屮去。在技术能力上,软件架构师最重要也是最需要掌握的知识是构件通信机制方面的知识,包插进程内通信(对象访问、两数调用、数据交换、线程同步等)以及进程外(包括跨计算机)的通信(如RMI、DCOM、WebService)0在WEB应用大行其道的今天,开发者往往对服务器间的通信关注的比较多,而对进程内的通信较少关注。进程外跨机器通信是构建分布式应用的基石,它是架构设计中的鸟瞰视图;而进程内的
7、通信是模块实现的骨架,它是基石的基石。如果具体到一个基于.Net企业级架构设计,首先需要的是语言级別的认识,包括.NET的CLR、继承特性、委托和事件处理等。然后是常用解决方案的认识,包括ASP.NETWebService、.NETRemoving、企业服务组件等。总之,丰富的开发实践经验有助于避免架构师纸上谈兵式的高来髙去,给代码编写人员带来实实在在的可行性。其次,具有足够的行业业务知识和商业头脑也是很重要的。行业业务知识的足够把握可以给架构师更多的拥抱变化的能力,可以在系统设计的时候留出一些扩
8、展的余地來适应可能來临的需求变化。有经验的设计人员可能都碰到过这样的事,一厢情愿的保留接口在需求变化屮的命屮率非常低。也就是说,在系统设计Z初为扩展性留下来的系统接口没能在需求变化的洪流屮发挥真正的作用,因为需求的变化并没有按照预想的方向进行,到最后还是不得不为变化的业务重新设计系统。这就是因为对业务知识的理解和对市场或者商业的判断没有达到一个实用的、可以为架构扩展性服务的水平。再次,张友邦提到,架构设计师对人的关注必须提升到架构设计Z初来纳入考虑的范围,包括沟通以及对人员素质的判
此文档下载收益归作者所有