Git 仓库7K stars!学Java开源项目austin要多久?
我是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
/Redis
和Kafka
。对于MySQL
和Redis
来说,差不多是每个项目的标配了,而Kafka
后续我可能会考虑抽象出来由你们自己适配对应的MQ实现,MQ在这个场景下还是有必要的。
在面试前更多的是准备MySQL
/Redis
和MQ
这几块技术栈,理论上中间件在公司都有专门的人负责,但这几个确实我们在日常开发中用得非常多,建议多去看看原理和源码。
像分布式配置中心、分布式定时任务、分布式计算引擎、分布式日志框架、监控告警框架这种你们要是对哪个熟悉的,就写上自己熟悉的框架。如果不熟悉的,面试的时候简单提一嘴流程就好了(建议去看看这些框架的设计思想)。
最后不负责下个结论吧:
1、如果你曾经做过些小的项目,了解MySQL
/Redis
和MQ
的使用,大概三周到1个月+时间能对项目有所了解
2、如果你没做过小项目,只是刚学完SpringBoot
,起码2个月+时间能对项目有所了解
3、如果你已经了解过各种的中间件(分布式配置中心、分布式计算引擎),在工作中也并不完全是后台的CRUD。相信我,你那时候就不会问要多久才能搞完这个消息推送平台。
很多时候我们做一件事之前都是充满着未知,但如果未知的成本不高的话,建议先行动起来!一直犹豫不行动,相当于什么都没做。
推荐项目
如果想学Java项目的,我还是强烈推荐我的开源项目消息推送平台Austin,可以用作毕业设计,可以用作校招,可以看看生产环境是怎么推送消息的。
开源项目消息推送平台austin仓库地址:
消息推送平台推送下发【邮件】【短信】【微信服务号】【微信小程序】【企业微信】【钉钉】等消息类型。
Git 仓库7K stars!学Java开源项目austin要多久?的更多相关文章
- 【我整理的java开源项目】
摘要: 1. 整理出一些使用比较广或者个人觉得比较好的java开源项目和资料供参考. 2. 如果你觉得好但是我没有列出的开源项目请告诉我,方便我添加到列表里. 3. 如果你发现信息描述有误请联系我,我 ...
- 3月份GitHub上最热门的Java开源项目
今天,我们来盘点3月份GitHub上最热门的Java项目的时候了,如果你每月都有关注猿妹发布的排行榜,那么本月的Java项目对你来说一定不陌生,这些都是曾经多次出现在榜单中的项目: 1 advance ...
- 硬核! Github上 ,star超高的Java 开源项目分享给你!
Awsome JavaGreat Java project on Github(Github 上非常棒的 Java 开源项目). English Version 大家都知道 Github 是一个程序员 ...
- 网上下载的 java开源项目 如何 打jar包
目前很多java开源项目(例如qlexpress)只提供了源码,没有提供jar,下面提供maven打jar包的方法. 1.进入qlexpress下载后源代码所在的目录,此目录应包含pom.xml,如下 ...
- 用Java开源项目JOONE实现人工智能编程
http://www.robotsky.com/ZhiN/MoS/2011-08-25/13142461416649.html 用Java开源项目JOONE实现人工智能编程 https://sourc ...
- 硬核! 逛了4年Github ,一口气把我收藏的 Java 开源项目分享给你!
Awsome Java Great Java project on Github(Github 上非常棒的 Java 开源项目). English Version 大家都知道 Github 是一个程序 ...
- 阿里巴巴的26款Java开源项目
阿里巴巴的26款Java开源项目 开源展示了人类共同协作,成果分享的魅力.没有任何一家网络公司可以不使用开源技术,仅靠自身技术发展起来.“取之于开源,用之于开源,才能促进开源的良性发展”,阿里巴巴各个 ...
- java开源项目
原文地址:http://blog.longjiazuo.com/archives/2625 1.整理出一些使用比较广或者个人觉得比较好的java开源项目和资料供参考.2.如果你觉得好但是我没有列出的开 ...
- 我的第一个 60 k+ Star Java开源项目
JavaGuide([Java学习+面试指南] 一份涵盖大部分Java程序员所需要掌握的核心知识):https://github.com/Snailclimb/JavaGuide. 人生总有各种各样的 ...
- 不想加班开发管理后台了,试试这个 Java 开源项目吧!
本文适合有 Java 基础并了解 SpringBoot 框架的同学 本文作者:HelloGitHub-嘉文 这里是 HelloGitHub 推出的<讲解开源项目>系列,今天给大家带来一款开 ...
随机推荐
- Unity 复杂Json 解析
最近项目需要, 搞了一串嵌套非常多的Json 用LitJson读取体验不太好,上网查了一下发现NetwtonsoftJson ,十分好用 一句代码就可以了 JObject data = JsonCon ...
- 在Windows系统上安装和配置Jenkins自动发布
一.安装jenkins的流程转载于: https://www.jianshu.com/p/de9c4f5ae7fa 二.在window中执行批处理文件bat或者powershell可以成功,但是Jen ...
- Sentinel 高可用流量管理框架
出处:https://www.oschina.net/p/sentinel?hmsr=aladdin1e1 Sentinel 是面向分布式服务架构的高可用流量防护组件,主要以流量为切入点,从限流.流量 ...
- web端测试的测试点和注意事项【转载】
文章来源:作者:simplesally 出处:https://www.cnblogs.com/simple1025/ [转载] 工作中接触了不同类型的web端系统,内容不同,需求不同,测试关注点也 ...
- 前端使用JSEncrypt进行加密和解密
下载链接:https://www.bootcdn.cn/jsencrypt/ 使用方法: 1.引入jsencrypt 2.使用方法 // 加密公钥 const key = `xxxxxx`; func ...
- scala流程控制
1.分支控制if-else 分支控制有三种:单分支.双分支.多分支: 1.1 单分支 (1).语法入下: if(条件表达式){ 执行代码块 //当条件表达式为true时,才会执行代码块内容 ...
- vue中sso登录使用VueKeycloak登录
一,先下载vuekeycloakjs npm install @dsb-norge/vue-keycloak-js --save 二,引入 import VueKeycloakJs from '@ds ...
- Python GUI编程之Tkinter
GUI编程Tkinter Python 提供了多个图形开发界面的库,几个常用 Python GUI 库如下: Tkinter: Tkinter 模块(Tk 接口)是 Python 的标准 Tk GUI ...
- C++ PTA 小于m的最大的10个素数
7-5 小于m的最大的10个素数 (15分) 给定一个整数m(50<m<20000),找出小于m的最大的10个素数. 输入格式: 输入在一行中给出一个正整数m(50<m<200 ...
- ant design upload组件的beforeUpload阻止默认上传行为
const onImportExcel = (file) => { return new Promise(async (resolve, reject) => { ... //要执行的语句 ...