V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
714105382
V2EX  ›  Java

Java 后端如何深耕?

  •  
  •   714105382 · 2019-08-28 10:28:11 +08:00 · 6402 次点击
    这是一个创建于 1695 天前的主题,其中的信息可能已经有所发展或是发生改变。

    原谅我标题党了😂 楼主是海淀某校 CS 本大四了,现在在某大厂做 Java 后端实习,主要是微服务治理相关 刚刚入门,准备学一下各种框架 但是感到迷茫,后端东西太多了,先进的过时的混杂在一起,有点看不清 而且对学习顺序也无从把握 想问下各位 julao 们,这条路该如何学习? 或者说,如何因应未来的技术趋势,来搭建自己的技术栈和能力栈?

    29 条回复    2019-08-29 10:43:18 +08:00
    714105382
        1
    714105382  
    OP
       2019-08-28 10:33:51 +08:00
    好像话说得不明不白,举个例子吧
    比如我知道 SpringBoot 已经成为主流,公司也在用,但是如何快速学习呢?

    再比如说,公司架构还是 SpringMVC,本质上还是 Servlet.但是也有组里在搞异步化,Spring5 也上了 WebFlux
    问题是,MVC 是否能在未来较长时间内保持主流?
    如果不是的话,这些新出的东西是不是新人应该分配更高的优先级?
    714105382
        2
    714105382  
    OP
       2019-08-28 10:36:43 +08:00
    感觉自己想问: 如何穿透技术繁复多变的表象,看到技术发展的先进性和本质?
    StarkWhite
        3
    StarkWhite  
       2019-08-28 10:45:43 +08:00
    建议你多了解下 GraphQL,Facebook 出的,解决前后端接口联调的各种痛点
    https://www.v2ex.com/t/589138
    714105382
        4
    714105382  
    OP
       2019-08-28 10:50:27 +08:00
    @StarkWhite 嗯嗯,谢谢您!
    STRRL
        5
    STRRL  
       2019-08-28 10:51:00 +08:00   ❤️ 1
    多思考一下本质的需求吧 我也是刚毕业一年

    虽然很多技术需求都有比较成熟的方案了,但是场景不同,要解决的问题不同,某些轮子用起来可能并不舒服,所以人们又造了新的轮子。

    比如说微服务,很早很早很早就已经提出来了(《 Clean Architecture 》里看到的),但是最近才大规模应用起来。

    在 follow 新技术的同时, 多想, 多看书, 即使是所谓过时的东西里的某些思想也可能是精华. XD
    zifangsky
        6
    zifangsky  
       2019-08-28 11:01:04 +08:00
    给你推荐一份我自己总结的 Java 学习书单吧,你可以根据自己的目标安排学习计划。


    Java 学习书单: https://mubu.com/doc/nZ4n8i424
    weo0
        7
    weo0  
       2019-08-28 11:05:30 +08:00
    java 后端简直浩如烟海,我快放弃了(大雾)
    LeeSeoung
        8
    LeeSeoung  
       2019-08-28 11:06:56 +08:00
    网上搜 java 技术栈思维导图,保证你看不完。。
    chendy
        9
    chendy  
       2019-08-28 11:08:12 +08:00
    找一个(或者几个)感兴趣而且不冷门的东西一直扣就行,兼顾了解一些新东西,没了
    当然挺枯燥的,很可能扣不动…

    顺便吐槽一下 WebFlux 真的异端( 5.2 之后集成 kotlin 协程目测好用很多),spring5 之后加入的一些 funcational api 也是异端
    519718366
        10
    519718366  
       2019-08-28 11:08:44 +08:00
    写 bug,然后查 bug,最后解决 bug🌚
    714105382
        11
    714105382  
    OP
       2019-08-28 11:28:27 +08:00
    感谢大家
    dk7952638
        12
    dk7952638  
       2019-08-28 11:30:39 +08:00
    多写代码,在项目允许的情况下大胆尝试新技术,多踩坑,总结最佳实践
    Kontinue
        13
    Kontinue  
       2019-08-28 12:28:05 +08:00
    目前我刚入职也是这样子的,但现在是这么想的,首先保证 ssm+boot+spring 基本模块能熟练( Data 等),然后看公司可能会用到的,和自己感兴趣的。比如果 docker 作为工具可以学习下,然后可能会用到 rpc,就看下 zookeeper 和 dubbo,然后就各类中间件基本的用法都掌握以下,不追求底层和原理。然后针对于自己最有兴趣或公司用的最多的,花时间去了解下底层,看下源码。目前我是这么想的。。。每个都深耕哪有这么多精力,毕竟我觉得不论中间件,光光 spring 你要做到精通也是件很难的事情
    taogen
        14
    taogen  
       2019-08-28 12:29:05 +08:00 via Android
    我列了一个技术栈可以看看 https://github.com/tagnja/techniques-tree
    714105382
        15
    714105382  
    OP
       2019-08-28 12:37:24 +08:00
    @Kontinue 所以 SSM 三板斧还能再主导很多年?如何看待呢?
    charlie21
        16
    charlie21  
       2019-08-28 12:58:12 +08:00
    只学能带来 money 的。你学太多的内容、内容却无法带来 money,那么只能说明这个内容不值钱,那么你学它是图啥呢
    charlie21
        17
    charlie21  
       2019-08-28 12:58:47 +08:00
    什么 JB 浩如烟海,通通证明了这是不值钱的技术
    sorra
        18
    sorra  
       2019-08-28 13:01:54 +08:00
    先耕熟 JDK 和 Spring,掌握其原理,设计模式和数据库也要熟练,再学习分布式系统基础知识,要有一定代码量才能真正理解技术
    Kontinue
        19
    Kontinue  
       2019-08-28 13:05:59 +08:00
    @714105382 我觉得能,你看 spring 出到 5,boot 才 2,至少还有 3 年哈哈哈。但是 web 框架和 orm,你 ssm 搞定换别的不说轻轻松松吗
    charlie21
        20
    charlie21  
       2019-08-28 13:07:35 +08:00   ❤️ 1
    反事实度量法:
    假设某一事实不存在或者情况相反,估算经济运行中可能出现的结果,由此来度量该事实对于经济运行的影响
    https://book.douban.com/review/7955709/

    诶你不如问一下后端有什么东西不需要学,谁能回答你 这才是说明他是懂行的。
    714105382
        21
    714105382  
    OP
       2019-08-28 13:10:53 +08:00
    或者大家讲讲什么东西过时了不需要学也好
    vmskipper
        22
    vmskipper  
       2019-08-28 14:57:29 +08:00
    工程的话搞 kubernate serverless 未来吃香
    90d0n
        23
    90d0n  
       2019-08-28 15:33:07 +08:00
    @714105382 #21 jsp 不需要学...
    leafdream
        24
    leafdream  
       2019-08-28 15:48:06 +08:00
    人生苦短
    mazai
        25
    mazai  
       2019-08-28 15:54:42 +08:00
    跟上潮流就行了,某项技术突然火起来谁也无法预知。而且国内公司对新技术大多书都保持观望状态。
    Aresxue
        26
    Aresxue  
       2019-08-28 16:14:15 +08:00   ❤️ 1
    把基础复习牢固了,再去研究各种中间件。像 linux 的核心函数、多路复用模型、用户态内核态的切换、锁机制,通信模型里的 OSI 或者 TCP 四层模型,中间把 TCP 捋顺了,像你做微服务,通信是极其重要的一块,spring cloud 为什么用 http,dubbo 的 rpc 又是怎么实现的,没有 TCP 的相关知识做基础你是不可能研究透的。
    snappyone
        27
    snappyone  
       2019-08-28 18:55:55 +08:00 via Android
    基础好学啥都快,硬着头皮搞定几个框架源码,后面一路顺风
    33and66
        28
    33and66  
       2019-08-29 09:31:56 +08:00
    基础打牢,再去理解上层建筑就容易多了。
    比如,Java 这么多 web 框架,还不是基于一个 Servlet 体系。
    比如,数据库 ORM 层那么多,还是基于基本数据库。
    很多分布式框架,都是从由一个个小组件组合出来的,万丈高楼平地起。
    yizmaoaa
        29
    yizmaoaa  
       2019-08-29 10:43:18 +08:00
    参与开源项目
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   我们的愿景   ·   实用小工具   ·   3162 人在线   最高记录 6543   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 23ms · UTC 13:13 · PVG 21:13 · LAX 06:13 · JFK 09:13
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.