我是3y,一年CRUD经验用十年的markdown程序员‍常年被誉为职业八股文选手

开源项目消息推送平台austin仓库地址:

消息推送平台推送下发【邮件】【短信】【微信服务号】【微信小程序】【企业微信】【钉钉】等消息类型

今天来跟想聊下大家很关注的一个问题:「搞完Austin消息推送平台要花多长时间?

这个问题我被很多股东问过,大多数都是想要将Austin消息推送平台写进简历上,想要知道在秋招前能不能给整明白,整出来。

我在Austin的群也看过有个小伙连续好几天在群里问,想知道搞完要多久,这个系统难不难,适不适合在校的。

说白了,就是想要在心里有个底。这种问题很正常,我在正式工作前也想知道要达到实习/工作需要什么技能。

不过,我给不了具体的时间,这对我来说挺难的。因为每个人的学习时间、所掌握的基础是不同的。像我在大学的时候,我早上8点去图书馆,晚上9点从图书馆回宿舍,我也不知道你是不是跟我一样的。

还有就是可能你就刚刚整完SpringBoot,还没有做过任何项目,对很多技术都还没理解好。这样即便我文档很全了,但对于这部分同学来说,门槛还是相对较高。

而如果你已经有过Redis/Kafka 这种基础了,只是Flink/xxl-job这种中间件没怎么用过,可能知道它们是干啥的,但不知道原理。那在这种条件下,上手项目的门槛又相对较低点。

也有在滴滴的、腾讯的工作几年了,把README文档刷一遍,就能直接去看代码的整个流程了。虽然会对细节有很多疏漏,但毕竟架构的见识和工作经验摆在那,上手会快很多。

它适不适合在校生?肯定是适合的。它不像商城系统要熟悉业务细节,有各种的商品信息。它不像广告系统要了解各种的专业名词才能看懂业务,广告系统有各种专业名词CPT/CPS/CPC/CPM/ROI/CVR...

Austin消息推送平台核心功能是很好理解的,就是推送各种渠道的消息。而推送消息为什么能是一个平台,只是我们围绕着核心功能的基础上加多了很多基础建设,它的存在不再是一个小功能,所以它就是一个消息推送平台。

每个公司几乎都会有发送消息的需求,也几乎都会有类似的封装。Austin消息推送平台的架构和解决方案是通用的,跟别的公司相比只在于这个推送系统它的规模以及所提供的平台能力差异性。

搞完Austin消息推送平台要花多长时间?

以我为例吧,我当时接手消息推送平台到熟悉它大概花了两个多月时间,一方面我当时刚实习,技术确实也就那样,在生产环境没用过JSON,没用过MQ,没用过Redis。另一方面,文档确实没有像我现在的那么齐全,生产环境下的代码经过了几代同事的迭代,代码风格差异也挺大的。

不过这两个多月不意味着我对这个系统就了如指掌了,我只是掌握了整个推送消息的流程,很多发送渠道的细节还是不懂的。

比如以前的小程序消息推送需要有下发凭证(formId)才能对消息下发,这是我后来对小程序消息迭代的时候才知道的。比如对于push通知栏消息它的链路十分长,我们做了一整套打点体系,但由于迭代和交接的问题,这个链路也是后面才慢慢摸索出来哪些是关键的位置...比如对于短信计费原来是要把发送凭证+手机号才能产生唯一的key,不然统计就会乱掉了...

话又说回来,如果把消息推送平台写在简历上去面试。以我的经验,面试官并不在意某个渠道的消息下发细节(除非他也是搞消息推送的),更多的关注是系统的架构和整体的流程,就没遇到过需要针对某个消息渠道做过多解释的。

经过我的迭代,现在Austin消息推送强依赖MySQL/RedisKafka。对于MySQLRedis来说,差不多是每个项目的标配了,而Kafka后续我可能会考虑抽象出来由你们自己适配对应的MQ实现,MQ在这个场景下还是有必要的。

在面试前更多的是准备MySQL/RedisMQ这几块技术栈,理论上中间件在公司都有专门的人负责,但这几个确实我们在日常开发中用得非常多,建议多去看看原理和源码。

像分布式配置中心、分布式定时任务、分布式计算引擎、分布式日志框架、监控告警框架这种你们要是对哪个熟悉的,就写上自己熟悉的框架。如果不熟悉的,面试的时候简单提一嘴流程就好了(建议去看看这些框架的设计思想)。

最后不负责下个结论吧:

1、如果你曾经做过些小的项目,了解MySQL/RedisMQ的使用,大概三周到1个月+时间能对项目有所了解

2、如果你没做过小项目,只是刚学完SpringBoot起码2个月+时间能对项目有所了解

3、如果你已经了解过各种的中间件(分布式配置中心、分布式计算引擎),在工作中也并不完全是后台的CRUD。相信我,你那时候就不会问要多久才能搞完这个消息推送平台。

很多时候我们做一件事之前都是充满着未知,但如果未知的成本不高的话,建议先行动起来!一直犹豫不行动,相当于什么都没做。

推荐项目

如果想学Java项目的,我还是强烈推荐我的开源项目消息推送平台Austin,可以用作毕业设计,可以用作校招,可以看看生产环境是怎么推送消息的。

开源项目消息推送平台austin仓库地址:

