好久没动笔了,一是要处理的东西很多,二则写出来未见得深刻,感觉沉淀得不够,太浅显的东西就没必要分享。
正好最近在研究算法层面的东西,感觉挺受用的,就想着把这些东西整理出来,有点像社区的雏形,但一个人的力量毕竟有限,是否可以通过一个专项社区来讨论分享呢,抱着试一试的想法,就开始了...
算法社区 - 刚放出来,也不知道这种形式如何
先简单说说采用的技术类别吧
-
社区视图采用Vue3
主要是因为之前做的一款 小程序 - 砖神小助手 想复用一些api,Vue正好能满足这个偷懒的一员,姑且就它了
-
服务层面主要采用nodejs
之前的小程序 服务是用java写的,感觉也还可以,但一直还是不太习惯java的配置,nodejs本身使用挺方便的,而且有很多功能是需要依赖python脚本的,nodejs就很方便
毕竟作为个人开发者,可选开源工具也有很多,但我经常需要爬一些数据,脚本就很轻快了,不管是node还是python,甚至go,在这些选择下,java的选择是最滞后的
在原来小程序中集成了 Kimi的api,流处理固然好,但还是觉得不够流畅,就用python起了个socket服务,小程序里的音视频聊天功能是基于webrtc的,也需要配合socket交换信令
基于种种吧,不是说这个一定好,只是各种原因,觉得更习惯node了
社区需要讨论组,需要个socket,这块没有选什么花活,就是采用最基本的socket,向上扩展而已
目前还没有把 音视频通话 集成进来,代码是线程的,只是这个社区的业务没想好,暂且放着,这块是基于Webrtc开源协议
-
存储 redis + mysql + mongodb + oss文件
数据库为什么选两种,当然不是为了花哨,只是一些最基本的功能实现,关系型确实不够效率。
拿im来讲,就p2p的 文本,表情,文件,视频,通话 这些最基本的通信功能,我用mongodb,一到两个文档就搞定了,用mysql,个人觉得就是令我很头疼的一件事了
redis是为了请求加速主要做缓存用
图片,文件,视频这些全放oss
-
目前算法数据是从b站抓来的,转录基于通义
这些也是依赖脚本语言,这就是为什么偏爱的主要原因了,主要是随机开启一个任务很方便就操作了
抛开复杂的功能逻辑,其实这几块就是主要的覆盖了,当然边角很多,只是对于目前我构建的社区来讲,主要的技术就是这些了
具体的社区还在完善中,现在可以匿名讨论,我想做成轻量化的,像做纯粹一些的社区技术讨论,写文章确实不太擅长,有时候要把想说的写下来,还得组织逻辑,还需要投入时间,写错了还得改,感觉这种方式挺迂的
如果有感兴趣的伙伴,可以进入 算法社区 讨论,可以完全匿名,如果有了解Discord的同学,会发现照着那个模子来做的讨论社区
...