首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >等了15年,这本编程巨著终于出版了!

等了15年,这本编程巨著终于出版了!

作者头像
kunge
发布2022-05-17 12:12:10
2950
发布2022-05-17 12:12:10
举报
文章被收录于专栏:码海码海

我是一本书,一本独特的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,和大家共勉。

本文参与 腾讯云自媒体分享计划,分享自微信公众号。
原始发表:2022-04-27,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 码海 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
相关产品与服务
持续集成
CODING 持续集成(CODING Continuous Integration,CODING-CI)全面兼容 Jenkins 的持续集成服务,支持 Java、Python、NodeJS 等所有主流语言,并且支持 Docker 镜像的构建。图形化编排,高配集群多 Job 并行构建全面提速您的构建任务。支持主流的 Git 代码仓库,包括 CODING 代码托管、GitHub、GitLab 等。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档