今天跟大家唠唠我最近在搞的这个项目,暂且叫它 “misfits” ,反正就是一群“不合群”的东西凑到一起。
事情是这样的,一开始我只是想把自己那些乱七八糟的想法给整理整理,因为我发现自己脑子里一会儿一个主意,一会儿一个方向,特别混乱。就想着能不能把这些看似毫无关联的东西,捏一块儿去,看看能不能搞出点啥新花样。
说干就干,我先是把我所有感兴趣的领域,不管靠不靠谱,都列了个清单。从前端到后端,从机器学习到区块链,甚至还包括一些我一知半解的边缘技术,一股脑儿全写上。然后就开始疯狂的“考古”,把之前自己写的那些demo,小项目,全都翻出来,挨个研究。
- 第一步:先搭了个简单的脚手架,用的是我最熟悉的 Vue,毕竟前端这块我还是有点自信的。
- 第二步:开始往里面塞东西,把我之前用 Python 写的一个小爬虫,专门爬一些技术博客的,给塞进去了。
- 第三步:然后又把我之前瞎搞的一个数据可视化项目,用 * 做的,也给放进去了。
这中间遇到了不少坑,因为这些东西都是之前不同时期写的,代码风格都不一样,兼容性也有问题。光是改代码,我就改了好几天,简直头都要炸了。不过还最终算是把它们勉强捏到一起了。
遇到的挑战
最大的挑战还是在于“不合群”。这些东西本来就不是为了放在一起设计的,所以它们之间没有任何联系,也没有统一的接口。我就只能硬着头皮,自己写一些中间件,把它们连接起来。
比如说,那个爬虫爬下来的数据,格式跟数据可视化项目需要的数据格式完全不一样。我就得写个转换器,把爬下来的数据转换成可视化项目能用的格式。这中间涉及到数据清洗、数据转换、数据校验等等,反正就是一堆麻烦事。
还有就是性能问题,因为这些东西都是跑在同一个前端页面上的,所以如果其中一个模块性能不就会拖慢整个页面的速度。我就只能不断地优化代码,减少资源占用,提高运行效率。甚至还用了 Web Worker 来做一些耗时的计算,避免阻塞主线程。
最终成果
现在这个 “misfits” 项目,虽然还很粗糙,但总算能跑起来了。它可以自动爬取一些技术博客的数据,然后把这些数据可视化出来。我还可以通过简单的配置,自定义爬取的博客和可视化的方式。
虽然它看起来没什么实际用处,但我觉这回实践还是挺有意义的。至少让我把之前学的那些知识都串起来了,也让我对前端工程化有了更深的理解。更重要的是,它让我意识到,即使是“不合群”的东西,只要用心去整合,也能碰撞出一些意想不到的火花。
这个项目还有很多可以改进的地方。比如,可以增加更多的功能模块,可以优化用户体验,可以提高性能等等。但我现在没啥时间搞了,先放着,说不定以后哪天心血来潮,又想起来继续折腾了。
这回 “misfits” 实践,对我来说,是一次很有趣的尝试。也希望我的分享能给大家带来一些启发,鼓励大家去尝试一些新的东西,即使它们看起来毫无意义。
还没有评论,来说两句吧...