经营架构师之路架构师成长记

架构设计的三种思维

2020-03-16  本文已影响0人  杨伟锋poplar

软件架构的几个误区

1. 架构的目标即灵活性
灵活性越好的架构越能适应未来变化的需要,但不是架构设计的目标,一味追求容易陷入另外一个坑,造成性能的损失和资源的浪费。
2. 一套成熟的开源框架就是架构
框架是一类软件的可复用设计,是一个可扩展的半成品软件,并不是软件的架构,架构是软件设计的重要决策。
3. 大型系统才会考虑架构
的确,架构的设计要依赖于用户规模的考量,不能过度设计,但是并不代表不需要考虑良好的架构体系,很多软件产品一直以一个DEMO形式在运行,无人问津,并没有投入到真正的生产环境,问题没有暴露,若用户真正使用时即使是一个简单的软件依然会出现问题,优势是在数据安全、访问性能、伸缩性等非功能性需求上。
4. 微服务是最好的架构理念
独立功能甚至独立资源, 颗粒度小,松散耦合的组件化是微服务的优点,但大部分开发、运维在实践中依然遇到了新的问题:

生产环境服务的现状

  1. Beta测试才发现架构问题
  2. 产品2.0不到半年要开发3.0
  3. 真正用户来了之后各种故障和漏洞

从架构设计上缺失了哪一环?遗漏了什么?我们应如何避免,当然架构师是最重要的原因,没有不好的架构,只有不好的架构师,那我们可以有什么方法体系来避免此类问题的出现吗?


引自《软件架构设计》一书

其实这并不是笑话,有很多的实际案例,每种角色都是从自身的角度去考率,没有完整的方法体系和全局思维,所以我们在设计架构的时候除过专业能力之外应具备以下3种思维模式,这也是技术人员最缺乏的思维,但我认为也是最重要的思维,因为 “软件架构师不仅是技术方案的设计者”

用户思维

用户思维就是以用户为导向的,站在用户的角度去思考问题,用户的需求即是企业的需求,用户的喜好就是企业的喜好,同样应是产品软件设计的喜好。

在架构设计过程中首先要了解用户是谁,每类用户关注的需求是什么,再针对性的去思考,这样才不会出现遗漏,但是仅仅了解需求是不够的,我们还需要了解用户是在什么样的场景下使用这些功能。

场景思维

场景化思维就是需要洞察用户的身份、空间、时间、意图、行为等特征,同样要考虑架构设计关联的所有用户场景,不同类用户场景也会不同,比如运维人员的场景和最终用户的场景完全不同。

敏捷思维

用户思维和场景思维充分考虑之后,大部分人可能会认为设计一个完整的架构成本太高,周期会很长,那我们应如何降低成本,缩短周期,避免过度设计,造成资源、研发周期的浪费呢,同敏捷开发的思想一样,我们在设计架构的时候同样应具备敏捷思维。
重大需求决定架构的成败
我们在综合各类用户需求之后,要对分散凌乱的需求进行梳理,梳理出关键需求、关键质量、关键约束,重点对这些重大需求先做架构设计。

关键需求决定架构成败

总结

用户思维和场景思维是技术人员最缺失的,架构师在业界大部分都被定义为技术人员,其实无论是架构师或程序员都应具备用户思维和场景思维,这样设计、研发出来的软件系统才能更好的符合预期,符合用户体验,在这个时代,不仅是产品经理具备用户思维,企业中的每个角色都应具备用户思维和场景思维,同样敏捷思维又保证了不会过度的设计,造成不必要的浪费,因为不是每个企业都有bat那样的雄厚资金成本支撑。

架构设计思维过程
将凌乱分散的需求通过设计变成有序、多维的架构是每个架构师的价值所在

下篇分享《架构设计的六种视图》

上一篇 下一篇

猜你喜欢

热点阅读