zengyufei
58 天前
我们来溯源一下源码的设计是如何来的。
源码有啥,有算法、有设计模式、有封装、抽象、继承、多态,大概组成结构是这样子的。
一开始你只会 java 代码。
假设你是一个 java 基础通关的初学者,让你看源码,能得到什么结果?天书吧,我就是这样过来的。
那我是否该深耕源码获得下探深度的进步呢?答案是肯定的,但是我无法主动去做。
从他人分析源码那博文才知道,原来源码有那么多算法和设计模式,这些都属于抽象范畴,怪不得一开始我看不懂。
如果把算法和设计模式单独拎出来,其实可以跟 java 无关,可以中立的通用的东西,能应用到其他编程语言去,这是否意味着需要投入大量时间进行专项学习和实践,如同‘三年练习生’般持续磨砺?。
非系统性的长时间积累了不少知识点,我变得也能看得懂源码了,但是细节记不住,哪有那么多记性,天天忙着生活和 CURD 。
回过头来看,发现 java 就是一门编程语言,各种好用的库用了不同的算法和结构,封装成了不同的生态,兜兜转转,我似乎也只停留在应用层面。。
但是我知道我大概了解源码里部分做法,就跟做一道菜,需要备什么原料,用什么火力,用什么锅,如何炒制;我吃的好好的,让我去复现做出来,也可以,但没法完全复制,细节太多忽略的。只是了解知识点的我能干嘛,可以在工作中探索应用边界,可以用去面试,用去吹牛逼。
java 是我花了时间和代价学习的主力编程语言,我也想下探技术的深度,但是 java 在应用层面太多花活了,什么奇淫技巧,什么 lambda 新写法,什么新流行技术栈脚手架比较吸引我,我便去研究它们去了,研究它们得到的成就感比看源码多得多,也爽得多。
回头看,我已经掌握了不少抽象概念知识,发现源码并不神秘,但是也不好阅读,如果你把算法和设计模式了解了,源码大概就是套“公式”那么简单,但是你需要的是从源码分离出抽象的“公式”,那就需要学习一下应用于 java 但不是 java 独有的东西了。
脚手架也是,如果你研究众多脚手架,你会发现,大家其实也就是套“公式”,简单说就是 ctrl+c/v ,复制粘贴改改就能用,需要的是花时间而已。
AI 打破了固有的局面,以前我们追求的设计模式、封装抽象、代码整洁、注释完善,在现在这个时代好像都不值一提,现在写代码,看着 AI 一行行给你生成好,比你写得都好,默默纪念逝去的头发吧。
AI 的出现给我们带来更多可能性,终身学习的对象和终身的劳工,问必答,叫必做,我们要做的是,问它,学习它(成为它?)、纠正它。
最后寄言:
无论什么年限,记事、记错以及不间断写 demo ,量变积累质变。