高手问答第 234 期 —— 架构师修炼之道

xplanet 发布于 10/13 23:42
阅读 39K+
收藏 56

众所周知,出色的软件架构是开发优秀软件的基础,而糟糕的架构注定导致项目失败。正因为如此,优秀的软件架构师在人才市场上往往供不应求。每一位程序员都希望成长为架构师,那么一名合格的架构师究竟要掌握哪些知识,具备哪些能力,又要承担哪些责任呢?今天我们就来聊聊这个话题。

OSCHINA 本期高手问答(10 月 14 日 - 10 月 20 日)将以「软件架构师」作为话题展开探讨,可讨论的内容包括但不限于以下几个方面:

  • 架构师的工作内容
  • 架构师应该具备什么样的思维
  • 敏捷开发中的架构设计
  • 如何挖掘关键架构需求
  • 设计思维原则

如有其他相关的问题,也欢迎提问。本次做客高手问答的嘉宾是畅销书《架构师修炼之道》的译者 @马永辉  老师。

嘉宾简介

马永辉,《架构师修炼之道》译者。浙江大学、卡内基梅隆大学校友,现于美国硅谷工作,担任某上市公司产品总监。有多年的软件产品管理经验,熟悉软件开发和架构设计流程。

为了鼓励踊跃提问,华中科技大学出版社会在问答结束后从提问者中抽取 5 名幸运网友赠予《架构师修炼之道》一书。

购书地址:https://dwz.cn/dGsVtGP2

OSChina 高手问答一贯的风格,不欢迎任何与主题无关的讨论和喷子。

下面欢迎大家向 @马永辉  老师积极提问,直接回帖提问即可。

加载中
1
xplanet
xplanet

高手问答第 234 期 —— 架构师修炼之道
@北京老爷们儿 @hyuan  @建安七子  @sunny小喵 @turanorbob
恭喜以上五位网友分别获得《架构师修炼之道》图书一本
请私信 @xplanet   告知快递信息(格式:姓名+电话+地址)

 
hyuan
hyuan
第一次中奖,现在才看到,已私信
sunny小喵
sunny小喵
非常感谢,已发送私信。
1
v若水
v若水

@马永辉 您好,我想请教几个问题

1.架构师的定义是啥?现在晚上无论是培训机构还算文章,经常看到谁谁谁是架构师,这个架构师的含金量咋看?

2.架构师日常的工作都是什么?

3.架构师是对各种业务特别精通?还算精通各种的技术?但是现在技术太多了,前端、后端、大数据、人工智能、不通过语言,想请教一下您的学习方法。

4.经常看到网上写敏捷已死。您对敏捷开发的看法是什么?

5.架构师应该具备什么样的思维?程序员应该具备什么样的能力才能不被淘汰?

6.一个新的项目对于架构师而言需要做到什么地步才能保证项目的可靠性开发以及未来的不断改进和维护?

感谢您的抽时间回答,谢谢

jjwjiejue
jjwjiejue
回复 @马永辉 : 这个点相当受教
v若水
v若水
回复 @马永辉 : 感谢你得回答,有一定收获,我仔细品味一下。
v若水
v若水
回复 @马永辉 : 感谢回答,我看看这本书
v若水
v若水
回复 @马永辉 : 感谢回答,细节这个已经体会过多次了。
马永辉
马永辉
#6 一句话:掌握架构师思维。实际情况下其实错综复杂,每一个决策都非常重要。要纵观全局,也不要放过任何关键细节。当年中国造两弹,总工程师亲自“品尝”混凝土,发现工人违规用了盐碱水(因为盐碱水获取成本最低)。假如有人问总工程师应该做到什么程度,我想谁也不会列出这个点。但人家就是做到了,这就是人家的过人之处。
下一页
0
lgscofield
lgscofield
一直犹豫,到底啥是架构师,架构师需要写代码吗,架构师在哪个阶段参与什么样的事情,达到什么阶段才能做架构师,架构师整个系统层面需要思考哪些事情,架构师和se有啥区别
不会写代码的小哥哥
买完书看了你就清楚了:sweat_smile:
侠客张三
侠客张三
赞👍
lgscofield
lgscofield
多谢 🙏
马永辉
马永辉
架构师应该会写代码,但具体项目中不一定要写。理想情况下,架构师基于软件需求,确定软件整体的架构设计,然后由其他工程师进行实施。实际情况没那么理想,或者对架构师有更多的要求,需要从需求分析阶段就介入,挖掘关键架构需求,讨论质量属性,带领团队完成架构设计,辅助团队进行细节设计,应对后续实施中遇到的困难并进行合理的架构调整。
马永辉
马永辉
架构师要考虑软件的质量属性、系统的分解、技术债务等等。你说的SE是系统工程师?这个侧重点还是有所不同的。每个公司的情况会有所不同。我个人的理解是系统工程师是偏向于软件部署的。
0
jjwjiejue
jjwjiejue

