记一次工程


已经来工作两周了,新人来这边不是一开始就上手开发的,是要做一个新人任务的,也就是一个开发任务,我接到的任务是一个做一个简易的聊天系统,
功能包括登录注册,好友,即时聊天,群聊等功能,其实好久没有好好写代码了,得有个2个多月,一开始遇到的麻烦也挺多的,不过也慢慢解决了。

系统相关

一开始搭环境就是个问题,不再像以前一样写代码是随便写,首先要求是微服务,每个服务模块又必须使用多模块开发,gradle做包管理,因为分了多模块而且使用了springboot,找不到bean的问题经常发生,虽然都是小问题,但是还是比较麻烦的。

然后就是系统的设计,按照功能划分服务,就分为三个模块:

  • 用户模块,负责登录,注册,验证用户,创建群聊等功能
  • 好友模块,负责好友关系的建立,删除,好友列表,群列表的维护等
  • 聊天模块,负责消息的存储,同步等,

这三个是服务模块,本来还应该有一个群聊模块,但是因为赶得紧,就凑到这个三个模块里面了,还有一个就是对外提供服务的server模块了,提供的方式也就是springboot的那一套,server需要调用上面三个服务模块,这里就是RPC调用了,用的是dubbo,没有很深入,就是简单的调用了一下。

最后就是一个ORM的相关了,很久之前,我觉得原生的jpa那套很好,因为什么都不用写,声明个接口就行了,但是后来发现还是自己写sql好一点,虽然jpa也可以,但是还是mybatis的支持更好一点。

IM

说起IM还是比较有趣的,说起IM就是聊天,实现的原理也很简单,就是收到一个人的消息,服务端存储,然后推到另一边,但是真正实现起来确实问题多多,有未读已读的问题,有最近联系人的更新,还有很多前端控件的更新,这或许也是使用websocket的原因吧。

自己

这两周的开发,还是认识到自己的诸多问题,最重要的就是太浅薄了,无论是技术上还是对技术的认知上,很多学到的东西并不能运用,单纯的就是个知识摆在那里,以为自己知道很多解决办法,但遇到问题,确很少能单纯的靠自己就解决,写代码时也许是因为比较急吧,很多规范都没有注意,驼峰和下划线混杂的用,也写了很多脑残代码,甚至写完自己都不想去看,所以听到老大要抽空看一下我的代码,感觉相当慌,毕竟是自己都不愿意回头看的。

因为公司的保密原因,不能上传代码,所以只能靠文字简单的说一下,其实这篇博客对别人没有什么意义,纯粹是自己做个总结,也算是作为工作开始的记录,大概就是这样,不多说了。


  目录