
八年前,我花了两周时间,做了一个掘金微信小程序。
当时,我把整个过程写成了《两周撸一个掘金微信小程序》。项目完成第一个比较完整的版本后,我又陆续做过几次更新,后来便停了下来。
没有郑重其事地说再见,也没有在哪一行代码后面写下"到此为止"。
只是某一次提交之后,下一次提交没有再来。
这一停,就是八年。
如今,这个小程序已经重新回到可以体验的状态。如果你想先看看它现在的样子,有以下几种体验方式:
- 原汁原味:拉取项目代码 github.com/fthux/jueji...,在微信开发者工具中预览,或真机开发版预览。
- h5 版本:查看由小程序转换成的 h5 版本 juejin.fthux.com/。
- 线上扫码:微信扫描二维码,或微信搜索掘金学习版,但是温馨提示:由于多次因社交原因拒审,目前线上的版本是比较老的版本,推荐上述方式体验。
- 观看小程序录屏:点击观看视频

被留在仓库里的八年
八年足以让一个移动应用完全换一种模样,也足以让一个曾经熟悉的项目变得陌生。
这些年里,我偶尔也会想起这个项目,但始终没有真正回来继续做。
旧版小程序就这样留在了仓库里:页面停在当年的掘金,代码停在当年的自己,README 里的截图也记录着那个时期的移动互联网。
项目停下后,我把仓库归档了。
GitHub 上的 Archived 像一张安静的封条。它没有删除任何代码,也没有抹去任何痕迹,只是告诉后来点进仓库的人:这个项目已经停在这里,不会再继续向前。
它没有消失,只是被留在了只读的过去。
仓库不会催促一个离开的开发者。那些没有完成的页面、已经失效的内容和落后于时代的界面,也不会主动发出声音。它们只是安静地待在提交记录里,等着某一天被重新打开,或者永远不再被打开。
最近,我又一次点进了这个项目。
八年后,我解除了仓库的归档。没有倒计时,也没有什么仪式,只是那个沉默许久的 Archived 标记终于消失了。仓库从只读的过去回到可以继续书写的今天,下一次提交也重新有了落下的位置。
熟悉的文件名还在,熟悉的页面也还在。只是当它重新运行起来,时间留下的痕迹一下子全部显现出来:有些内容已经无法正常出现,有些界面还保留着八年前的样子,而今天的稀土掘金,早已走出了很远。
我原本只想让它重新跑起来。
但看着屏幕上那个从旧代码里醒来的小程序,我改变了主意。
它需要的已经不再是一次修补,而是一次,
真正的重做。
让旧代码重新走到今天
今天的稀土掘金,早已不是当年的模样。
如果只是修补,旧项目或许能够再次运行,却依然只能停留在过去。于是,这次更新不再沿着旧版继续缝补,而是以当前稀土掘金 Android App 为参照,对小程序进行了一次完整重做。
过去留下的,是一个已经搭好轮廓、却没有完全走完的版本;这一次,只是沿着当年的起点,继续补上那些没能完成的部分。
页面被重新打开,布局被重新排列,缺失的内容被重新补上。首页、沸点、发现、课程和"我"重新出现在底部导航里,文章、话题、榜单、搜索与深色模式也回到了新的界面中。
这些功能不准备在这里逐项展开。它们更适合出现在手指滑过屏幕的过程里,而不是变成一张漫长的清单。
八年前,代码是从一个空目录开始生长的。
八年后,这次重做更像是把一座停工许久的房子重新点亮:保留它最初的名字,也让每一扇门重新通向今天。
下面是小程序录屏:
我并不想用这段视频证明小程序可以百分之百复制 App。它更像是一条清晰的分界线:屏幕的一边是今天的稀土掘金,另一边是这个沉默八年的项目终于追到今天的样子。
为什么还要回来?
因为我不想让它永远停在"有空再更新"。
开源项目很容易开始,也很容易在某一次提交后突然沉默。没有正式的告别,没有明确的终点,只是下一次更新迟迟没有到来。等回过神,仓库还在,时间却已经过去很多年。
这个项目来自我刚开始认真做微信小程序的时期。它记录的不只是当时的页面和代码,也记录着我那时怎样理解一个移动应用,怎样把看到的东西一点点做出来。
如今再看,当年的实现并不成熟。但我没有打算否定它。
如果没有八年前写下的第一行代码,今天也不会有一个可以重新出发的地方。旧版留下了问题,也留下了起点;这次重做,不过是隔着八年的时间,继续完成当时没有完成的事。
让这个项目重新走到今天,有时像是在整理一份旧代码,有时又像是两个相隔八年的版本在彼此回应。
旧版留下开始。
新版接着往前走。
仓库重新亮了起来
这次更新完成后,项目依然公开在 GitHub:
项目地址:github.com/fthux/jueji...
你可以查看源码、运行项目,也可以通过 Issue 反馈问题或提出建议。如果你愿意,也欢迎为项目点一个 Star。
如果你已经读到这里,依然可以通过以下几种方式来体验:
- 原汁原味:拉取项目代码 github.com/fthux/jueji...,在微信开发者工具中预览,或真机开发版预览。
- h5 版本:查看由小程序转换成的 h5 版本 juejin.fthux.com/。
- 线上扫码:微信扫描二维码,或微信搜索掘金学习版,但是温馨提示:由于多次因社交原因拒审,目前线上的版本是比较老的版本,推荐上述方式体验。
- 观看小程序录屏:点击观看视频

如果你读过八年前的那篇文章,可以再打开一次这个小程序,看看它现在的样子。
如果你第一次知道这个项目,也可以先看上面的录屏,再去 GitHub 浏览源码。
旧文章仍然留在这里:《两周撸一个掘金微信小程序》。新文章不会替代它。它们更像仓库里的两次提交,一前一后,隔着八年的时间,共同记录同一个项目。
在这个仓库之外
一个仓库重新亮起来时,我也想顺手把另外两扇门留在这里。
它们通向不同的问题,却都来自同一个简单的念头:把生活里遇到的不方便,认真做成可以使用的工具。
不必一次打开所有仓库。如果其中恰好有一个回应了你此刻的问题,那么它留在这里,也就有了意义。
写在最后
八年前,我在旧文章的最后写过一句:
我也是有人生梦想的人。
现在回头看,这句话有一点中二,却也很像当时的我。
那时的我花两周时间做出第一版,以为以后还有很多时间,可以慢慢补上所有没有完成的地方。结果那个"以后"绕了很远,直到八年后才重新回到这个仓库。
好在,晚并不等于不会到来。
重新编译,重新预览,重新打开那些沉默已久的页面。过去没有等来的下一次提交,终于出现在了今天。
项目没有永远停在八年前,旧文章也终于有了续篇。
代码仍然是代码,仓库仍然是仓库。但当一个被搁置八年的项目重新运行起来,冰冷的文件和提交记录之间,也会显出一点时间留下的温度。
这大概就是我最想分享的事情:
一个停了八年的开源项目,今天重新开始了。
项目可以重新开始,人生也是如此。那些曾经停下来的地方,并不一定是终点;只要愿意再次出发,它们也可以成为新的起点。
所以,我祝你:
早安,午安,晚安。
也祝你,一切都安。
往期推荐: