架构认知的三个层次:行业视野、技术视野、工作视野。架构师能力的上线是什么?是你对业务本质的理解,因此,行业视野(包含公司)这是第一步。但与技术还有较大落地上的差据,技术要把业务需求转化成系统、这要具备技术视野。最后,具体到你、如何落地?这是一个执行的问题。
工作3~5年的Java程序员,大都积累了一些项目经验,拓宽到一定技术广度,部分人已经成为团队管理者/技术骨干。到了这个阶段,大家却普遍有这种感受:总觉得自己卡在瓶颈进步缓慢,技术水平很难像早期一样实现大幅突破?
其实大家往往忽略了这一点——提升自己的架构认知。
架构的本质在于面对业务场景给出优雅的解决方案,使得业务能够快速迭代和持续交付,从而达到降本增效的目标。
学习架构重点在于不断提升架构认知高度,正如达克效应描述一样,要敢于从愚昧之巅跳到绝望之谷,通过爬升开悟之坡,从而达到架构认知的巅峰时刻。
到达了架构的巅峰时刻也就掌握了架构背后设计的哲学,从而真正做到面对具体业务场景在架构层面都能够轻松应对,以无招胜有招。
那么,如何提升架构认知呢?
你需要紧抓3个关键点:业务洞察力、技术视野、原创力(执行力)。
1. 业务洞察力是技术战略层面的问题,在当下能够做出合理的判断,清楚公司做什么事情收益最大;技术要领先于业务做一些考虑。
2. 技术视野包括对于各技术栈的选择和比较、架构设计模式的考虑、设计策略等。
3. 原创力(执行力)是技术落地执行层面的问题,一旦技术设计方案确定后,需要能够快速Rush完成。
这3点层层递进,最重要的是先把技术战略问题思考清楚,然后再进一步解决技术战术问题,最后是快速落地执行的问题。
工作5年左右的程序员,在原创力(执行力)层面比较有竞争力,往往欠缺的是技术视野以及业务洞察力。从架构认知来讲,后面2点会更加重要,这2点解决的是架构设计哲学问题,是架构师能够持续拥有竞争力和影响力的立身之道。
举个场景的例子来详细说明:一提到分布式锁问题,大多数同学想到的方案是基于Redis的Master-Slave模式来实现。这个实现方案行不行?分布式锁本质是一个CP需求,基于Redis的实现是一个AP需求,乍一看基于Redis的实现是无法满足的。脱离业务场景来谈架构都是耍流氓。
从技术战略的需求层面来看,如果分布式锁在极端情况下获取锁的不一致,社交业务场景能够接受,那么基于Redis的实现是完全可行的。如果业务是交易场景,分布式锁在极端情况下获取锁的不一致性无法接受,那么基于Redis的实现方案是不可行的。在锁强一致性的场景下,需要采取基于CP模型的etcd等方案来实现。
“于一微尘中,悉见诸世界”,一切事物的本质是相通、相同的。 学习架构也是同样的道理,掌握了架构设计背后的哲学,那么一切工程问题也就迎刃而解了。
=>更多文章请参考:《中国互联网业务研发体系架构指南》
=>更多行业权威架构案例及领域标准、技术趋势请关注微信公众号:
转载:https://blog.csdn.net/Ture010Love/article/details/104308584