2018年终总结,释放了积压两年的心情

2024-01-02 07:08

本文主要是介绍2018年终总结,释放了积压两年的心情,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

转载请注明出处:https://blog.csdn.net/guolin_blog/article/details/85225476

本文同步发表于我的微信公众号,扫一扫文章底部的二维码或在微信搜索 郭霖 即可关注,每个工作日都有文章更新。

时光如梭,今天是2018年的最后一个工作日,等下次我们上班的时候就是2019年了。2018年你都做了哪些事情,实现了什么目标呢?或许大家也会跟我一样感觉每天都忙忙碌碌的,但却又想不起来这一年到底忙了些什么,那么这个时候写个年终总结就是一个不错的选择。从2013年开始,这已经是我连续第6个年头写年终总结了,也希望我能一直坚持写下去。另外大家也可以在留言区分享一下你自己的年终总结,或者定一个明年的计划和目标也是挺好的。

首先,今年对我来说最重大的一件事,也是最近刚发生的一件事,就是我耗时两年编写的一个开源项目——趣享GIF,终于在今年如约上线了。要让我回忆一下这个项目的历史,甚至能追述到2015年的年终总结。在那一年的年终总结里,我就提到了想做一个比较大的开源项目,其实就是趣享GIF的前身了。只是后来16年的时候我答应了图灵出版社编写《第一行代码 第2版》,这个项目就一直拖到了17年才开始动工。之后项目的进展并不怎么顺利,我也算是在摸索中前行吧,磕磕绊绊了两年之久才终于发布了第一个上线版本。

这两年对于我来说真的是非常煎熬的两年,当然不仅仅是因为这个项目,还有很多生活上的原因。我尽可能多地利用了每天的下班时间、每个周末时间来写代码,几乎每天都在写,但是却没人知道,也没人看得到,而且持续了两年之久,这种感觉是很难受的。因此当12月14号项目上线的那一天,我真的感觉到压抑了太久太久的心情终于释放了,那个周末我好好休息了一次。

当然,对我来说项目上线并不是终点,接下来我又开始了忙碌,因为我答应大家要尽快推出开源版。开源版和普遍版最主要的区别就在于登录,为了使登录功能最简化,我直接舍弃了传统的账号密码登录方式,而是采用了第三方账号登录。但是像微信、QQ、微博之类的第三方登录都必须验证App签名,也就是说如果开源版还使用第三方登录的话,那么由于每个人打出来的App包签名都不一致,就会导致登录功能全面失效。因此,在开源版中我准备将登录功能改成使用手机短信验证的方式。

直接复制一份代码出来,专门改一下登录这部分的功能,这是最快的方式了,但是这样我以后就必须维护两个代码版本,而且这两个代码版本重复度还极高,维护成本倍增,我是不会这么干的。最好的做法是将公有代码提取到一个common模块当中,然后新建一个app模块和一个opensource模块,分别用来实现普遍版和开源版的特有功能,这样就可以将代码重复度将到最低,目前我也是这么做的。开源版的开发工作现在仍在有条不紊地进行当中,大家也不用心急,我会尽可能早地让它和大家见面的。

再来谈谈博客吧,今年的博客只能说是不太出彩,加上本篇一共也只写了7篇文章,略微有点尴尬。主要我确实是太忙了,每次筹备写一篇博客都要抽出将近一周的时间,然后开源项目的开发就要暂停一周,我就感觉很心疼。希望明年能抽出更多的时间来写写博客吧,我准备抽出几个趣享GIF的功能模块专门写几篇博客来进行解析,大家有感兴趣的模块也可以留言告诉我。

接下来谈一谈另一个我维护了4年之久的开源项目LitePal。说句我自己的心里话,LitePal真的很好用。前段时间我抽空学习了下Google的Jetpack组件,并且尝试结合Room来实现一个MVVM架构的小项目,但Room确实是太难用了。使用Room来编写DAO逻辑不光要依赖编译时注解生成大量执行代码,很多时候还需要手动编写SQL语句,而且新手使用还非常容易各种编译不过。最终无奈我将DAO这部分功能换成使用LitePal来实现,然后很轻松就写完了。所谓的MVVM架构并不是必须全部使用Google提供的开发组件去编写才行,LitePal在不经任何修改的情况下就可以无缝结合MVVM架构使用。刚才提到的那个小项目本来只是我用来练练手的,但是写完之后发现代码确实不错,有一定的参考价值,过段时间我也会将这个小项目开源出来。

