如何成为一个技术全面的架构师
架构师是一个充满挑战的职业,需要关注很多维度和技术。只专注于单一领域的架构师并不是优秀的架构师。Pat Kua(原ThoughtWorks咨询师)是一位经验丰富的技术人员,他在本文中指出一个好的架构师需要是技术全面的架构师,并探讨了成为一个技术全面的架构师所必须具备的六个方面。
架构师是一个充满挑战的职业,需要关注很多维度和技术。只专注于单一领域的架构师并不是优秀的架构师。Pat Kua(原ThoughtWorks咨询师)是一位经验丰富的技术人员,他在本文中指出一个好的架构师需要是技术全面的架构师,并探讨了成为一个技术全面的架构师所必须具备的六个方面。
炸出的问题有:我们这个系统的边界是什么?我们系统有哪几部分组成?各模块之间怎么通讯?选择什么样的基础技术?为什么要这样选择?技术方案未来会遭遇那些坑?从技术角度这个应用将来如何持续扩展功能?等等一系列的问题追随而来的确像是核弹引爆后的地狱一般让人感觉一切多完蛋了。
普通程序员如何定义架构?架构师又是如何定义架构?这位老司机一直用最简单的方式对架构进行定义:架构是一种用计算机解决问题的综合能力,与头衔无关。
不,实际上应该在开发后期才开始做这些事情——在你掌握了更多信息之后。
哀,当架构师草率地决定要使用一个数据库,后来却发现使用文件系统效率更高。
哀,当架构师草率的决定使用一个Web服务器,后来却发现团队需要的不过是一个socket借口。
哀,当架构师草率地决定使用一个框架,后来却发现框架提供的功能是团队不需要的,反而给团队带来了诸多约束。
幸,当架构师在掌握了足够多的信息后才决定该用什么数据库、Web服务器或框架。
幸,当架构师为团队鉴别出运行缓慢、耗费资源的IO设备和框架,这样他们就可以构建飞速运行的轻量级测试环境。
幸,当架构师把注意力放在那些真正重要的事情上,并把那些不重要的事情放在一边。
昨天参加了了 TopGeek 在浦东软件园举行的架构师大会,与新老朋友讨论了一些关于架构师的话题。其中不少正是我近来一直在思考的问题,索性把我的观点写出来,与大家共同探讨。
工作了挺久,发现有个挺有意思的现象,从程序员、高级程序员,到现在挂着架构师、专家之类的头衔,伴随着技术和能力的提高,想不明白的事情反而越来越多了。这些疑问有些来自于跟小伙伴交流,有些是我的自问自答,有些到现在也想不清楚,这篇文章就来写一写这些问题。
本文是一篇模仿问答的小故事,作者用幽默的风格简单分析了架构师要做的工作: 我想要成为一名软件架构师。
要想交付最出色的成果,每位开发人员都应当身兼架构师与问题解决者这两大角色。
这篇文章的分享者杨波具有超过 10 年的互联网分布式系统研发和架构经验,曾先后就职于 eBay 中国研发中心(eBay CDC)、携程、唯品会(VIPShop)等。