读书 – 软件架构师应该知道的97件事

-摘自”软件架构师应该知道的97件事”

“…但在现实世界中,最好的架构师不是要去解决难题,而是要围绕难题开展工作.架构师要能够将四处弥漫的软件问题圈起来,并画出其中的各种边界(接口),确保对问题有稳定的,完整的认识.”
–Stable problems get high-quality solutions
“架构师要从整体上看待杂乱无章的数据/概念/数据处理逻辑,架构师要能够将他们作为整体看待,并将它们分解为更小的片段或”块”.重点在于,这些问题必须是稳定的,它们在范围上有限且稳定,可以作为系统模块解决.”
–Stable problems get high-quality solutions
–上面两点说的无外两点: 正确的确定scope, 合理的架构拆解

“从架构师角度看,困难的所在,是要找到设置边界的自然之处,并定义出构建可工作系统所需要的合适接口.大型的企业系统,其自然边界稀少及多个领域之间互有纠缠,做到这点尤为困难.”
–Architects’ focus is on the boundary and interfaces

“称职的架构师应该勇于接受新观念,敢于尝试新的设计思路和工具,促进项目/团队,甚至整个行业的发展;他不会浪费大把的时间参与管理层会议,或者妄想独自编写所有代码;他应该采纳好点子,营造活跃的思考氛围.只有思想开放的架构师才能平衡各种矛盾因素,顺利完成项目.”
–Janus the architect

“将程序设计–或者更准确的说,软件开发, 看作发现和学习的过程,而不是生产和建造的过程.”
“如果把编写代码看成设计行为,而不是生产行为,我们就能采用一些已经被证明有效的管理方式,这些方法过去用于管理具有不可预测性的创新工作,比如研发新车/新药/新的电脑游戏.我所指的是敏捷的产品管理方法和精益生产方法,比如scrum,它们关注如何为客户实现最大的投资收益”
–Programming is an act of design

“沉下心来改善系统的生产效率,缩短流程,避免各行其是,才能缩短开发时间.采取一切可行的措施,例如运用模拟方法,降低依赖性,细致划分系统模块,等等.总之要杜绝一起草率提价任务的念头”
–Commit-and-run is a crime

来自支付宝架构师的一些体会

来自支付宝架构师的一些体会,主要来源是支付宝架构师blog和dbanotes。记录一些有启发的架构细节和成长体会,让自己能够更准确的找到自身提升的方向方法。

今天的支付宝已经是一个用户超过2亿用户,每天交易笔数超过400万笔,交易量超过7亿的庞大平台。

现在,程立的团队依然保持着每周一次的发布速度,坚持每周系统更新。在准确性和时效性方面都要受到挑战。“技术是一个相对枯燥的部门,但是一旦沉进去之后却发现这真的是很有意思的一个部门,因为有挑战,所以有意思。”程立表示。

对于技术人才的成长,程立认为技术人员必须把自己的发展和公司的发展结合在一起。刚进公司的时候,他简单地认为只要愿意加班或者负责好自己的事情,就是敬业,但后来他才明白,做好一件事情并不代表敬业,敬业还要考虑做的这件事情的背后的意义是什么,公司和客户真正想要达到的结果是什么。将被动的工作转为主动,每个人都会发现自己有很多潜力可以去挖掘。

的确,支付宝的数据堪称海量,但相比之下,主要的压力还是来自对交易事务的处理上。我们也有一些密集型的后台计算,但相对规模不算特别大,当前的计算能力足以支撑, Continue reading “来自支付宝架构师的一些体会”