GoodGuy 的诞生(一个消息推送平台)

GoodGuy 的诞生(一个消息推送平台)


文章目录

  • GoodGuy 的诞生(一个消息推送平台)
  • 前言
  • 一、说说现状
  • 二、新项目诞生
  • 三、为什么叫”GoodGuy“?
  • 四、简单描述一下
  • 总结


前言

大家好,我是处于 Java 行业下水道,励志重见天日的好人。
GoodGuy 的诞生(一个消息推送平台)_第1张图片

这篇文章主要是一些牢骚话,和我自己突然想做一个项目的一些想法,算是作为一个开端吧。

其实这段时间我有一直在学习,也记了很多笔记。但因为写了太多笔记导致我没有精力去撰写一篇博客。但是我发现,笔记记了不少,但几乎不会看。

记得有种学习方法叫做“费曼学习法”,不太准确的理解可以认为是:“把学过的内容,重新简化整理,并将其传授给别人,如果别人能够听懂,那就能说明自己学会了”。而我认为,博客就是一种很好的传授手段。

好久没有写一些东西了,最近突然想自己捣鼓一个项目,并且写一些博客记录分享一下。项目其实已经推进一段时间了,但是博客一直懒得动笔,其实也是怕自己项目进行不下去,到最后烂尾就太尴尬了。不管怎样吧,我尽量去做。


提示:牢骚话,大家可以跳过此部分

一、说说现状

说真的,我很不喜欢我现在的工作,无论是薪资还是技术栈,都很难让人充满激情。
GoodGuy 的诞生(一个消息推送平台)_第2张图片
薪资只能拿到当初 offer上一半多一点。而且最近公司搞改革,旨在节约成本,工资又降低了。而且公司的核心业务是制造和销售,搞技术根本吃不到肉,干硬件开发的还好些,但我们 web 开发属于公司的边缘业务,根本得不到重视,很多想法都没人支持你,工资也会比核心业务员工低一等。

所用的技术栈算是比较小众冷门的吧,JFinal + Layui,直到我入职才知道这些,那个时候一边学习一边干活。而且在入职之前我一直以为我是后端,结果我得干全栈。但好在 Jfinal 比较简单,我有一定的前端基础,Layui也能很快上手,没过多久就能胜任工作了。但是我慢慢发现,这些技术栈也太那啥了,在我入职之前,我一直以为所有公司用的都是 SpringBoot 的那一套东西。

记得之前拿 offer 的时候我问了:“咱公司用哪些技术栈?”,我没有得到正面回答:“什么技术栈不重要,只要你 Java 基础好,有一定的学习能力,什么技术都能很快上手。”我当时觉得挺有道理,果然大公司对于应届生还是比较关注基础的,学长诚不欺我。

后来入职后,我很快就发现了其中的不妙之处。但因为一些原因吧,遇到了一些朋友,遇到了一些事情,也加上性格原因,慢慢的也干了一年。

最近我越来越焦虑了,工作了一年,至少有大半年我会抽工作之余继续学习 Java ,但是学的技术一直得不到实践的机会,而且对于现在的 Java 内卷程度,在这里长干可能会成为我简历上的减分项。就像我朋友和我说的:“既不给你施展能力的机会,又不给你相应的报酬。”所以实在是没有理由待下去了。

我最近在考虑裸辞了,休息一下,调整心态,也抽时间复习,当然也会一直开发维护这个新项目,然后找新工作,全身心投入到新工作中去。

二、新项目诞生

项目其实我也做过一些,比如博客项目、电商项目等,但这些都是在 b 站上跟学的,很多东西并没有自己的思考,当自己遇到的时候可能还是很难激活脑海中相应的记忆,也许是因为缺少了遇错后的探索和思考的过程吧。所以我慢慢的有了自己从 0 开始搭建一个项目的想法。

做什么样的项目呢?我不知道。

去逛 b 站,全是铺天盖地的图书管理系统、电商系统、博客……这些不行,被做烂了,我得找个 b 站上搜不到的。直到我在《人人都是产品经理》上发现了一个叫“触达系统”的东西,我觉得挺有意思。
GoodGuy 的诞生(一个消息推送平台)_第3张图片
再后来我又在码云上找到了一个叫做“austin 消息推送平台”的项目,是 3y 大佬写的,我感觉这个更有意思。触达系统需要有真实的业务数据做支持,这对于个人项目来说不太好办,但是消息发送,还是比较容易办到的。

再有,我有个朋友之前在一家互联网公司实习的时候,他们举办线上活动要发奖品,收集了用户邮箱,通过邮件的方式下发活动奖品。我当时问他,这几百个邮箱,每封邮件都不一样,你不会一条一条的发吧。他说不需要,只要将邮件内容制作成表格上传到系统就能统一发送。

现在回想起来,这个系统不就是消息推送平台吗?然后我查了一下 b 站、码云等平台,消息推送平台的内容很少,比较健全的就找到了 3y 大佬的 austin 了。

我简单了解了一下 austin 后,觉得 austin 的架构和 springcloud 不太一样。然后我就决定我要用 springcloud 搭建一个消息推送平台。架构不太一样,但是业务方面,我应该会借鉴 austin 的,毕竟 3y 大佬是给公司搭建过的,他更了解真实应用场景下所需要的功能。

三、为什么叫”GoodGuy“?

至于平台的名字嘛,其实没啥好纠结的啦,毕竟是个人项目,起个自己喜欢的名字就好啦。其实我一直在网络上使用“好人”这个网名,所以我也想让我的第一个个人项目叫做“好人”,直接翻译过来就是“good person”,但感觉太普通太正式了。
GoodGuy 的诞生(一个消息推送平台)_第4张图片

然后我又想到了去年看过的一部电影,叫《失控玩家》,男主角的名字叫做 Guy,而“Good Guy”刚好可以翻译成“好人”,所以敲定,我的项目就叫做“GoodGuy”。要相信,我们虽然是普通人,对于这个世界来说可能只是一个 NPC,但是在自己的世界里,我们就是主角。

四、简单描述一下

GoodGuy 会是一个企业统一消息发送平台,公司里的所有消息发送都可以通过 GoodGuy 来实现,比如:短信、邮件、内网广播、push推送、钉钉等。当然,也会对外提供接口,供公司其他业务进行技术调用。

下面是一些业务模块的初步考虑:
GoodGuy 的诞生(一个消息推送平台)_第5张图片
下面是一些技术架构的初步考虑:

  1. java 1.8
  2. maven:项目构建
  3. MySql:数据库
  4. Redis:做缓存
  5. SpringBoot:快速开发
  6. MyBatis-Plus:持久层操作
  7. Nacos:服务注册中心、服务配置中心
  8. Gateway:网关
  9. openFeign:远程调用
  10. OSS:文件管理
  11. Vue:前端框架
  12. element-ui:ui库
    初步是这样,还是链路追踪、日志收集等,暂时还没考虑好。

总结

先说这些,以上内容主要有两点:

  1. 我活得不好;
  2. 我想变好。

项目其实我写了好一些了,但前面也说了,但都还是一些简单的后台管理 CRUD。 博客一直懒得写,所以拖了很久。代码仓库也有了,但还不能发出来,我得把代码整理一下,才能和大家分享。不知道会不会有大佬追更,既期待又害怕。

你可能感兴趣的:(Good,Guy,java,经验分享,springcloud,Java项目,消息推送平台)