现在Austin的文档我觉得仍是比较全的,但到了看代码的时分,或许有的同学就不知道应该怎样看,有想知道模块之间的调用链路,有想一点一点把细节给全看了。这时分就很或许在项目里犯迷糊了,绕不出不来了。
Java开源项目音讯推送渠道推送下发【邮件】【短信】【微信服务号】【微信小程序】【企业微信】【钉钉】等音讯类型。
- gitee.com/zhongfuchen…
- github.com/ZhongFuChen…
我工作了几年,也接手过许多新的事务,这里聊聊我的经历。
1、在看代码之前,先全体知道下其时的体系,到底是干什么的。由几个模块组成,上下游的关系是怎样样的。
这个对于Austin来说就很简略啦,就发送音讯。中心便是由接入层->MQ->消费逻辑层给组成,其他供给一个后台办理以及一个流处理模块
工程模块 | 效果 |
---|---|
austin-common | 项目公共包:存储着项目公共常量/枚举/Bean |
austin-support | 项目工具包:对接中间件/组件 |
austin-cron | 守时使命模块:对xxl-job封装和项目守时使命逻辑 |
austin-web | 后台办理模块:供给接口给前端调用 |
austin-service-api | 音讯接入层接口界说模块:只有接口和必要的入参依靠 |
austin-service-api-impl | 音讯接入层具体完成模块:实在处理恳求 |
austin-handler | 音讯处理逻辑层:消费MQ下发音讯 |
austin-stream | 实时处理模块:使用flink实时处理下发链路数据 |
austin-data-house | 数据仓库模块:消费MQ数据写入hive |
2、了解了其时体系之后,这时分把代码给下载到本地,看看有没有办法在本地运行,或许在测试环境中长途debug。这一步便是为了能让自己实在体会下功用,试着追下全体逻辑(不必细看)。
这块Austin也好办,由于在本地就能够起来,发音讯本地也是正常发送的。就从接入层的发送接口开始,一步一步的bug,办法我这边基本都会有注释,有“难懂”的代码应该都有文档告诉你其时我是怎样设计的。
这时分不必去看很细的内容,比方某个字段是怎样拼接的,比方我做去重功用的时分key是什么,value是什么。反正先大体把每一个办法给过一遍,知道会有这些处理,最后就发送了一条音讯。
3、全体逻辑过完了今后,再次回到架构图或许功用图,看看是不是又了解些了。这时分就应该不会感到笼统,应该已经又进一步理解了体系的全体功用了,乃至了解到了写代码的人的风格。
4、继续debug!看细节!探究为什么要这样设计代码,假如是你写有没有更好的写法,或许现有这写法有没有值得吐槽的。
这时分就得看一些你疑问的细节功用是怎样完成的,比方之前或许不知道去重在redis 是怎样完成的,这时分就看看key是什么,value是什么。或许不知道数据隔离是怎样完成的,本来现在用的是SpringBoot Kafka 新版本供给的特性(在创建kafka容器前就能够动态去更改groupId)。比方为什么我要在这一步打上日志,看看发送音讯时,打印的日志是哪些,这条日志打下来是干什么的。
接触一个新的项目,永远都是:先看纲要->再看细节,有debug条件是最好的,配合日志看看处理链路。
假如想学Java项目的,强烈引荐我的项目音讯推送渠道Austin(8K stars),能够用作毕业设计,能够用作校招,能够看看出产环境是怎样推送音讯的。音讯推送渠道推送下发【邮件】【短信】【微信服务号】【微信小程序】【企业微信】【钉钉】等音讯类型。
- gitee.com/zhongfuchen…
- github.com/ZhongFuChen…
最近有在不同的当地看到了我的开源项目austin,每次都能让我窃喜一番。以至于给我感觉很有戏,或许能成为网红项目。
austin音讯推送渠道从零开写更新了一年多,Gitee 4.9k+stars,GitHub 4k+ stars,能到达这成果,一方面是我孜孜不倦地运营,另一方面是有不少看过这个项目的小伙伴在默默地帮我引荐。
我从来没有跟其他博主自动引荐过我的项目,让他们帮助宣传宣传。这个是能够做到的,但我没去这样做。
austin现在跟谷粒商城/瑞吉外卖/淘淘商城这种Java网红项目在知名度上还无法比,还远着。现在应该还不会有面试官看完简历知道是austin,也应该不会被提到:你们项目组挺大啊。
austin跟商城/外卖这种项目不一样的是:只要有点规模的公司,都会有音讯推送渠道这种体系,不会受到公司具体事务的影响。
至于有许多人会提到这体系能不能写在简历上,它离出产环境的项目还有多远,是不是仅仅一个学习项目。
1,这体系能写在简历上,我两年前写的便是它,能用作面试,也经过了面试。我这也有股东在校招经过它拿了大厂的offer的。
2,不要觉得出产环境的项目有多牛逼,这项目是能上出产环境的,也已经有人在线上部署了。我信任肯定不止一个,我看Git的fork记录也有其他公司的,要是你也部署了,还劳烦在Git填一下。
3,这体系合适学习,主要是它的事务不复杂,但可玩性仍是挺高的(看我列举了一堆的技能栈就知道了)
假如想学Java项目的,强烈引荐我的项目音讯推送渠道Austin(8K stars),能够用作毕业设计,能够用作校招,能够看看出产环境是怎样推送音讯的。音讯推送渠道推送下发【邮件】【短信】【微信服务号】【微信小程序】【企业微信】【钉钉】等音讯类型。
- gitee.com/zhongfuchen…
- github.com/ZhongFuChen…