这个网站从最初的一页个人介绍,一步步长成了现在的样子:一个入口门户、一份自我介绍、一张可交互的校园地图,还有这个刚出生的博客。
写这篇文章,是想把整个过程记录下来 —— 尤其是那些不顺利的地方。对别人也许是经验,对自己是一份纪念。
起点:一页个人介绍
网站最早只是一个单页作品集,用 React + Vite 搭建,深色背景,讲我的故事:数学、摄影、围棋,还有那些仍在展开的方向。
它花了我很多心思,但回头看,真正让我学到东西的,是后来不断"修它"的过程。
第一次优化:让网站变快
第一批优化全是"看不见的":
- 把六张摄影作品从 JPG 转成 WebP,体积减了将近一半,画质肉眼无差;
- 清理了十代设计迭代留下的死代码 —— 样式表瘦身了四分之一;
- 删除了一批写了却从没用上的组件。
做完这些,网站长得一模一样,但更快、更干净了。我当时意识到:优化的最高境界,是用户完全察觉不到。
校园地图:这个项目里最折腾的部分
地图功能是后来加的最大的一个。过程值得单独记一笔:
拿到官方地图 PDF 后,我发现它是矢量文件 —— 地图上的文字标注是真实文本。于是我没有用 OCR 猜,而是直接解析 PDF 的文字层,把 42 个地标连坐标一起提取了出来。
然后就是整个项目里最难忘的一个 bug:所有标记在纵向上被翻转了。原因藏得很深 —— 地图引擎 Leaflet 的坐标轴方向和图片像素轴方向相反。我为了找它,绕了很多弯路:校准坐标、怀疑视觉模型、反复截图对比……最后是靠读取页面里标记元素的实际渲染坐标,才把问题钉死。
教训很朴素:当"所有东西都差一点点"的时候,多半是坐标系之类的基础假设错了,而不是细节问题。
云端备注:让地图变成工具
地图不只是展示,我还想要它能用:标注地点、记食堂饭菜、多设备同步。
于是加了一个云端存储:备注存在云数据库里,读取公开、写入需要密码,密码在服务端校验。现在我在任何设备打开地图,都能看到同一份备注,解锁后随手记点什么。
门户与博客:把一切串起来
最后,把个人介绍、校园地图、晚霞实验室和博客,统一成了一个门户首页。
这就是你现在看到的样子。
接下来
博客会记录学习技术、探索研究的过程,也会写点摄影和户外。不保证更新频率,但保证每篇都是真的。
先把这一步走好。
