我的 IDE 早就记性不好,每次点开那个叫 Eclipse 的界面,感觉像是去逛了一个没有地图的迷宫。我拼命给项目打标签,把 Maven 库放一边,把本地 Gradle 的任务给干了,最终把自己搞晕在四个不同的世界中间,像是一个只会说“我去我想去”的聋子。

那时候我认定,项目管理这事儿,就像是在人生里与此同时跟几家都信得过的人进食,还得指望他们记住你是哪位,但结局往往是大家各自忙自己的,最终连个正式的长桌都摆不下。 我想,这大约就是为啥后来我学会了 Git,就连后来又回到 IntelliJ IDEA。出于那个老古董 Eclipse 忒喜爱当个“保姆”,它恨不得把你所有依赖的库都拽上床,哪怕你根本用不上,结局就是你的机器跑得特别慢,就像一辆开了二十年没如何保养的老拖拉机,油门踩下去,引擎冒黑烟,反而跑得更快。而目前的工具,像 VS Code 要么 Spring Initializr,它们更像是个甩手柜,让你自己拿着钥匙去敲开世界的大门,只要门开着,人就能进去,不用管里面是不是乱七八糟的。 记得第一次项目启动的时候,我就在想,为啥别人一打开项目就能让你直接写代码,而我的项目打开得就像在找丢失的家园。

那时候我总认定,最好的开发环境应当是那种,你站在那儿,电脑自动把你需求的文件夹打开,要是你没买,它自动给你买下来,然后直接告诉你“好了,目前能够干活了”。但我发现,哪怕我买了最好的 GPG 密钥,最好的服务器,还是得先学会如何区分哪一个是确实,哪一个是假的。 那时候我试过硬塞各种开源的 IDEA 版本上去,结局发现它们之间的兼容性就像两个不同品牌的玩具车,别看都能跑,但拼车的时候时常卡在那儿,还得手动挂挡。我就干脆把精力放在找那个最稳的本地 Maven 仓库上了。我建了一个仓库,把那会儿用过的几个经典库都放上去,然后自己在里面慢慢补全那些缺失的索引。

这过程挺枯燥的,就像是在整理旧书柜,得先把那些落灰的旧书找出来,洗一洗,再放回架子。但结局呢?当我终于把那个关键的依赖包从那个烂泥坑里捞出来时,我发现它不是那种“务必转存”的库,而是一个能直接跑通我那个旧样子的“不死鸟”。

那一刻,我就连认定,整个团队都在用同一个版本在战斗,而不是在各自为政。 我把它当成一个贼关键的里程碑。

那会儿总认定,技术文档越详细越好,代码注释越多越好,就像给房子贴了最厚的一层墙纸,别看好看,但墙缝里的沙子还是漏风。

后来我发现,真正好用的工具,往往是那些“仿佛没啥用”的功能,它们在你真正缺它的时候,才像一阵风一样吹进你心里。

比方说,我用了 IntelliJ 的插件,专门用来管理那个老古董 Eclipse 里那些死活不走的库。

看着那些库一个个在我这破机器上消亡,我心里反差挺大,感觉像是自己在处理一场大型的人际误会,最终哪位也没输,哪位也没挂,只是大家都活下来了。 那时候我也迷茫过,认定为啥我们要如此折腾这个工具链。

后来才明白,开发本质上就是一个不断舍弃的过程。每一个新工具的出现,实际上都是为了帮我们去掉那些累赘的包袱。就像你学步行,起初会跌跌撞撞,后来才学会如何规划步子。目前的 Eclipse 导入体验,别看看起来还是老样子,但起码,它不再强迫你为了某个库去折腾半天,只要你的意志力够强,要么运气够好,它就能像个懂你的老哥们儿一样,直接把那件东西推到你面前。 我当时就忍不住在心里给目前的工具点个赞。它不强迫你,不给你毛病,不跟你讲大道理,只是默默地把你需求的东西给你送来,然后等你需求的时候,再问你一声:“嘿,需求帮忙吗?”这时候,你只需求点头,说一句“不用了,我自己能行”,然后持续写代码。

那一刻,我认定整个世界的逻辑终于理通了,不再需求去解释为啥不能做啥,出于答案就在你的代码旁边,就在你刚刚敲下的那一行字里。 实际上,好的工具应当像空气一样无处不在,又像是空气一样隐形。它不需求你时刻关切,不需求你你去特意寻找,它只是在那里,随时预备着,当你真正需求它的时候,它就能立马响应。就像我那个 Maven 仓库,别看它是死的,但它能在任何一台机器上跑通我的代码,就像那个地基一样,不管你如何在上面盖房子,它都稳如泰山。 目前的开发环境,确实比那会儿好忒多了,起码在这个特定的节点上,我不再需求为了那些复杂的依赖和版本冲突而焦头烂额。我就连认定,那种曾经让我头秃的“导入多个项目”的焦虑感,实际上已经 faded away 了,就像一块石头扔进河里,别看水面上还有待会儿涟漪,但挺快它就浑水摸鱼了,只剩下一片平静的湖面。我就在那片平静里,持续写代码,认定一切都刚刚好。