成为一名合格的架构师需要具备哪些条件

架构师这个名称听起来高大上,其实在一个开发团队中,架构师也的确起到了“定海神针”的作用。为什么这么讲呢?架构师就像建筑设计师一样,从大的方向来给软件定一个基调。软件开发中碰到的很多问题,归咎起来都可能和当初的架构设计有关,所以架构师要想不成为众矢之的,也不是容易的事情。

各个行业甚至同一行业不同主攻方向的team都需要不同的架构师,比如做SOA的很多架构师实际上的职责是向用户推销自己的产品,即使有时采用其他方案更适合企业的情况,出于宣传本公司产品的需要,也要贬低一番。当然利益对架构的影响不可避免,其他行业也存在类似的情况。但是SOA的架构师更多做的是把自己公司的产品套用在客户身上。当架构师是在设计自己公司的产品时,相对来说会客观一些,从功能,性能,稳定性,扩展性,市场接受程度和成本等几方面来权衡。

因为我是在做手机软件方面的工作,对系统架构师的想当然的要求也只能局限在这个领域。由于平台非常庞大,系统架构师的职责显得尤为重要,可能也是因为这个原因,公司里在不同层面上都设立了系统架构师,连某个Component team都有自己的架构师。当然小team的架构师的职责与整个平台的架构师的职责不可同日而语。

如果一个架构师负责的仅仅是一个小的模块,或者是一个小的应用程序,那么他所能施展的空间不太多,包括操作系统,硬件,驱动,其他模块的接口等都是已经确定的了,甚至自己的模块需要哪些接口暴露给别人也都是定义好的了,那么这个架构师该做些什么呢?从别的程序或者系统来看,这个应用程序至少要具备以下几个条件才能算是合格的:

1、完成此应用程序的基本功能,如果这是一个通信程序客户端,那么它至少应该完成客户端所具有的功能,通过所有的测试用例。不同的功能是需要不同的组成架构的,从降低复杂度和提高可维护性的角度来考虑对系统进行解构,往往是最直观的做法。

2、健壮性,这个程序不应该轻易的crash,如果是界面程序,在面对异常情况的时候采取柔和的方式来通知用户。如果是被别的程序所使用的库,保持健壮性更是非常重要。作为架构师,应该采取一定的措施来保证模块的正确工作,至少应该保证在出错的情况下能够比较容易的区分是否是本模块造成的。也许有人说这是design和program的事情,但是架构师如果不在纲领上制定策略和要求,实现上也是很难操作的。

3、低的资源消耗。我碰到很多软件架构,在架构文档里看时非常华丽,用了很多模式,一个普通的应用要拆分成多个进程,再用MVC分离各个模块,加上一大堆监听器适配器过滤器等,可以说模式是能带来一些好处的,但是往往代价是更多的资源消耗,内存占的多了,性能下降了,逻辑变得更复杂了。作为架构师一定要权衡,而不是为了表达自己的知识能力。最好的情况是,能够给出在各种usecase下模块或应用对资源的消耗程度,比如会占用多少内存,某个接口需要多长时间等。因为现在的接口定义一般都只是定义使用方式,包括函数名和参数列表,至于使用时的代价由于没有说明,往往成为模块使用者和提供者之间争论的焦点。

从程序员的角度来讲,可维护性往往更为重要,因为维护的阶段比开发的阶段更长,面对的压力也更大,而且由于各种各样的原因,经常要一个新手来维护这个程序,如何让新手很容易的理解它并且马上具备解决问题的能力,对架构师来说也不是一件可以推卸的责任,采用常见的设计模式,制定或采用通用的代码风格,完善相关的文档等等,都是好的practice。

对于那些高层次的架构师来说,因为面对的是由很多模块应用组成的系统,他所要处理的实际上如何协调各模块关系,保证整个系统的功能性能和稳定性,至少他应该了解各个应用所具备的功能,基于此来制定各个模块之间的接口。在必要的时候,要去掉那些作用不大但影响整个系统性能和稳定性的模块,对各个模块的可选功能也要做一定的限制,不能允许其无限制的膨胀。架构师也往往面临着选择既有实现的困境,采用第三方或者开源实现时,一定要和已有的实现进行全方位的比较,在很难做出决定时宁可保持不变,或者采用小的实验步骤来获取真实的数据。

©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 204,590评论 6 478
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 86,808评论 2 381
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 151,151评论 0 337
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 54,779评论 1 277
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 63,773评论 5 367
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 48,656评论 1 281
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 38,022评论 3 398
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 36,678评论 0 258
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 41,038评论 1 299
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 35,659评论 2 321
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 37,756评论 1 330
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 33,411评论 4 321
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 39,005评论 3 307
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 29,973评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 31,203评论 1 260
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 45,053评论 2 350
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 42,495评论 2 343

推荐阅读更多精彩内容

  • Android 自定义View的各种姿势1 Activity的显示之ViewRootImpl详解 Activity...
    passiontim阅读 171,438评论 25 707
  • Spring Cloud为开发人员提供了快速构建分布式系统中一些常见模式的工具(例如配置管理,服务发现,断路器,智...
    卡卡罗2017阅读 134,596评论 18 139
  • Scalers点评:成长会的小伙伴有从事架构师岗位的,最近问了我一些关于架构师成长方面的问题。专业的事情请专业的人...
    Scalers阅读 7,423评论 9 131
  • 十年风雨兼程,十年拼搏努力。 流金岁月见证,天元开拓创新的坚实足迹。 十年时光荏苒,天元的名字悄然彰显。 胸怀博大...
    王思华阅读 254评论 0 0
  • (๑⁼̴̀д⁼̴́๑)ドヤッ 直接上代码,界面一感觉界面较多控件,加上布局感觉要整好多。要整体...
    海泉阅读 295评论 0 1