当前位置: 首页 > 科技观察

学完三个Java教程就不再犹豫了

时间:2023-03-22 00:13:48 科技观察

成人最大的自信就是自己有一技之长,这样生活才不会被动。从事测试开发岗位,需要精通一门编程语言,这是核心,是大招,是招牌技能。心里一直在Java和Python之间取舍,反复跳跃。》写在《2020年度总结,似乎没有什么大的长进,似乎也得到了一些收获》:》《Python编程,我不是没有编程基础,汇编语言、C语言、C++、数据结构、算法导论是大学必修课,我自己学过JavaScript和Java(大学有选修课)我没报班)和Golang,我有两个问题,一个是同学的挫败感让我害怕编程,另一个是就业方向太多,我觉得太多了,真的锤炼出来了,直到Python流行起来,我找到了一条适合自己的路,解决了我的两个问题,因为简单,所以很容易获得编程的成就感,虽然Python的生态是不是最好的,也不算太差。与其纠结来回,不如选择一条路走下去。精通Python,也许能给我带来工作中没有出现过的那种兴奋。“”写在《2021非正式年度总结》:“在任何行业都有一个金字塔原理,从下到上,门槛越高,人越少,但奖励越多。对于测试来说,功能测试人员无疑是最多的,而且那么自动化性能之类的就可以写代码了,写代码肯定是懂Python的人最多,懂Java的人少。除了上面提到的两位同事,听说他们拿高薪,我在招聘网站上看到高薪职位要求都是会Java的,我在TesterHome上还研究过一些大佬,这些大佬90%都懂Java,在中国Java程序员最多,自然会Java“测试会更受欢迎。忘了说了,那个去创业公司的同事,这家公司的创始人是阿里P10。”很显然,最近两三年都是在彷徨中度过的,不安的原因不外乎以下几点:1.Python容易,Java太难了;2.只懂Python就觉得差不多有意思了;3..一直没找到学习Java的方法,直到偶然遇到。Java官方教程:我花了2个星期,像看小说一样,迫不及待地一口气看完了这个教程。最震撼和反复出现的认知点是Java8大数据类型:byte、short、int、long、float、double、boolean、char,都是“小写”。Java中有严格的大小写约定。类名以大写字母开头,基本类型都有对应的包装类,为基本类型封装了更多的方法,比如Integer。还有2个特殊的小写关键字:void和array(数组)。大写的String其实是一个类,不是基本类型。联想一下Python的基本类型:Number(数字)、String(字符串)、List(列表)、Tuple(元组)、Set(集合)、Dictionary(字典),你就能明白为什么Python是“万物皆对象”.”这句话的意思就没有了,Python没有Java的“元类型”,Python的基本类型已经是一个“类维度”。所以Python变量就是它所指向的类的对象。小写字符如int()和Python中出现的str()其实都是“函数”,而不是基本类型。语言真的是相通的!过了这一点之后,很多之前卡在里面的概念就可以很自然的整合起来了。对象,类,接口,包,继承、集合、泛化、Lambda表达式、注解、异常等概念很容易被吃掉,最难理解的是Stream,以后在实践中慢慢掌握吧,另一个感触比较深的点是《Java的包管理机制》.它的命名是公司域名的倒写,比如com.jd+一级目录+二级目录+三级目录+等等,java提供了几个默认的包,比如java。郎。Java本身的很多类都在这个包中,并且已经被隐式导入,不需要单独导入。与Python不同的是,Python中的每个文件都是一个模块,必须导入其他文件中的对象;而在Java中,每个文件就是一个类,文件夹就是一个包。对于同一个包下的文件,如果想引用其他文件里面的类是不需要导入的。而且Java只有包的同级,父文件夹和子文件夹不是同一个包。也就是说,如果子文件夹中的类要引用父文件夹中的类,还是需要导入。了解了这一层之后,再看看公司的后台代码,就会清楚很多。所谓分层设计,必须要用到Java的包管理机制。SpringBoot官方教程看完了Java官方教程,就马不停蹄的刷了SpringBoot官方教程。说实话,体验很差。给我印象最深的是spring-boot-start以SpringBoot官方提供的打包库开头,以三方自定义库结尾。这个看pom.xml可以稍微看出来。下面很多知识点都是各种配置,再加上全是英文,非常难懂。然而,我却像吞枣一样彻底的经历了一遍。可能以后想起来,有点印象,可以帮忙检索一下。PS:后来发现SpringBoot本身更多的是约定而不是配置,有助于简化开发。真正要学习的框架是“Spring”。Java全栈知识体系这不是官方教程,是大佬整理的博客。建议大家关注Spring专栏下的内容。Spring、Framework|三个专栏下的内容全部看完了中间件和架构。大部分都跳过了,重点讲了Spring的演进过程,缓存,限流,降级熔断,负载均衡。有三大收获:“第一,Spring是由bean组成的”。Spring中的bean相当于功能组件,我们通过组装这些bean来实现一个系统应用。IOC容器就是用来存放这些bean的容器。IOC是一种控制反转。就是说我们不需要自己用new来创建bean,而是Spring会帮我们创建bean。将创建的bean注入到程序代码中称为依赖注入。有XML配置、代码配置、注解三种方式。了解底层逻辑后,再往上看就可以理解设计理念了。Spring的演变过程是:J2EE(Java到企业版)→Spring(SpringMVC是遵循MVC规范的Web开发框架)→SpringBoot(简化Spring开发)。“其次,接触Java,开阔眼界。”看架构专栏,有很多学习Python时无法理解的概念,比如缓存、限流、降级熔断、负载均衡、分布式系统、全局唯一ID、数据库Sharding等,这些是背-许多公司的终端技术。了解这些技术有助于更深入的测试。“第三,你要善于画画。”文章包含很多图片,流程图,结构图,序列图,架构图,各种图。还有淘宝、京东、闲鱼、美团等公司的案例分享文章,以及各种图片。由此可见,图表是报道中最具表现力的形式,这是社会共识。在快速浏览的过程中,我也会先看图片,再看文字。会画图,会写PPT是很重要的软技能。回忆一下左耳鼠标的话:“离开了Java的世界,基本上就是离开了架构的世界。注:我觉得Java适合架构应该是常识,但是评论里很多人很反对对此。。那我解释一下:首先,小项目什么语言都可以,喜欢用什么就用什么。然而,真正的企业级架构是不同的。不仅仅是RESTfulAPI或者RPC,还有各种配套设施和控制系统,比如:应用网关、服务发现、配置中心、健康检查、服务监控、服务治理(熔断、限流、幂等、重试、隔离,事务补偿),Tracing监控,SOA/ESB,CQRS,EDA...这些东西在非Java技术栈体系中很难看清全貌。Java强大的生态环境就是让你专注于更高层次的架构和业务。(不要以为就那么几个服务RPC,加个缓存,加个队列,就可以叫架构,那只是系统集成)”。“以【努力成为测试架构师】为目标,精通Java才是王道。”参考:Java官方教程https://dev.java/learn/SpringBoot官方教程https://docs.spring.io/spring-boot/docs/current/reference/htmlsingle/#getting-startedJava全栈知识体系https://pdai.tech/不要让自己“围墙”https://coolshell.cn/articles/20276.html