前段时间读了部分《领域驱动设计》,它在考虑怎么在开发设计中,领域专家和开发人员要保持一致,从术语、逻辑到结构,打造“一个团队一种语言”。最近上班路上,抽空又翻了翻《build microservice》,它在考虑软件开发中,如何决定技术架构,服务好软件团队。
如果说架构是为软件开发服务的脚手架,那么开发好的软件,何尝不是实施的脚手架。架构->软件->实施,前一个环节定好规则和最佳实践,希望后一个环节能够遵守并发挥价值,但后一个环节碰到零零总总的问题,总要做些妥协和变化,才能进行下去。
那么此书中提到的一些架构因素,对我们实施是否也可以借鉴呢?
Empathy
Understand the impact of your decision on your customers and colleagues
Collaboration
Engage with as many of your peers and colleagues as possible to help define, refine and execute the vision
Adaptability
Make sure that the technical vision changes as your customers or organization requires it
Autonomy
Find the right balance between standardizing and enabling autonomy for your teams
Governance
Ensure that the system being implemented fits the technical vision
作者把以上几个原则作为一个架构师需要重点考虑的因素。如果把上面原则再读一遍,套用到软件开发实施中,只不过对象变成直接用户,我感觉也是同样有价值。我们无论开发架构,还是开发应用软件,抑或给别人提供服务工具,这些因素都具适用性。
在第57页有段话,作者说的有点耐人寻味,我摘抄如下:
I am a fan of microservice as a way of optimizing for autonomy of team, giving them as much freedom as possible to solve the problem at hand; If you are working in a organization that pub lots of restrictions on how developers can do their work, then microservice may not be for you.
网友评论