@马永辉 您好,我也很好奇,文章中也提到优秀的架构师很是缺少,但是怎么判断优秀架构师的标准,需要知道哪方面的知识?实际任职中往往还有其他非架构师的事情,怎么协调处理

马永辉
马永辉
回复 @jjwjiejue : 《恰如其分的软件架构》,《Balancing Agility and Discipline》,《敏捷革命》,《目标:简单而有效的常识管理》
jjwjiejue
jjwjiejue
回复 @马永辉 : 谢谢,除了您的书籍之外,还有哪些书可以推荐推荐吗
马永辉
马永辉
基本:能搞出一个系统,满足用户当前需求;进阶:成本最优化地搞出一个系统,具备可扩展性和可伸缩性等,能满足将来的要求;进阶:发觉需求中的不合理之处,进行引导,解决普遍需求而不是特定用户的需求。
马永辉
马永辉
两个方法:(1)明确自己的职责范畴,让自己、别人都知道有哪些事情需要做,你自己若搞不清楚,别人自然把其他事情推到你这里;(2)不要局限自己的职责范畴,一切有助于项目、公司成功的事情都是合理的事情,你搞不定,就找人搞定。
0
腾噶
腾噶

@马永辉 马老师,你好!我想请问你几个问题:

1.请问马老师如何才算的上是一个合格的架构师 ?

2.架构师需要了解哪些基础的知识?

3.架构师具体需要做什么事情,在一个项目团队中起的起什么样的作用?

马永辉
马永辉
1. 从工程角度定义问题 2. 分解系统,分配职责 3. 关注大局 4. 在质量属性之间做出取舍 5. 管理技术债务 6. 提升团队的架构技能
0
图数据库猫
图数据库猫

@马永辉   一个做了3年的java web工程师,怎么入手做架构师的job, 怎么选择?

伊人枫
伊人枫
回复 @我叫金正恩 : 那只是一共工具,解决是成熟方案里涉及的问题,并不是一个架构师最合适的成长经验
马永辉
马永辉
从你的日常工作入手,像架构师那样提问、思考、决策、解决。
我叫金正恩
我叫金正恩
你需要k8s助你成为架构师:joy:
0
hbliyong
hbliyong

@马永辉 请问老师,架构需要什么样的条件,架构的广度如何把控?

Yvonne718
Yvonne718
回复 @马永辉 : 你好
马永辉
马永辉
回复 @hbliyong : 个人的理解是,软件工程其实是一个新兴工程,其中的很多概念,都是从传统行业(比如建筑和制造行业)的工程管理中借鉴过来的。架构师在整体过程中的作用和职责是相通的,就是要能够工程化地规划并推动实现一个东西来满足市场和用户需求。
hbliyong
hbliyong
回复 @马永辉 : 其实就是如果在互联网行业,架构师好多都很好理解,如果是传统行业,这个架构师的作用或者职责如何体现?
马永辉
马永辉
不好意思,不是特别理解您的问题,请澄清一下。
0
rabbitgg
rabbitgg

@马永辉

1、现在很多时候及要技术培训,又要线上救火,要做的事情还不少,是人员配置问题,还是架构师本身就是一个打杂的,每个都要懂(会)?

2、架构师既要是哲学家(PPT架构师),又要是一线开发成长起来的技术专家(框架封装),不同的公司不同阶段要求不一样,如何让自己的更好的提升?

 

rabbitgg
rabbitgg
回复 @马永辉 : 确实,有些事情可以下放,不一定什么都要自己做,全局观还是要有的,自己是永动机,保持学习。
马永辉
马永辉
架构师会有很多杂事,两弹总指挥都要关注混凝土搅拌是否掺杂了盐碱水。但不要认为自己是打杂的,而是要将自己置于解决“关键”问题的姿态上,只不过关键问题可能是在很细小的地方。当然,也要注意人员配置问题,有些事情自己不愿意弄,就让别人去弄。但自己思维上一定要有总览全局的架构师负责制概念。保持学习,别无他法。
0
海参拉面
海参拉面

@马永辉 老师高开和架构师区别明显吗

马永辉
马永辉
高开如果只是精于某些方面,未必能做统筹全局的架构师。架构师通常开发能力应该较高,还要有关注大局、从系统整体层面考虑的能力。
0
FD内网穿透
FD内网穿透
@马永辉 老师我想要看书,最近的一个项目快卡死我了。
马永辉
马永辉
看书不一定能直接帮你解决某个技术或架构问题,但或许可以帮你理清、拓展思路。很多时候,困扰我们的,往往不是某个技术点,而是思路。
返回顶部
顶部