1.对架构设计的认知

为什么做架构拆分?

        通常最直接目的就是做系统之间解耦、子系统之间解耦,或模块之间的解耦。

为什么要做系统解耦?

        系统解耦后,使得原本错综复杂的调用逻辑能有序地分布到各个独立的系统中,从而使得拆封后的各个系统职责更单一,功能更为内聚。

为什么要做职责单一?

        因为职责单一的系统功能逻辑的迭代速度会更快,会提高研发团队响应业务需求的速度,也就是提高了团队的开发效率。

为什么要关注开发效率?

        研发迭代效率的提升是任何一家公司在业务发展期间都最为关注的问题,所以从某种程度上看,架构拆分是系统提效最直接的手段。

        所以,架构拆分其实是管理在技术上提效的一种手段,认识到这一点后,就不难理解为什么很多架构师在做系统架构时,会做系统设计上的拆分,甚至认为架构的本质就是拆分了。

对分析问题的认知

        在实际工作中,技术人员在做系统设计时需要与公司或部门的战略定位对齐,才能让你的技术有价值。因为对于系统技术架构升级的问题,业务方、管理者和技术人员的关注点是不同的。

        · 业务方的诉求是在技术升级后,系统有能力迭代功能来满足市场的要求,所以关注点在系统能力

        · 管理者的诉求是在技术升级后,系统研发团队的开发效能得到提升,所以关注点在人效管理

        · 技术人员需要找到自己做系统设计的立足点,来满足不同人对技术的诉求,而这个立足点通常就是系统设计原则

        所以你应该认识到,系统的设计原则不是乱提出来的,而是针对系统现阶段业务发展带来的主要矛盾提出,才会更有价值且被认可。

        系统设计问题,要根据系统所处阶段的主要矛盾来回答架构设计问题,在 20 世纪 60 年代,《人月神话》的作者就分析,软件复杂性来源于两点:本质复杂度和偶然复杂度开发工具、开发框架、开发模式,以及高性能和高可用这些仅是偶然复杂性,架构最重要的是要解决本质复杂性,这包括人的复杂性和业务的复杂性。 技术是静态的,业务和用户是变化的,具体问题要从具体的业务领域出发。这时有人可能会说,我只想做技术,不想做业务,然而你会慢慢发现,在职业生涯中处理的最有价值的事情,一般都是利用技术解决了业务领域的某阶段的主要问题,这也是最复杂的。而一个优秀的应聘者,在回答中应该向面试官展现出这样的技术认知。

对能力边界的认知

        一个高级研发工程师和一个架构师的区别在哪? 我们先来看一下互联网一些大厂的中高级研发工程师晋升架构师的标准,如下图所示:

        可以看出,晋升架构师需要掌握架构知识体系以及互联网的设计经验。

        一个中高级研发工程师对系统的驾驭边界至少是模块或者子系统层面;

        一个架构师对系统的驾驭边界至少是全系统层面;

        一个高级架构师对系统的驾驭边界至少是某一领域层面。

总结

首先要提高你对系统架构设计的认知能力,一个好的架构师的架构设计不是仅仅停留在技术解决方案上。

其次要提高你分析系统问题的认知能力,做架构设计要具备根据现阶段的主要矛盾来分析问题的能力。

最后你要扩大自己能够驾驭系统的边界,因为只有这样才能遇到之前没经历过的问题层次,注意我这里说的是问题层次,而不是问题数量。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值