今年LitePal虽然只推出了两次版本更新,但全是大的版本更新,不仅API变得更加合理和完善,而且还全面支持了Kotlin语言。其实现在我脑子里还构思了很多LitePal可以加入的新功能,并且都是一些极具特色的功能,唯一的问题就是我能不能有足够的时间去实现这些功能,希望会有吧,也希望明年LitePal能够变得更加好用。

还有一件事其实我现在还不太想谈,因为还没有完全确定下来,但是这里简单提一下吧,就是我这段时间正在和图灵商讨《第一行代码 第3版》的写作计划。写是一定会写的,只是我暂时还确定不了动笔的时间,也无法预估什么时候能完成。现在我能提前告诉大家的是,《第一行代码 第3版》会使用Kotlin语言对全书进行整体改版,书中所有的代码都会使用Kotlin进行重写,并且书中会讲解Kotlin语言的基本用法,以及会穿插讲解一些Kotlin的高级技巧。能告诉大家的就只有这些了,其他问题你们现在问我我也回答不了,因为这个事情目前变数还比较大。

最后来谈一谈公众号吧,自从2016年开始运营公众号以来,不知不觉已经过了3年时间了。在这3年里,我的公众号每个工作日早上8点都发布文章,从不间断,很多小伙伴甚至都养成了上班路上看篇技术文章的习惯。当然,这里我必须要特别感谢一下所有向我的公众号投稿的作者们,谢谢你们贡献了这么多优质的文章,帮助了那么多的同行学习与进步,也希望未来有更多朋友愿意加入到这个技术分享的队伍当中,欢迎你们继续多多投稿。

在去年的年终总结中,我说了18年公众号会考虑一下适当的盈利,那么今年确实是接了一些技术相关的推广,也赚了一些钱。不过对于推广的内容和频率我都是严格把控的,尽可能少地影响大家平时的阅读体验。另外,我也做到了去年对大家的承诺,从公众号的收入当中抽取一定的比例来多做做抽奖活动。今年抽奖活动一共做了多少次我并没有仔细统计,平均下来大概每个月有一次左右吧,也希望这种模式我可以一直运营下去。

好了,今年的年终总结就写到这里吧,希望所有人2019年,更加精彩。

链接:

2022年终总结,我的10年Android之旅

2021年终总结,我躺平了

2020年终总结,可能是我人生收获最多的一年

2019年终总结,所有的时间只为做好一件事

2017年终总结,一个不顺心的槛年

2016年终总结,新的里程和新的开始

2015年终总结,忙碌和无所事事的一年

2014年终总结,我决定要实现的三个目标

2013年终总结,我这一年的点点滴滴

这篇关于2018年终总结,释放了积压两年的心情的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/561676

相关文章

BUUCTF靶场[web][极客大挑战 2019]Http、[HCTF 2018]admin

目录   [web][极客大挑战 2019]Http 考点:Referer协议、UA协议、X-Forwarded-For协议 [web][HCTF 2018]admin 考点:弱密码字典爆破 四种方法:   [web][极客大挑战 2019]Http 考点:Referer协议、UA协议、X-Forwarded-For协议 访问环境 老规矩,我们先查看源代码

最近心情有点复杂:论心态

一月一次的彷徨又占据了整个身心;彷徨源至不自信;而不自信则是感觉自己的价值没有很好的实现亦或者说是自己不认可自己的目前的生活和状态吧。 我始终相信一句话:任何人的生活形态完全是由自己决定的;外在的总归不能直达一个人的内心深处。所以少年 为了自己想要的生活 多坚持努力吧、不为别人只为自己心中的那一丝执着。 由此我看到了一个故事: 一个心情烦躁的人去拜访禅师。他问禅师:我这辈子就这么注定了吗?您

