1、领导一拍脑门想要一个内部聊天软件 --基于open IM二次开发
背景
前段时间不是接手了一个内部办公软件的项目嘛,这个项目已经写了三四年了,一代代的前端融合了不知到多少种代码风格,再加上最初搭这个项目架子的人不知道咋想的,任何规范都没有,整个项目已经摇摇欲坠。但是大领导就是想要在里面加一个聊天功能,但之前一直没有人处理,一直拖着,直到我和另一个后端加入这个项目组。
opemIM
OpenIM:由IM技术专家打造的基于 Go 实现的即时通讯(IM)项目,从服务端到客户端SDK开源即时通讯(IM)整体解决方案,可以轻松替代第三方IM云服务,打造具备聊天、社交功能的app。
OpenIM 在GitHub拥有13.7k starts,并且具备完善中英文文档。
二次开发中的一些问题
Demo代码阅读
我的二次开发是基于官方提供的 uni-app Demo 进行的。在开发过程中我发现许多功能已经被封装在组件中,但在 Demo 中并没有使用。如果你也打算集成二次开发,我强烈建议:
- 仔细阅读公共组件:深入理解每个组件的功能和用法。
- 熟悉公用方法库:详细了解已有的方法,避免重复开发。
- 充分利用现有资源:在开发过程中优先考虑使用已封装的组件和方法,提高开发效率。
- 避免重复造轮子:在添加新功能前,先检查是否已有相似的实现。
通过这些方法,暂时避免这个项目变成屎山代码。
音视频功能
OpenIM的音视频功能是被官方在核心代码中移除了的,当然你可以通过他们官方客服去了解这一部分业务。不过,这单位是分币不想花,没办法只能去找另一个开源项目livekit,这个项目没有中文文档,前端demo用的React写的,不过他将一些常用的东西封装好了。其他的,我也还在集成当中,啥时候弄完了再说说吧...
2、我的第一个插件 --水印相机-qt-waterMark
水印相机-qt-waterMark 是一个基于uni-app live-pusher的纯前端水印相机插件,目前相机主界面支持美颜,美白开关,水印开关,自定义水印内容等操作。这是我个人的第一个插件,在八月末的时候上架了插件市场,大家可以下载看看,觉得还行的话帮我点点评分。也可以给我提供一些改进的思路。
3、最近的一些思考与学习
新项目搭架子却争吵了两天
公司前面用的Vue2项目架子已经很老了,再加上一些原因被改得面目全非,已经到了不得不放弃的地步。但是在新项目架子的选型上出现了很多争吵。首先就是JavaScript与TypeScript之争,这里为什么讨论很久,相信大家都明白其中缘由(我本人踏上前端的第一个正式项目是Vue3+TypeScript,因此我更倾向这一种,但是公司其他人没写过正式的TypeScript的项目)。另一个争论就是我不理解的地方了,他们要求pc端要两套代码(原话大抵是一套前端的管理后台,另一套是后端用的管理后台)。这是我极为不理解的地方,也应是我从业较短,没见过要这样去区分开。
重学node.js
最近比较迷茫,思来想去还是决定走伪全栈这条路。自己node.js的水平勉强也能写简单的CRUD但是根本不足以用在企业上面,因此打算好好学一下node.js以及对应框架koa.js或者nest.js,顺便试试所谓微服务还有redis等等这些东西。我解决解决焦虑办法,就是埋头去学习