这一页与教程的实际内容没有什么关联,若不想看可以跳过。
为什么要写这个教程
写这个教程大多还是因为网络上或是书上现有的教程我自己看着很难受吧……
现在的教程大多都是写完了就不更新了,甚至本来写的内容就是从更旧的教程搬来的。这导致了很多地方是 非常旧 但 现在还能以极其阴间的方式用 的技术/资源,或是 非常旧 且 现在已经没法用了 的技术/资源,这种内容我个人是非常反感的。
举个例子,当你在 Java 8+ 上面用了一个旧教程中的 Signal 类,然而却发现死活编译不过,而教程中是完全能编译过的,当你费心费力找遍全网之后,才发现这个类在 JDK 8 已经被禁用了(原因是 Oracle 的智障行为,想了解请自行查找相关资料),这时的你应该就有我的感受了。
Java 的 Signal 类就是典型的“现在还能以极其阴间的方式用”的东西,它被 JDK 从源码级别禁用了,但还可以利用反射机制调用,现在很多框架/依赖库什么的都还是靠这种方式活着的。
所以这个教程就诞生了,我的目标是让它随着技术发展一直更新下去,做一个不过时的教程。
技术栈的更新
现在的技术栈更新速度非常快。举个例子,从 2000 年开始,短短 20 多年的时间,动态 Web 技术就从 Java Applet 本地执行发展到了 ActiveX / Flash 之类的浏览器代理执行,再到现在以 JavaScript 为主的一系列生态。技术栈的发展如此之快,而很多入门教程都没有跟着发展,导致现在很多萌新入门要走许多弯路(包括我 Java 入门时也是遇到各种问题)。
于是我就想让 Coffee Tutorial 成为一个始终呈现较新技术栈的入门教程。
但是,基于其他教程改写的方式难以跟进这种发展,于是只有从头重写。当然重写也有其他的好处,一个比较大的原因是不需要去从头整理和顺承另一个教程的思路,这在一定程度上是节省时间的。
关于 Kotlin 语言
Kotlin 是一个基于 JVM 的新时代语言,有着对 Java 几乎完美的兼容,各种技术和资源也都很新,但这里不建议用它入门。
原因是 Kotlin 是个生产力语言,在设计上考虑了项目开发中的很多实际问题(如代码复用率、开发复杂度、架构可更改程度等等),其特性远比大多数人想象中的复杂。如果用 Java 做对比,Kotlin 的语言特性大概比 5 个 Java 还要多,行内俗称“高糖”,如果入门直接用 Kotlin 的话可能会“得糖尿病”。
因此这个教程才用了相对比较简单的 Java ,其具有纯面向对象的特性,同时又不失强大的功能。
—— Maxel Black 写于 2022/04/27 (博客原文)
最后,任何人都可能会出错,尽管这个教程在每页完成之后都会重新核对,但也可能有未发现的错误。如有问题,欢迎在 GitHub 仓库中提交 issue 提出这个问题,感谢大家支持!
(诶,是不是忘了什么)
就在下面 ↓↓↓