🏆作者简介:哪吒,CSDN2022博客之星Top1、CSDN2021博客之星Top2、多届新星计划导师✌、博客专家💪 ,专注Java硬核干货分享,立志做到Java赛道全网Top N。
🏆本文收录于Java基础教程系列(进阶篇),本专栏是针对大学生、初级Java工程师精心打造,针对Java生态,逐个击破,不断学习,打通Java技术栈。
🏆订阅后,可以阅读Java基础教程系列(进阶篇)中全部文章,包含Java基础、Java高并发、Spring、MySQL等Java进阶技术栈。
🏆还可以订阅其姐妹篇,Java基础教程系列,包含全部Java基础知识点、Java8新特性、Java集合、Java多线程、Java代码实例,理论结合实战,实现Java的轻松学习。
🏆哪吒多年工作总结:Java学习路线总结,搬砖工逆袭Java架构师。
🏆面试福音:10万字208道Java经典面试题总结(附答案)
我是一本书,一本独特的Java编程书。
我很厚,光是基础版加起来就有800页,这不能怪我,因为Java的基础知识非常庞大,要想掰开了揉碎了讲透不是件容易的事情。
创造我的主人非常厉害,他不但是一家公司的总裁,还发表过100多篇技术文章,他还是某个著名编程语言委员会的成员,有表决权的那种!
所以,他在书中夹杂了很多自己的“私货”,阐述自己对编程的想法和洞察。
没想到的是,这些闪闪发光的真知灼见给我带来了一点点的小麻烦。
这一天天气不错,我走出房间,摘掉口罩,坐在路边的长凳上晒太阳。
我掀开书本,让温暖的阳光抚摸一下每一章的文字。
这时候,《22天精通Java编程》吹着口哨走了过来,他身后还跟着好几个程序员,应该是他的忠实拥趸。
他瞥我了一眼,看到了我的第一章,顿时哈哈大笑起来。
“有没有搞错,我们第一章讲的都是下载JDK,安装JDK,设置JAVA_HOME和Path……” 他掀开自己的衣服,露出了第一章,“而你,居然讲什么是对象?抽象的历程!甚至扯到Lisp、Prolog和Smalltalk去了!”
他身后的几个小迷弟也跟着笑了起来,路过的几个程序员听到他的声音,也停下脚步,准备围观。
我有点不好意思,赶紧把第一章盖住:“Java是面向对象的语言,不讲面向对象讲什么?”
“应该讲封装、继承、多态啊!你看我,会用一些简单例子来展示extends、implements,大家很快就学会了!”
我稳住阵脚,反击道:“那些基本的语法我肯定也要讲啊,我还会讲组合和继承的区别,并且告诉大家什么时候用组合、什么时候用继承,各自的优缺点。防止大家勿入歧途,疯狂使用继承,这不是更有价值吗?”
“还有,在讲接口的时候,不仅讨论了接口的功能和大量新特性,如private接口,密封接口等,还和工厂模式关联,提出了一个非常有价值的问题:到底什么时候使用接口?”
“这……你讲得似乎有点太多了吧?” 《22天精通Java编程》有点儿底气不足。
路边有个胖胖的程序员,一直在认真地看我身上的这段话:
许多人受到了这种诱惑,只要有可能就创建接口和工厂。这里的逻辑似乎是,你可能会用到不同的实现,因此应该始终添加这层抽象。这是一种过早的设计优化。
任何抽象都应该由真正的需求来驱动。接口应该是在必要时用来重构的东西,而不是在任何地方都多加一个间接层级,进而带来额外的复杂性。这种额外的复杂性影响很大,如果你让某人在克服这种复杂性上花费时间,而他最终却发现你添加接口只不过是为了‘以防万一’……”
胖程序员叫道:“我去,这讲得很有道理啊,我就是喜欢弄接口,后来发现根本没必要。”
《22天精通Java编程》看到我居然来了同盟军,摇摇头:“你说的这些恐怕小白们理解不了!”
这时候,《轻松学Java》牵着一条狗溜达了过来,拍了拍《22天精通Java编程》的肩膀:“兄弟,发生了什么事情?”
《22天精通Java编程》说道:“这儿出现了一本晒太阳的‘怪’书,你看他总是讲很多我们都不讲的东西!我感觉他是来砸场子来的。”
《轻松学Java》盯着我看了半天:“乖乖,泛型这一块儿我们都只讲基本的语法,你还深入讲Java所用的擦除法带来的问题,以及相关解决方案,带出了‘自限定’,‘参数协变性’……”
《22天精通Java编程》接着说:“不仅如此,他还讲什么Mixin!用C++、Python、Go 等语言展示了Mixin的实现,并且和Java的装饰器模式、动态代理实现的“Mixin”做了对比!程序员们把Java学会都很不容易,他还给大家增加负担!”
“看来编程语言的双减政策很有必要!” 《轻松学Java》表示同意。
旁边几个刚刚学习Java的程序员居然点头表示附和,这让我有点心酸。
正在这时,一个头发稀疏、戴眼镜的老程序员又对我表示了支持:“不对不对,初级程序员也许不需要,但是想要进阶,得有更广阔的视野,得理解编程的思想,学会编程,而不仅仅是学会Java。”
“你们看,这本书跳出了‘简单’的Lambda表达式,延伸到了闭包、函数组合、科里化、部分求值……这才是全面的函数式编程嘛!你们俩能讲解到这种程度吗?”
面对这个问题,《22天精通Java编程》和《轻松学Java》沉默了。
“其实,理解这些以后,再去看别的编程语言,就会发现思想都是想通的,只是表现形式不同——当然,Java的形式要啰嗦一些。”这位头发稀疏的程序员继续给我摇旗呐喊,我心里都有点儿感激他了。
看来还是老家伙识货啊!
《22天精通Java编程》还不太服气,掀开我“代码校验”那一章,展示给大家:“大家伙儿瞧瞧,一个Java书,居然不务正业,讲什么断言、基于契约的编程(前置条件、后置条件、不变项),单元测试、TDD、基准测试、代码审查、重构、持续集成……”
围观的人群窃窃私语:“基于契约的编程?我好像都没听说过……”
老程序说:“这是人家作者用心良苦,希望每个人都成为真正的程序员,而不仅仅是一个coder,把代码写出来是一回事,写对、写好,容易读、容易维护是更高一级的要求,这也是程序员应该具备的能力。”
程序员们纷纷点头。
《轻松学Java》还不服气,翻到了我的最后一章:“看看,这里居然讲设计模式,你一个Java书,这不是抢别人家的生意吗?完全是恶意竞争!”
有了大家的支持,我的底气也足了:“我和你们不一样,我不仅讲Java,我还讲编程思想,为什么不能讲设计模式?在最后的‘模式重构’,有一个漂亮的例子,以一种逐渐演进的方式来应用设计模式,先选取一种设计用于最初的方案,然后验证,随用尝试更多的设计模式来解决问题,在不断寻找解决方案的过程中,最终体现出设计模式的精髓思想:‘发现变化,并且隔离变化’,程序员看完,绝对会大呼过瘾!”。
围观的程序员似乎被说服了,有几个甚至鼓起掌来:“说得好!”
还有人小声说道:“我看他怎么有点眼熟?这难道是传说中的‘Java圣经’?”
我感觉不能再隐藏了,我站起身来,抖了抖身体,露出了漂亮的封面。
后记:我现在还记得上大学时,宿舍的兄弟捧着一本大厚书《Java编程思想》看,刚开始我还瞧不上,主要是第一章看起来太累,哈哈。
当时确实没有意识到这本书的巨大价值和它在Java界的地位,过了几年以后,再翻起它才明白错过了一座宝藏:这本书不但讲语法和实践,还讲背后的编程思想。
不过,遗憾的是这本书最后的一个版本是2007年的第四版,距今已经有15年了。
漫长的等待以后,Bruce Eckel才推出这本最新的Java力作《ON JAVA 中文版》,除了保留原作的写作风格之外,还增加了函数式编程、设计模式、代码校验等新内容,也删除了我讨厌的Java GUI编程,继续保持了超高水准。英文版豆瓣评分9.3,中文版出来后,评分在9分以上肯定是毫无悬念了。
学会编程,而不仅仅学会Java,和大家共勉。
文章来源:https://www.toymoban.com/news/detail-429472.html
🏆本文收录于Java基础教程系列(进阶篇),本专栏是针对大学生、初级Java工程师精心打造,针对Java生态,逐个击破,不断学习,打通Java技术栈。
🏆订阅后,可以阅读Java基础教程系列(进阶篇)中全部文章,包含Java基础、Java高并发、Spring、MySQL等Java进阶技术栈。
🏆还可以订阅其姐妹篇,Java基础教程系列,包含全部Java基础知识点、Java8新特性、Java集合、Java多线程、Java代码实例,理论结合实战,实现Java的轻松学习。
🏆哪吒多年工作总结:Java学习路线总结,搬砖工逆袭Java架构师。
🏆面试福音:10万字208道Java经典面试题总结(附答案)
文章来源地址https://www.toymoban.com/news/detail-429472.html
到了这里,关于作为一本书,“卷”赢竞争对手的最佳姿势是?的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!