软件架构师如何工作
软件架构师作为最具有难度高度的软件工作之一也是挣钱最多的工作之一,我之前一直不明白软件架构和设计模式的关系,后来看完架构漫谈和王建民老师讲的课后才发现,架构的出现原来是因为每个人的时间和精力都是有效的,而人们又追求具有良好质量的作品,因此也就出现了人们根据自己的特点及长处进行分工合作,进而出现了架构。而架构与设计模式的区别在于,架构范围更大,一个任务可能使用了多个架构,而每一个架构又用了很多个设计模式。因此架构的范围大于设计模式。
而至于软件架构师如何工作,第一首先就是识别问题,通过文章中下锅煮土豆的案例分析,我们发现精准的识别问题是非常重要的,软件构造师去解决别人的问题,明白问题的主体,而且还会带来很多边界约束,然后更加了解问题,真正明白了是谁的问题,才能够真正的完成自己的任务,真正的把自己的问题解决掉,而不是反过来。发现问题永远都比解决问题来的更加重要。因此首先就是清楚地了解到这是谁的问题,并且有什么问题。
进而进行架构的切分,随着社会的发展,分工是必然的,每个人都希望把自己的利益最大化。进行利益相关人的确定。对于古代帝王来说,自己一个人的权利太大就无法治理好整个天下,因为一个人的能力是有限的,因此,如何切分分配权利是古代帝王头疼的一个问题。而软件架构也是如此,一个优秀的软件绝对不可能是一个人写出来的,而是一个团队写出来的,一个团队中每个人分工不一样,相互合作,最终完成一个好的软件。
架构切分也有原则:
1.必须在持续时间内发生的一个活动,不能切分。
2.切分出来的部分的负责人,对这个部分的权利和义务必须是对等的。
3.切分出来的部分,不应该超出一个自然人的负载
4.切分是内部活动,内部无论怎么切,对整个系统的外部应该是透明的。
而所有的结构切分整体都应该是一个树状图,而不是有向图或者无向图。由整体切分分为一个个大部分,再进而切分成一个个小部分,因此可以分配给能力不同的人去完成不同的任务。而切分最忌讳个人的负载太重,而是应该使每个执行者的权责对等,每个人可以对自己的部分负责,而对于一个总体树状图的架构切分来说,层数越多则必定沟通越多,则效率越低,所以分层越少越好,进而使效率最大化。

浙公网安备 33010602011771号