当前位置: 首页 > 后端技术 > Java

《Thinking In Java》作者:不要使用并发!

时间:2023-04-01 16:28:23 Java

前言今天纯粹是带大家看书~最近工作之余特地买了回来一本我最喜欢的作者《On Java》的新书,作者是我的老朋友BruceEcker,在Java领域很著名的。你可能没有听过他的名字,但你很有可能听过他的另一本书《Thinking In Java》。我想很多Java工程师都读过这本书。可以说是Java编程思想的良心之作。虽然布鲁斯是我的老朋友,但我不得不抱怨。看完《On Java》后,我普遍认为不如《Thinking In Java》。这可能和写小说一样。变老了。我认识布鲁斯很多年了。他是一个幽默的人。他经常在书中直言某种编程语言的垃圾,同时对这门语言的未来做了一点展望。他是一个非常中肯的典型直男节目。猿。最后但同样重要的是,我认识他,但他不认识我。文中重点介绍了我比较感兴趣的并发编程,想知道这位大佬对现在的Java并发编程有没有新的看法和见解。和我预料的一样,他没有说什么重要的事情,但他似乎又说了一遍,带着一种批判的抱怨的语气,表明了他对Java并发编程的好恶之处。所以我画了一些我觉得有意思的地方分享给大家,看看Java资深高手是怎么理解并发编程的。1.大哥的并发定律其实看到作者开发的这4条定律的时候,我还是挺惊讶的。第一句话是重点,不要使用并发。仔细一想,好像是对的……再想一想,感同身受……终于回想一下自己这些年参与的项目……哇,好有道理啊!接下来的三项基本上是大纲,下面的内容就是对这几项的解释。2、你这里埋下的隐患,就是对第2、3项的具体解释,我觉得有些话有点啰嗦。我画了一句对程序员来说比较重要的一句话。你可以很容易地编写一个看起来工作正常但实际上有问题的并发程序。当你看到这句话的时候,是不是开始默默的打开你的IDEA,然后查看你提交的代码?别看,你是不是放的炸弹太少了?你能看到花吗?看作者最后一句话:你的问题只有在最罕见的条件满足时才会暴露自己。可以说这里的大部分同事都去隔壁公司上班了。也许之前公司的新同事会不知不觉中悄悄踩到你埋下的地雷,被炸得粉身碎骨。新公司也是在踩别人的地雷,出来混也是要还的。3、不要否认自己就是这种人。当我看到这个时,我忍不住吻了布鲁斯。他愉快地描述了我在工作中一直有的莫名其妙的烦躁,因为你总是遇到这样的人,同时很难发现你是不是这样的人。在工作的前3年,我实际上如履薄冰。感觉自己什么都学会了,但是到了公司才发现自己什么都不会。我以克己的精神完成了别人布置的任务。直到工作了5年,我才恍然大悟,我明白我在做什么,接下来我想学习哪个方向,以及如何将我之前学过的那么多东西联系起来。这是通任督二脉的满足感。工作了8年,才真正开始重新审视Java语言。我莫名地对以前厌倦的Java基础产生了兴趣。一条腿进入Java领域的意识。同时,在工作中,也会对很多能力一般,但在交际上偏执的同事产生抵触情绪。有时候我觉得这就是大人看小孩子闹脾气的感觉。这只有在工作多年后才会发生。作者很准确地阐述了这样的解释,我无法描述。同样的,我想,在成长的过程中,我一定成为了别人眼中高期望低能力的人。在这里可以跟大家分享的经验是,在工作中多学习少争论,多和有权势的人走近,虚心学习一切。长此以往,你的进步会很快。这不是你可以在网上学到的。明白了,一定是在上班。4.Java前辈有过的想法。为什么画在这里呢,因为很多Java资深的一定有过类似的想法,就是发现Java并不擅长并发编程,其他语言能不能做到,而Java只做他擅长的.至少我之前想过,但实际上,我觉得是异想天开,尤其是在工作中,基本上是团队开发,这种想法几乎已经过去了,同时引入了一个专门的编程用于实现某个领域的语言甚至系统都是得不偿失的。毕竟Java不擅长但是成熟了。有《Java千亿级高并发解决方案》、《Java万亿级电商实战》等N种鬼物可以用一辈子。而你苦苦学习之后,却发现马尔德一无是处,就像你学了《九阴真经》,以为自己可以成为武林领袖,结果却进了铁匠铺,而铁匠铺老板并没有想听听你的废话。让你每天加班多玩几把武器。我还在图中画了一个圆圈。我想很多人应该都知道这门语言。挺有名的,但是在中国不是很流行。这里面有编程历史因素。其实还有一种语言挺适合的,而且最近几年很流行。我想你已经猜到了。我觉得5年+的Java工程师都应该关注甚至学习一下。5.我同意老板的意见。这是接近尾声的部分,也是作者惯用的文笔。发泄完情绪,他开始夸赞Java的新版本,典型的PUA。但不得不说,我也认为Java8是一个革命性的版本。在这个版本发布之前,作为Java工程师,你想都不敢想它敢这么干。正如布鲁斯在书中所说,这是史诗般的魔法。.你可以在Java8版本中找到一些其他语言的影子。重要的是这个版本为Java加油,为后续版本提供了活力。Java17是官方长期支持的非常重要的版本之一。你可以找到其他框架来支持它。比如SpringBoot3只支持Java17,而Jenkins也宣布在新版本中放弃Java8,团队推荐Java17。IDEA后续的新版本也有可能放弃Java8。这明明是一个有利人脉的小圈子,但是对于Java本身的发展来说并不是坏事。所以Java8的核心技术最应该学习。如果你还完全不懂,那就赶快学习吧。我认为这是后续版本的基础。Lambada表达式和流就不用说了。它们是Java8版本的核心技术,CompletableFuture作为Java8并发编程最大的改进,需要花时间好好学习,这本书作者也有提到,后面专门用了很大一章来介绍CompletableFuture。虽然笔者一直强调不要使用并发,但是在Java8的并发编程工具上花了不少时间。我个人认为他更多的是一种好奇心,但是我们在采访中经常会问到这个工具,看看大佬对工具的理解还是很有用的。总结《On Java》这本书是诚实的,我觉得作者的《Thinking In Java》写得不太好,这可能有很多原因。先说说我觉得不好的主要感受吧。第一,有些地方翻译不好,会给大家带来困惑。第二,作者给出的一些案例很有自己的风格,我觉得例子不是那么通俗易懂。理解。不过总体来说还是值得一看的,尤其是他中间穿插了很多和C/C++、GO等其他语言的对比,也包括了自己对Java的理解,尤其是一些编程思路非常直白,并最终给出了各种近70条编程指南,我认为对于初学者在以后的工作中树立编程思路很有用。作者的文字中弥漫着浓浓的不推荐使用并发编程的味道。我觉得是他多年工作的经验,大家在以后的工作中不妨多多学习一下这位大佬的思维。嗯,今天就带你看了这本书,你看得开心吗?我的原创文章纯属手写。如果觉得有一点帮助,请点个赞加收藏吧~我一直在分享自己在工作中的感悟、经验和实践案例。喜欢的话也可以进入个人主页关注哦~