Java学习笔记Java高级架构Java 杂谈

java开发五年,你必须要知道这几点!

2019-02-18  本文已影响18人  Java高级架构

做了5年左右Java开发,你已经积累了不少项目经验,扩宽了技术广度,也许已发力成为团队管理者。到了这个阶段,大家却常有这种感受:感觉自己卡在瓶颈进步缓慢,技术水平很难像早期一样实现大幅突破?

其实大家往往忽略了这一点——提升自己的架构认知

架构的本质在于面对业务场景给出优雅的解决方案,使得业务能够快速迭代和持续交付,从而达到降本增效的目标。

提升架构认知高度,就像达克效应所描述的一样,要敢于从愚昧之巅跳到绝望之谷,通过爬升开悟之坡,从而达到架构认知的巅峰时刻。

到达巅峰时刻也就掌握了架构背后设计的哲学,面对具体业务场景在架构层面你便能够轻松应对,以无招胜有招。

提升架构认知,要紧抓3个关键点:业务洞察力、技术视野、原创力(执行力)

1.业务洞察力是技术战略层面的问题,在当下能够做出合理的判断,清楚公司做什么事情收益最大;

2. 技术视野即技术选型能力,是技术战术层面的问题,在清楚做什么事情后,需要进一步解决怎么做的问题,也就是能够给出合理的技术选型方案:是完全基于开源的方案,还是基于开源二次开发的方案,还是完全自研的方案;

3. 原创力(执行力)是技术落地执行层面的问题,一旦技术设计方案确定后,需要能够快速Rush完成。

这3点层层递进,最重要的是先把技术战略问题思考清楚,然后再进一步解决技术战术问题,最后是快速落地执行的问题。

工作5年左右的程序员,在原创力(执行力)层面比较有竞争力,往往欠缺技术视野以及业务洞察力。后面2点更加重要,这2点解决的是架构设计哲学问题,是架构师能够持续拥有竞争力和影响力的立身之道。

举个场景的例子来详细说明:一提到分布式锁问题,大多数人想到的方案是基于Redis的Master-Slave模式来实现。这个实现方案行不行?分布式锁本质是一个CP需求,基于Redis的实现是一个AP需求,乍一看基于Redis的实现是无法满足的。脱离业务场景来谈架构都是耍流氓。

从技术战略的需求层面来看,如果分布式锁在极端情况下获取锁的不一致,社交业务场景能够接受,那么基于Redis的实现是完全可行的。如果业务是交易场景,分布式锁在极端情况下获取锁的不一致性无法接受,那么基于Redis的实现方案是不可行的。在锁强一致性的场景下,需要采取基于CP模型的etcd等方案来实现。

“于一微尘中,悉见诸世界”,一切事物的本质是相通、相同的。 学习架构也是如此,掌握了架构设计背后的哲学,那么一切工程问题也就迎刃而解了。

那么学好java我们又需要掌握哪些技术呢,学习方向应该是怎样的呢。下面是我分享给大家的思维导图,建议大家收藏

性能优化:

常用源码框架分析:

互联网分布式架构专题:

微服务专题:

团队协作开发:

B2C商城实战:

最后针对上面六大设计模式,小编在这里整理了一套架构师进阶视频(pring,MyBatis,Netty源码分析,高并发、高性能、分布式、微服务架构的原理)以及为年后想要去寻找机会的朋友准备的大厂面试真题。

资料获取方式:请加群BAT架构技术交流群:957413713

点击链接加入群聊【BAT架构技术交流群】:https://jq.qq.com/?_wv=1027&k=5XRbSdL

上一篇下一篇

猜你喜欢

热点阅读