2018秋招C/C++面试题总结

博主从8月中旬开始大大小小面试了十几家公司,至今也许是告一段落吧,希望后面会有好结果,因此总结记录一些C/C++方向常见的问题。和大家一起学习! 参考了互联网的各种资源,自己尝试归类整理,谢谢~ 一、C和C++的区别是什么? C是面向过程的语言,C++是在C语言的基础上开发的一种面向对象编程语言,应用广泛。 C中函数不能进行重载,C++函数可以重载 C++在C的基础上增添类,C是一个结构

大厂算法例题解之网易2018秋招笔试真题 (未完)

1、字符串碎片 【题目描述】一个由小写字母组成的字符串可以看成一些同一字母的最大碎片组成的。例如,“aaabbaaac” 是由下面碎片组成的:‘aaa’,‘bb’,‘c’。牛牛现在给定一个字符串,请你帮助计算这个字符串的所有碎片的 平均长度是多少。 输入描述: 输入包括一个字符串 s,字符串 s 的长度 length(1 ≤ length ≤ 50),s 只含小写字母(‘a’-‘z’) 输出描述

vulhub GhostScript 沙箱绕过(CVE-2018-16509)

1.执行以下命令启动靶场环境并在浏览器访问 cd vulhub/ghostscript/CVE-2018-16509 #进入漏洞环境所在目录   docker-compose up -d #启动靶场   docker ps #查看容器信息 2.访问网页 3.下载包含payload的png文件 vulhub/ghostscript/CVE-2018-16509/poc.png at

Python JAVA接口UTC 时间 '2018-08-06T10:00:00.000Z' 格式转化为本地时间

Python JAVA接口UTC 时间 '2018-08-06T10:00:00.000Z' 格式转化为本地时间 方法1 import datetimeorigin_date_str= "2019-07-26T08:20:54Z"utc_date = datetime.datetime.strptime(origin_date_str, "%Y-%m-%dT%H:%M:%SZ")loca

读锁的获取与释放是怎么实现的?

在 ReentrantReadWriteLock 中,读锁的获取与释放是通过管理读锁计数和线程状态来实现的。以下是更详细的说明,涵盖了读锁的获取与释放过程: 1. 读锁的获取 读锁获取的核心是允许多个线程同时持有读锁,只要没有线程持有写锁。 获取读锁的步骤 检查写锁状态:在获取读锁前,首先需要检查是否有线程持有写锁。如果没有线程持有写锁,当前线程可以安全地获取读锁。 增加读锁计数:如果

Linux - Tcp连接建立和释放的三次握手四次挥手

一、TCP报文段首部格式         源端口/目的端口:各占2个字节,分别写入源端口和目的端口,端口是传输层与应用层的服务接口    序号:占4个字节,TCP连接中传送的数据流中每一个字节都有一个序号,序号字段指本报文段所发送的数据的第一个字节的序号    确认号:占4个字节,是期望收到对方下一个报文的第一个数据字节的序号    数据偏移:占4个字节,它指出TCP报文的数据距离TCP

APK安装释放文件的过程

1、DDMS 在学习Android 应用程序安装相关文件的过程时,我们需要先了解一个工具DDMS( Dalvik Debug Monitor Service),即Android 开发环境中的Dalvik虚拟机调试监控服务。打开这个工具集有一个File Explorer(文件的浏览器),该文件浏览器可以帮助我们查看虚拟机上的所有文件。如图1-1所示: 2、Apk的安装

2018年年终体会~

说下最近的一件事情:2018年12月08日华为云培训云原生课程,我坚持了两周,中间休假了,回来就忘记了。错过了一天的打开。这次21天的云原生课程彻底失败。反思后,不是我不想学习,也不是我没有毅力,而是人总是容器在平凡中失去自己,失去自己的目标,就像《千与千寻》中一样,慢慢的生活磨砺自己,慢慢的平淡消耗你自己,你自己都忘记了,自己是为了什么,每年都会给自己立flag,可是很难坚持下去,就