<commit_before>---
layout:     post
title:      "2018年回顾and2019年展望"
subtitle:   " \"回顾and展望\""
date:       2019-01-01 21:05:13
author:     "Tommy"
header-img: "img/post-bg-2015.jpg"
catalog: true
tags:
    - 生活
    - 个人感慨
    - 总结
---

> 回顾与展望
2018年感觉一瞬间就过去了，想想一转眼就毕业2年多了，总是感觉时间过得很快，但是又有好多事情没有做完，所以准备记录一下我的2018，
然后展望一下2019。

## 2018年回顾
#### 2018年--工作篇
##### PPTV
2018年，6月份从PPTV离职到简书。所以先说说前半年在PPTV的工作，在PPTV这大半年(2017-8到2018-6)，主要负责的工作是PPTV移动
客户端的自动话推送项目；项目中具体的细节在这里就不回顾了，主要说说工作中用到的一些技术栈；首先说说在推送项目中用到比较多的，也
比较优雅的开源框架[RxJava](https://github.com/ReactiveX/RxJava)。
RxJava – Reactive Extensions for the JVM – a library for composing asynchronous and event-based programs using observable sequences for the Java VM.
通过上面的介绍，可以知道RxJava应该是更适用于异步编程，然后用到了观察者模式，使用起来很方便，我项目中用到的更多的场景就是结合多线程，
线程池使用。例如，不同的场景通过不同的Observable订阅不同的Observer，然后把Observable和Observer作为参数传到线程中，交给线程池
管理，这样可以让我们更清晰的去写多线程代码。在Observable中处理逻辑计算，计算结果交给Observer sink到具体的存储仓库(包括Hive、ElasticSearch、Redis、File等)。这个是RxJava里面使用到的一个场景，也是我项目中普遍使用的，但是RxJava肯定还有更多的用法，我这边
研究的也不是特别深入，只是感觉使用起来非常nice，code写起来也非常清晰。所以推荐给大家，希望大家一起研究交流，[gitter of RxJava](https://gitter.im/ReactiveX/RxJava)。这里帮一个好的开源项目交流框架推荐给大家(https://gitter.im),跟Github项目结合起来也是非常的方便；PS：也是非常适合大家去学习English哟，会接触到很多世界各国的开发者哦，大多数都是以英语交流的。

然后说一下，大数据离线计算中，用到的比较多的工具，[Apache Hive](https://github.com/apache/hive)，优点： 稳定，处理亿万级数据量。为什么会说到这个呢，因为在当下，作为存储仓库，还是非常普遍的，数据存储到HDFS文件，可以使用SQL查询，使用起来也比较简单。
推荐对大数据感兴趣的同学们，最开始，需要自己做的就是去搭建一下Hadoop环境，安装Hive，去看看Hive的4种常见的数据存储结构和格式。

然后总结一下，在PPTV的工作吧，主要负责的就是移动客户端的自动化推送，负责所有的逻辑编写和技术稳定编写；然后就是短信推送，以及Web端站内信推送。同时提供一套完整的Rest API推送接口，提供给其他的部门和项目组推送使用。第一次在项目中接触到了大数据相关技术栈，包括Hadoop、HBase、Hive、RabbitMQ、Kafka等。

##### 简书
下面总结一下来到简书之后的工作，6月25号来到简书，一转眼也半年过去了，来到简书，加入的是推荐部门，负责推荐部门相关工作，包括推荐接口优化、文章页相关文章推荐、推送离线计算工具、用户画像实时计算系统的项目构建与项目优化与完善。来到简书，确实也接触到了许多新的知识，比如RPC（主要用到的RPC服务是GRPC）、[Apache Flink](https://github.com/apache/flink)、以及一些推荐算法(User2Vector,Doc2Vec,LDA等)，在公司算法工程师的推荐下，看了一本推荐算法入门书籍，在这里也推荐给大家(西瓜.pdf)，有兴趣的同学一定要记得去看一下，写的很不错哟。
这里主要说一下Flink吧，非常给力的实时流处理框架，类似于Spark Streaming，以前没接触过Spark Streaming，但是了解了Flink之后，不准备去学习Streaming了，就准备深入的学习一下Flink，本人准备整理一些Flink开眼库里面有用的知识点和易错点，在Github上已经开好了仓库，有兴趣的可以一起维护哟[Flink知识点整理](https://github.com/joyang1/DigAndBuried/blob/master/flink/question.md)。喜欢上Flink的原因是可以实时处理海量数据，有丰富的stream和batch api，最重要的是有自己的数据存储结构，有自己的序列化类库，非常的节约空间；举个例子吧，我在一次工作中，需要取10亿条数据，放到内存里面，然后一开始，通过Hive JDBC去取完，放到内存里，如你们所想，很快就OOM了，后面通过Flink去取，然后通过Flink API做 相关计算操作，一点问题没有。这就是我喜欢上Flink的理由，就是那么一瞬间的事情。听说2019年年初，阿里要开源他们的基于Flink开发的实时流处理框架Blink，很期待，会第一时间去使用的。Flink主要做的就是一些线上的实时计算操作，比如我们的是用户画像实时更新，文章CTR实时计算等；听说阿里淘宝也是使用的Blink实时计算用户画像，给用户推荐相关物品的。

加入了go开发的大家庭。对go也有了一定的感情，之前总是觉得Java就是最好的，现在虽然还是觉得Java最好，但是go也不错，但是go在写多线程编程的时候，确实比Java nice很多。语言不是最重要的，掌握好具体的技术点才是重要的。

#### 2018--开源篇
2018年，第一次在开源社区贡献自己的代码;
[JRebloom](https://github.com/RedisLabs/JReBloom/)
<img src = "/img/jrebloom.png">
在Jedis提了一个PR，后面在上面的开源库中去具体实现的。希望大家多去star。
[Jedis](https://github.com/xetorthio/jedis/pull/1905)

自己也开源了两个开源库，一个是支持Json格式的Log日志工具，一个是链式Json生成工具。希望大家star，给予鼓励。😂😂<br/>
支持Json格式的Log日志工具:<br/>
[slf4j4json](https://github.com/joyang1/slf4j4json)<br/>
链式Json生成工具:<br/>
[jsontool](https://github.com/joyang1/jsontool)

#### 2018--偶像篇
一生詹密，最大的愿望就是在LeBron James(勒布朗.詹姆斯)退役年可以去现场看一场比赛。2018年，詹姆斯虽败犹荣，一个伟大的季后赛赛季，充满英雄色彩，但又是一个孤胆英雄，2次压哨绝杀，单核带领队友闯入总决赛，可惜没能创造神奇；但总决赛第一场足够传奇，51+8+8，如果不是队友加裁判的反向助攻，也不会有赛后受伤吧。可惜什么都没有如果，虽然我是一个冠军蜜，但是对詹姆斯，我一直是一个詹密，从2003到永远，为你的伟大感到骄傲，伟大包括球场上和球场下。2019，我们一起继续，我期待着你的一次又一次伟大的表演，不管是否会为湖人带来总冠军，只希望你健康。但是从你为骑士带来了52年来的第一个冠军，我依然相信你会为湖人带来总冠军奖杯；只想默默说一句，2019，湖人总冠军，因为那个人是LBJ。


## 2019展望
#### 工作篇
简书的工作未完待续，希望2019在简书把我们的推荐系统做的越来越好！当然自己也会继续努力地去学好技术，掌握好知识。希望在2019年写总结的时候，不会再觉得又是有很多的事情没有做完，而是可以有条不紊的写出自己的每一项计划，这是成长的过程，还是希望自己可以早点养成这样的好习惯，不要总是在结束的时候再去感叹有很多的事情，很多的知识技术没有去掌握。2019，希望自己可以做到。

#### 开源篇
2019，已经在Github加入了一个开源项目的开发：
[Email-Dashboard]（https://github.com/Email-Dashboard/Email-Dashboard）,2019希望这个项目可以在go方向上很好的完成，在业余时间，为该项目后端提供[GraphQL](https://github.com/graphql-go/graphql) Rest API接口。

其他的自己也会努力去编写一些有意义的，适合开源的库。

#### 篮球篇
2019，要好好锻炼身体，经常去打打篮球，不然怕拉下职业病啊！😂😂
最后说一句，2019，湖人总冠军！！！<commit_msg>changed error code<commit_after>---
layout:     post
title:      "2018年回顾and2019年展望"
subtitle:   " \"回顾and展望\""
date:       2019-01-01 21:05:13
author:     "Tommy"
header-img: "img/post-bg-2015.jpg"
catalog: true
tags:
    - 生活
    - 个人感慨
    - 总结
---

> 回顾与展望
2018年感觉一瞬间就过去了，想想一转眼就毕业2年多了，总是感觉时间过得很快，但是又有好多事情没有做完，所以准备记录一下我的2018，
然后展望一下2019。

## 2018年回顾
#### 2018年--工作篇
##### PPTV
2018年，6月份从PPTV离职到简书。所以先说说前半年在PPTV的工作，在PPTV这大半年(2017-8到2018-6)，主要负责的工作是PPTV移动
客户端的自动话推送项目；项目中具体的细节在这里就不回顾了，主要说说工作中用到的一些技术栈；首先说说在推送项目中用到比较多的，也
比较优雅的开源框架[RxJava](https://github.com/ReactiveX/RxJava)。
RxJava – Reactive Extensions for the JVM – a library for composing asynchronous and event-based programs using observable sequences for the Java VM.
通过上面的介绍，可以知道RxJava应该是更适用于异步编程，然后用到了观察者模式，使用起来很方便，我项目中用到的更多的场景就是结合多线程，
线程池使用。例如，不同的场景通过不同的Observable订阅不同的Observer，然后把Observable和Observer作为参数传到线程中，交给线程池
管理，这样可以让我们更清晰的去写多线程代码。在Observable中处理逻辑计算，计算结果交给Observer sink到具体的存储仓库(包括Hive、ElasticSearch、Redis、File等)。这个是RxJava里面使用到的一个场景，也是我项目中普遍使用的，但是RxJava肯定还有更多的用法，我这边
研究的也不是特别深入，只是感觉使用起来非常nice，code写起来也非常清晰。所以推荐给大家，希望大家一起研究交流，[gitter of RxJava](https://gitter.im/ReactiveX/RxJava)。这里帮一个好的开源项目交流框架推荐给大家(https://gitter.im),跟Github项目结合起来也是非常的方便；PS：也是非常适合大家去学习English哟，会接触到很多世界各国的开发者哦，大多数都是以英语交流的。

然后说一下，大数据离线计算中，用到的比较多的工具，[Apache Hive](https://github.com/apache/hive)，优点： 稳定，处理亿万级数据量。为什么会说到这个呢，因为在当下，作为存储仓库，还是非常普遍的，数据存储到HDFS文件，可以使用SQL查询，使用起来也比较简单。
推荐对大数据感兴趣的同学们，最开始，需要自己做的就是去搭建一下Hadoop环境，安装Hive，去看看Hive的4种常见的数据存储结构和格式。

然后总结一下，在PPTV的工作吧，主要负责的就是移动客户端的自动化推送，负责所有的逻辑编写和技术文档编写；然后就是短信推送，以及Web端站内信推送。同时提供一套完整的Rest API推送接口，提供给其他的部门和项目组推送使用。第一次在项目中接触到了大数据相关技术栈，包括Hadoop、HBase、Hive、RabbitMQ、Kafka等。

##### 简书
下面总结一下来到简书之后的工作，6月25号来到简书，一转眼也半年过去了，来到简书，加入的是推荐部门，负责推荐部门相关工作，包括推荐接口优化、文章页相关文章推荐、推送离线计算工具、用户画像实时计算系统的项目构建与项目优化与完善。来到简书，确实也接触到了许多新的知识，比如RPC（主要用到的RPC服务是GRPC）、[Apache Flink](https://github.com/apache/flink)、以及一些推荐算法(User2Vector,Doc2Vec,LDA等)，在公司算法工程师的推荐下，看了一本推荐算法入门书籍，在这里也推荐给大家(西瓜.pdf)，有兴趣的同学一定要记得去看一下，写的很不错哟。
这里主要说一下Flink吧，非常给力的实时流处理框架，类似于Spark Streaming，以前没接触过Spark Streaming，但是了解了Flink之后，不准备去学习Streaming了，就准备深入的学习一下Flink，本人准备整理一些Flink开眼库里面有用的知识点和易错点，在Github上已经开好了仓库，有兴趣的可以一起维护哟[Flink知识点整理](https://github.com/joyang1/DigAndBuried/blob/master/flink/question.md)。喜欢上Flink的原因是可以实时处理海量数据，有丰富的stream和batch api，最重要的是有自己的数据存储结构，有自己的序列化类库，非常的节约空间；举个例子吧，我在一次工作中，需要取10亿条数据，放到内存里面，然后一开始，通过Hive JDBC去取完，放到内存里，如你们所想，很快就OOM了，后面通过Flink去取，然后通过Flink API做 相关计算操作，一点问题没有。这就是我喜欢上Flink的理由，就是那么一瞬间的事情。听说2019年年初，阿里要开源他们的基于Flink开发的实时流处理框架Blink，很期待，会第一时间去使用的。Flink主要做的就是一些线上的实时计算操作，比如我们的是用户画像实时更新，文章CTR实时计算等；听说阿里淘宝也是使用的Blink实时计算用户画像，给用户推荐相关物品的。

加入了go开发的大家庭。对go也有了一定的感情，之前总是觉得Java就是最好的，现在虽然还是觉得Java最好，但是go也不错，但是go在写多线程编程的时候，确实比Java nice很多。语言不是最重要的，掌握好具体的技术点才是重要的。

#### 2018--开源篇
2018年，第一次在开源社区贡献自己的代码;
[JRebloom](https://github.com/RedisLabs/JReBloom/)
<img src = "/img/jrebloom.png">
在Jedis提了一个PR，后面在上面的开源库中去具体实现的。希望大家多去star。
[Jedis](https://github.com/xetorthio/jedis/pull/1905)

自己也开源了两个开源库，一个是支持Json格式的Log日志工具，一个是链式Json生成工具。希望大家star，给予鼓励。😂😂<br/>
支持Json格式的Log日志工具:<br/>
[slf4j4json](https://github.com/joyang1/slf4j4json)<br/>
链式Json生成工具:<br/>
[jsontool](https://github.com/joyang1/jsontool)

#### 2018--偶像篇
一生詹密，最大的愿望就是在LeBron James(勒布朗.詹姆斯)退役年可以去现场看一场比赛。2018年，詹姆斯虽败犹荣，一个伟大的季后赛赛季，充满英雄色彩，但又是一个孤胆英雄，2次压哨绝杀，单核带领队友闯入总决赛，可惜没能创造神奇；但总决赛第一场足够传奇，51+8+8，如果不是队友加裁判的反向助攻，也不会有赛后受伤吧。可惜什么都没有如果，虽然我是一个冠军蜜，但是对詹姆斯，我一直是一个詹密，从2003到永远，为你的伟大感到骄傲，伟大包括球场上和球场下。2019，我们一起继续，我期待着你的一次又一次伟大的表演，不管是否会为湖人带来总冠军，只希望你健康。但是从你为骑士带来了52年来的第一个冠军，我依然相信你会为湖人带来总冠军奖杯；只想默默说一句，2019，湖人总冠军，因为那个人是LBJ。


## 2019展望
#### 工作篇
简书的工作未完待续，希望2019在简书把我们的推荐系统做的越来越好！当然自己也会继续努力地去学好技术，掌握好知识。希望在2019年写总结的时候，不会再觉得又是有很多的事情没有做完，而是可以有条不紊的写出自己的每一项计划，这是成长的过程，还是希望自己可以早点养成这样的好习惯，不要总是在结束的时候再去感叹有很多的事情，很多的知识技术没有去掌握。2019，希望自己可以做到。

#### 开源篇
2019，已经在Github加入了一个开源项目的开发：
[Email-Dashboard]（https://github.com/Email-Dashboard/Email-Dashboard）,2019希望这个项目可以在go方向上很好的完成，在业余时间，为该项目后端提供[GraphQL](https://github.com/graphql-go/graphql) Rest API接口。

其他的自己也会努力去编写一些有意义的，适合开源的库。

#### 篮球篇
2019，要好好锻炼身体，经常去打打篮球，不然怕拉下职业病啊！😂😂
最后说一句，2019，湖人总冠军！！！
{'fraction_non_alphanumeric': 0.12048493938257718, 'fraction_numerical': 0.03799525059367579, 'mean_word_length': 13.47016274864376, 'pattern_counts': {'":': 0, '<': 13, '<?xml version=': 0, '>': 15, 'https://': 24, 'lorem ipsum': 0, 'www.': 0, 'xml': 0}, 'pii_count': 0, 'substrings_counts': 0, 'word_list_counts': {'cursed_substrings.json': 0, 'profanity_word_list.json': 0, 'sexual_word_list.json': 0, 'zh_pornsignals.json': 0}}
{'dir': 'git-commits-cleaned', 'id': '979509', 'n_tokens_mistral': 6405, 'n_tokens_neox': 7190, 'n_words': 211}