最近的随想
关于博客
- 博客应该还有很多优化的空间,像是有些已知的bug,还有文章的基于tag搜索。不过从目前来看不算是非常影响使用体验的部分,所以也没有十分的必要去更新,修复(再说了也没人看这玩意,纯粹是我自嗨用的hhh)。
- 博客开发最大的收货就是对于nuxt这个框架的理解吧。最开始本来打算直接用现有的像是WordPress或者有个基于vite的叫啥的框架搭建博客,但是那些框架搭建的博客说到底就是个静态网站,所谓的使用md/mdx写博客似乎在编译时直接就搞成静态资源了,反正就是SSG(感觉说了很多废话)。这和我心里预期的: 可以在任何设备编写文章的博客还是有所差距。所以最后选择从头搭建一个。
- 博客的部署上之前存在部署打包后服务端数据库初始化相关函数报错的问题,后面定位到是better-sqlite3在install时会缓存使用(不知道这样说是否准确)一个预构建的二进制文件,猜测是用于加速sqlite数据库操作,而这个文件是根据当前开发环境的操作系统和处理器架构缓存的。解决方案也十分直接:去他们仓库下载linux-amd64版本的二进制文件,直接放在项目中,在github action的项目构建前用我们需要版本的二进制文件替换掉node_modules中的文件。最后测试下来没问题了。
- 其实一直觉得现在文章那里的实现有所欠缺。目前的实现是后端获取md数据,前端先使用markdown-it渲染成html文档流字符串,再使用自制html2vnode对于部分html标签进行个性化渲染(比如对于img标签,用el-image加上一些操作实现多图队列浏览)。后来想想markdown-it这一步是不是应该在文章编辑这一步就实现啊,上传的时候直接上传html文档流,这样文章那里的ssr也好做,不用再使用骨架掩盖加载,甚至能少加载markdown-it。如果未来有机会就去实现一下吧。
- 更新:上面渲染相关的内容刚刚已经实现了,但是因为疏忽把数据搞炸了(仅仅保存html的数据导致所有的文章md数据丢失),现在新开了一个表,更新一下所有文章。
- cdn效果有点差话说,http3有问题就算了,gzip都有问题,果然便宜没好东西。。。
- 博客的图片上传是否可以在上传前用upng.js库对图片进行压缩呢,感觉理论上很可行呢。
- 更新:upng.js效果很差,对于很多图片反而会增大体积,不过又发现一个库compressorjs效果很好。已经使用这个库了,在文章编辑上传图片时会自动有损压缩图片,大概能降低50%左右的大小,对于我这个小水管vps很友好。效果测试:
- 更新:compressor.js的压缩是通过canvas.toBlob实现的,感觉也可以不使用这个库了哈哈。直接写也就几行,还能节省30kb。
关于最近的学习
- 对于nuxt的水合相关的掌握还是不够熟练,还没能更加彻底的发挥这个框架的能力。不过博客还是让我对nuxt框架的了解有了较为长足的长进。希望以后用的上哈哈。
- 刚刚优化了文章界面的一些处理,nuxt不能用传统的那种SPA的思想去开发,像是useLazyFetch这样的功能很大程度可以提升页面的展示效果(主要在缓存数据之类的方向,可以优化很多的骨架展示)。
- 最近对于音视频方向的学习可以说几乎没有,为了毕设全都去做些工作量方向的事情,毕设结束以后又去搞博客了。话虽如此,希望工作以后能够尽快适应吧。
- 还剩下几天,想放空自己一下。过两天就毕业了,心情挺复杂,希望未来安好。
关于AI
- 最近写代码偶尔偶尔也会用上AI辅助。虽然AI笨笨的,写出来以后得看一遍才放心,各种bug以及不符合预期的东西也还是要自己修改,但总归还是很大程度上提升了开发效率,特别是在那种所谓重复劳动的领域。
- 很多人说的“程序员做开源就是砸自己饭碗”,AI辅助编程代替人类与这种说法实际上有些异曲同工。但是AI实际上也只是一种几乎完全有益的,提高开发效率,甚至能用来辅助学习的工具,本身并不是一种“恶”。所谓的砸饭碗也只是人类社会关系性干预后导致的产物。当然,即便如此想,我内心对于被AI淘汰还是带有一种惶恐,在社会分配关系尚未正常的现在,AI的非恶也会因社会的达尔文主义而变为一种恶。或许这也是旧时代的阵痛给予新时代AI的悲哀。