美文网首页
目前 Java 后端有哪些不是很有必要去学的?

目前 Java 后端有哪些不是很有必要去学的?

作者: 346459d313c0 | 来源:发表于2020-05-14 18:22 被阅读0次

    1、学什么?

    就目前而言。2020年。

    java基础语法,Spring boot官网,mybaits官网,就三个,其他都不要学,因为不是必须的。

    zookeeper不要学,JSP不要学,底层servlet不要学,netty不要学,jvm也不要学,底层原理也不要学,多线程一类的也“先”不要去学,另外各种设计模式也先不要去学,然后一旦有人谈起架构,马上捂住耳朵,“先”不要去听,这些都以后再说吧。

    其他我没提到的,反正也不要去学。就我提到的那三个,你学精了能做产品了,光是文档看下来做个企业级demo都需要好几个月,经过一轮实战的领悟,把开发到发布到服务器一条流程走通,相关所需要的工具都涉及到了(git/maven/linux/shell/json/xml/jdbc等等),起码1-2年吧,请问哪里有时间去学那些濒临淘汰的框架和不是底层的底层。

    总之,培训学校在教的框架一概不学,别跟我说别人都在学你不学,要相信你是科班出身本来就很强,不用去学那些花架子。

    不要去学别的,天知道你会进入什么样的公司,公司里有前辈在用你偷师学一下。

    你还在学校,可能还在怀疑,我给你举一个例子吧。

    netty不要去学,因为这东西诞生的年代久远,那时候消息队列产品还没普及,但是现在呢?消息队列产品已经不再奢侈了,你都无需亲自动手去写一些网络通信的代码。还有一些框架里面虽然用netty,已经封装好了,比如dubbo。它就是个框架,一些高端的框架也是框架套框架。反正他不是原理,也不常用,你要学原理去看一下socket套接字,真要用看下文档边学边用。

    另外多线程什么阻塞非阻塞的、jvm和servlet这类底层原理性的东西为什么也不要学?因为你是科班出身,操作系统原理和web应用程序原理都学过的话,没必要再为java单独啃一种原理,说白了这些所谓的技术都是在重复造操作系统的轮子而已。死磕多线程主要存在于10年前单机应用的年代,想提高单台服务器多核CPU利用率。现在这个时代,服务器端已经从单台服务器升级到了云计算虚拟化技术的时代了,再经历过了微服务架构的时代,纠结线程的不多了,更多关注进程,你看吧,绕了一圈又回到操作系统了。

    java已经有太多东西被淘汰了,什么ssh、ejb、swing、j2ee、j2me,当年精通这些的人,现在不知道在哪里。

    作为一个专业的程序员,这些东西如有需要刷题应付面试即可,老实人才正儿八经地去研究这些不上不下的东西(上指服务器端架构设计理念,下指真正的原理)。

    2、开发流程是怎样的?

    你是科班出身,开发流程见软件工程。

    需求、设计、编码、测试、部署。。。。。。

    不想把整本书贴一遍,白话一点吧。

    首先你确定采用面向对象的设计,还是结构化设计。

    比如我们先采用结构化设计好了,你把需求整理出来,然后需求能和数据流图对应上,不许画什么流程图。

    那么我们如果采用面向对象设计的话呢?你把需求转化成UML图,各种UML图,然后UML图要求和你的工程、代码能对应起来,如果程序跑起来了,然后代码和图对应不起来,说明你的设计肯定有问题的。

    写出一个能运行的程序很容易,难的是程序可测试性、重用性、可维护性。

    我们都知道java是一种面向对象语言,圈内喜欢讲高内聚、低耦合,讲重构,重用,那么问题来了,假设一个类被多处引用,如何保证你修改了这个类后程序按照你预期的运行呢?

    你会设计什么样的测试用例去测试它呢?

    文档不管多少,至少要和实际的东西对应起来,人员流动这么频繁的行业,如果做不到,谈什么可维护性。

    然后就是发布到服务器,后续运维就不描述了。

    最后,你这些问题都考虑到并能解决了,你就能了解到要设计并开发出一套好的系统是如此艰难。还有好多点没讲到,有时候金矿就在你身边,总之好好学正规课本上的东西,比外面那些有的没得强太多了。

    相关文章

      网友评论

          本文标题:目前 Java 后端有哪些不是很有必要去学的?

          本文链接:https://www.haomeiwen.com/subject/cmdtohtx.html