消息推送平台推送下发【邮件】【短信】【微信服务号】【微信小程序】【企业微信】【钉钉】等消息类型

Git 仓库7K stars!学Java开源项目austin要多久?的更多相关文章

  1. 【我整理的java开源项目】

    摘要: 1. 整理出一些使用比较广或者个人觉得比较好的java开源项目和资料供参考. 2. 如果你觉得好但是我没有列出的开源项目请告诉我,方便我添加到列表里. 3. 如果你发现信息描述有误请联系我,我 ...

  2. 3月份GitHub上最热门的Java开源项目

    今天,我们来盘点3月份GitHub上最热门的Java项目的时候了,如果你每月都有关注猿妹发布的排行榜,那么本月的Java项目对你来说一定不陌生,这些都是曾经多次出现在榜单中的项目: 1 advance ...

  3. 硬核! Github上 ,star超高的Java 开源项目分享给你!

    Awsome JavaGreat Java project on Github(Github 上非常棒的 Java 开源项目). English Version 大家都知道 Github 是一个程序员 ...

  4. 网上下载的 java开源项目 如何 打jar包

    目前很多java开源项目(例如qlexpress)只提供了源码,没有提供jar,下面提供maven打jar包的方法. 1.进入qlexpress下载后源代码所在的目录,此目录应包含pom.xml,如下 ...

  5. 用Java开源项目JOONE实现人工智能编程

    http://www.robotsky.com/ZhiN/MoS/2011-08-25/13142461416649.html 用Java开源项目JOONE实现人工智能编程 https://sourc ...

  6. 硬核! 逛了4年Github ,一口气把我收藏的 Java 开源项目分享给你!

    Awsome Java Great Java project on Github(Github 上非常棒的 Java 开源项目). English Version 大家都知道 Github 是一个程序 ...

  7. 阿里巴巴的26款Java开源项目

    阿里巴巴的26款Java开源项目 开源展示了人类共同协作,成果分享的魅力.没有任何一家网络公司可以不使用开源技术,仅靠自身技术发展起来.“取之于开源,用之于开源,才能促进开源的良性发展”,阿里巴巴各个 ...

  8. java开源项目

    原文地址:http://blog.longjiazuo.com/archives/2625 1.整理出一些使用比较广或者个人觉得比较好的java开源项目和资料供参考.2.如果你觉得好但是我没有列出的开 ...

  9. 我的第一个 60 k+ Star Java开源项目

    JavaGuide([Java学习+面试指南] 一份涵盖大部分Java程序员所需要掌握的核心知识):https://github.com/Snailclimb/JavaGuide. 人生总有各种各样的 ...

  10. 不想加班开发管理后台了,试试这个 Java 开源项目吧!

    本文适合有 Java 基础并了解 SpringBoot 框架的同学 本文作者:HelloGitHub-嘉文 这里是 HelloGitHub 推出的<讲解开源项目>系列,今天给大家带来一款开 ...

随机推荐

  1. 在Tomcat中部署Web项目的操作方法(必看篇)

    在这里介绍在Tomcat中部署web项目的三种方式: 1.部署解包的webapp目录 2.打包的war文件 3.Manager Web应用程序 一:部署解包的webapp目录 将Web项目部署到Tom ...

  2. Docker--结合 Jenkins + Gitlab 完成自动化测试的持续集成实战

    本文转自:https://www.cnblogs.com/poloyy/p/13971134.html 进入 Jenkins 任务的配置页面 源码管理 构建触发器 为了安全起见生成一个 token 值 ...

  3. 异步按照同步顺序执行的function

    function  step1 (callback) {     console.log(111111)     callback.call() } function  step2 (callback ...

  4. 循环4-for循环

    一.语法 for循环和while类似,常用于执行有限次数的循环,有两种语法结构, 1.变量列表循环 语法: for 变量名 in 变量取值列表 do 指令...... done 变量取值列表中的值,要 ...

  5. c++学习1 基础关键词

    一 "const" 修饰变量 只能被初始化和读取,不能被赋值更改,且必需初始化,不初始化的话会因为读取到随机数而报错. example: const int date=100; c ...

  6. Jmeter二、开始使用

    一.最简单的性能测试脚本 testplan→ thread group→HTTP request→view results tree.jmx后缀文件,xml文件校验 二.使用过程中其他需要注意的 1. ...

  7. CSS设置边距

    1.内边距 所有的 ​HTML ​元素基本都是以矩形为基础. 每个 HTML 元素周围的矩形空间由三个重要的属性来控制: ​padding(内边距)​ ​margin(外边距)​ ​border(边框 ...

  8. vue中模块化后mapState的使用

    代码如下: 相当于声明了一个变量name,然后以state入参取得其modules文件夹中user文件里的name属性.因为在模块(如user)中,在抛出时的export default中添加了一句: ...

  9. 如何简单使用Git

    Git基本功能 Git基本功能 在具体介绍Git能做什么之前,先来了解下Git里的四个角色: workspace: 本地的工作空间. index:缓存区域,临时保存本地改动. local reposi ...

  10. 设计模式 - 单例模式 Singleton Pattern - C#

    单例模式 Singleton Pattern 1.单例模式设计模式属于创建型模式 2.是单一的类,该类负责创建自己的对象,同时确保只有单个对象被创建.这个类提供了一种访问其唯一的对象的方式,可以直接访 ...