读书笔记:《软件架构师应该知道的97件事》

本书强调业务目标优先,量化需求,沟通技巧,团队合作,设计简化,关注性能与测试,及项目商业价值。架构师需平衡技术与业务,引导团队,简化系统复杂性,提前规划性能,确保项目可测可控。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

前言:本书是部门架构师推荐我阅读的,他认为适合我当下的状态。原本看到书名觉得特别low,感觉就像市面上各种成功学一样。但基于o'reilly的名声,还是阅读了一遍,果然收获匪浅。

 

1、业务目标至上。

客户需求重要于个人简历(个人诉求、个人看法、技术实现难度成本等)

分析客户需求背后的意义,了解真实意图,砍掉伪需求。

明确自己是谈判,维护必须的利益。而不是各种妥协,只为了追求合作。

架构师需要掌握业务领域知识,把握未来的发展

 

2、量化需求。(可衡量,如具体数值等,而不是一些模糊的词)

需要综合考虑业务部门、技术部门,投入产出比,商业价值。

图的方式量化整个项目的实现、复杂度、风险等

软件架构师是时间、人力的管家,管家在意的应该是投资回报比,而不是卖弄时髦的技术和晦涩的专业词语,不是让整个系统更复杂

清汤的重要启示(P190),必须要不断提炼,确定系统中需求的本质。可以借助询问时,加上“永远”,“不管任何情况下”,对需求陈述进行测试。

 

3、简单清晰的沟通、开明的领导风格。

起立发言。

问题可能不是出现在技术上,而是在沟通的矛盾上,不要把对话当成对抗;不要带着情绪与人沟通;尝试设定共同目标,把处理冲突当做一次学习的机会,每次沟通都会有收获。(p7)

不同角色、性格的团队成员,才会有各种可能

仔细观察,不要试图控制一切

 

 

4、架构师没有大写的“I”,要以谦卑、合作的态度处理和技术人员、业务人员之间的关系,不能命令的口吻、居高临下。

架构师的作用是引导,把控,提出建议,发挥团队成员的智慧,而不是发号施令,让开发人员自己做主,让大家主动向你征求意见,创造良好的氛围。

先考虑原则、公理和类比,再考虑个人意见和口味

 

5、设计的根本在于简化根本复杂性,消除偶发复杂性,没有简化根本复杂性,反而带来更多的偶发复杂性,这就是过度设计。

优先考虑方案简单可用,再考虑通用性和复杂性。没必要过早的介入通用性等考虑,只会带来更大的开发成本,而且是否“通用”只是单个人的理解,什么是“通用”,每个人的通用概念都不一样,只有未来能知道。

架构设计必须能够付诸实现,而不是沉迷于各种设计,最后是空中楼阁。

架构设计平衡兼顾各方的需求

具体的情景决定一切,不要有“模式病”

重视不确定性,不要只局限在不确定性产生的A、B两种方案中,要看问题的本质,收集更多信息,看看存不存在第三种方案,建设性的使用不确定性对系统、进度进行分割(p48)

避免重复

记住决策理由,它带来的好处超出你的想象。P104

不要滥用隐喻,尤其在系统中,否则在系统迭代时,之前的隐喻可能成为累赘

确保简单的问题有简单的解,架构师会从主观的判断或潜在的不确定需求出发,调整解决方案,但往往错误的概率是50%。只需简单解决当下的问题,把应用发布出去,从反馈中获取真实的需求。P125

至少有两个可选的解决方案,如果没有,则需要请教更有经验的人。

现在走捷径,将来付利息。即使由于时间紧迫,采用了临时方案,后期上线后也要矫正。就好比及时还清贷款,停止付利息。

优秀软件不是构建出来的,而是培育起来的。(不要一开始过度设计,杀鸡用牛刀)

 

6、

提前关注性能问题

提前介入测试

项目期较长,需要分开阶段时,每个阶段需要都是可运行、测试的。

控制项目规模,拆解项目,分批发布,分批集成;既能增加商业利润,又提前发现问题,改善架构。

关注开发人员的效率,为开发人员创建良好的工作环境

关注应用程序的支持和维护

一切软件系统都将是遗留系统,

没有永不过时的解决方案。

 

 

着重强调项目的商业价值(P170)

①形成价值陈述(value proposition)。价值陈述是你的决策摘要(executive summary),用以说明组织的业务为何要采用某种特定的软件架构。这一步的关键,是要将你的架构方案与其他既有方案或可选方案进行比较。重点应该放在说明其在提高生产力、改进业务效率方面的能力,而不是强调其采用的技术如何高明。

②建立量化的度量标准(metric)。对于承诺要交付的价值,需要在合理范围内进行量化。量化得越具体越到位,项目也将越具有说服力,越能让人相信好的架构可以带来丰厚的回报。越早建立度量标准,就越容易把握人们的认知,帮助推销自己的架构提案。

③回过头来关联传统商业的衡量方式。如果能将技术分析转化为财务数据,则会更为完美。毕竟,传统的商业衡量方式中唯一不变的参数便是经济收益。如果不喜欢做财务性的工作,可以找商业分析师来做你的搭档。

④知道该哪里停止。在知道该哪里停止之前,要准备好一张路线图(roadmap)用以捕获远景目标,清楚的知道每一个里程碑将带来的商业价值。让利益相关者自己决定将在何处停止。如果每处的商业价值都十分显著,那么,很可能你会获得持续不断的资金支持。

⑤寻找恰当的时机。即使按照前面四个步骤创建了稳固的商业项目提案,但如果时机不对,可能仍然无法成功推销你的点子。我记得自己就曾有一个提案迟迟无法获批,直到另一个项目因为糟糕的架构设计以彻底失败告终时,我的提案才获得通过。所以,还要明智选择恰当的时机。

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值