wangjie_fourth

may the force be with you

0%

2020年总结

不知不觉都毕业一年半了,以前不觉得时间过的很快,但自从毕业之后就发现时间飞逝。看来还是在学校待的太过松散,进入社会才发现自己有好多事没做,老老实实挨了社会的毒打。

先翻一翻今年早期做的计划

1、写个Redis系列博客
害,没完成。不过Redis基本的功能都玩过了,自己也搭建主从模式,其实草稿都差不多了,但是总感觉有点问题,还要再改改,就一直拖到现在。不能再拖了,明年找时间把它搞完。

2、系统学习设计模式
叮!这个弄完了,不过也就大致看一遍,知道它的定义、怎么用、用之后与用之前的区别。后面打算遇到哪个模式的实现,再具体把这个模式更新到博客上。

3、学学MySQL优化技巧
这个….其实没有啥东西,要是不认真求根问底的话,其实一俩天就看完了。感觉这个计划设的有点唐突了

4、学前端
叮!这个岂止是学,我今年感觉进步最大的就是前端了,工作本身就前后端一起写,还做了微信小程序。害,感觉对于个人职业来说,好像加分点不是很多,不过工作需要写前端,这也就没办法了。

再谈谈今年的事

工作效率

不知道是从哪个地方看的了,不知道哪位大佬建议的,没事要注意自己的工作效率,这样能节省出时间来提高自己。害,这点今年深有体会。

个人感觉工作效率提升要从俩个方面:

深入了解某些常用的技能

这一点其实是从工作中发现的,我发现有些人Git用的不是很熟悉,平常开发流程简单还好,万一有的时候需要他合并其他分支或者reset到某些特定的commit下,这样反复来几次,可能他就晕了。同样的也有对mavengradle的掌握,一些包冲突、软件部署流程复杂的时候,也影响工作效率。

不要问为啥软件部署流程复杂,我也想不明白,为啥不写一个脚本来简化部署流程。非得搞一大串操作

这一点其实是没太大办法的,不熟悉就尽量熟悉这些技能。这样在后面工作使用的时候,做到心里有底,最起码你git操作的时候,你心里大概能想明白git tree发生了啥事情。

简化一些固定操作

这个就很多了,比如说能用一行命令解决的事,绝不用俩行命令。没事的时候,把常用的命令alias成比较简短的操作。对于程序猿来说,还有一个就是能用键盘解决的,就坚决不用鼠标,用过vim的人都说好。
我有时候还尝试简化自己平常机械的工作。比如说:写了projectGenerator来简化新建表、修改表时,自动对实体类、mapper.xml进行修改。写了chromeCustomerPlugin来省去自己平时对鼠标的使用。

不过,害,说实话,效果甚微。感觉自己就是瞎写

代码

代码应该去辅助业务

其实写代码最有意思的就是自动化,帮助你简化操作步骤。如果你做业务系统的话,如果你能把这块业务正常上线,收集一点这块业务的相关数据,再把关键流程的节点做成动态配置,似乎这块业务就没啥要做的了。从这一点看,代码最起码能简化工作流程,还能看到这块业务上线后,带来的具体效益。
还有一点是,帮助新业务开发的决策。其实很多业务的流程就像一个状态机,根据不同的状态执行不同的逻辑。如果你发现代码中可以让整个状态机无线循环下去,那就说明这块业务设计是有问题。

代码设计

有的时候,你新开发某块业务的时候,需要你自己去建模。通常情况下,就是将现实实际行为进行建模。具体表现为:我根据这个原始数据,就可以完全复现之前的用户行为。具体到后面的业务逻辑,我们完全可以转移到代码层去处理;或者新建其他来存储。
这样的好处就是:

  • 后期逻辑变化,我们还是可以追溯到原来的数据;【比如计算钱的逻辑,原来是怎么样,现在又是怎么样,中间发生了什么事】
  • 业务需求有时候是会跟前面需求违背的,按现实行为设计表结构,后期新需求的时候,你可以理解出那地方的需求不对。

当然也有缺点:

  • 业务有时候是对上面的数据进行变化的,就会需要额外的代码来实现

    后期有些小技巧可以规避的。其实就取舍而已。

系统的动态配置化

个人自己的思考,一个业务系统从开始开发、逐步改善、设置监控数据、统计业务指标后,还有一个很重要的功能就是在不影响系统运行的情况下,添加、修改业务功能。记录一下现在业务上的动态配置:

  • @RefreshScope + @Value
  • 在项目中引入groovy + MySQL
  • 配置中心使用

自己写工具的小心得

不要过早设计,专注于主要功能的实现

在写projectGenerator的时候,其实就是想生成固定的模版代码,但是项目模版的配置数据有点多,比如说:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
{
"tables": [
{
"tableName": "table_info"
}
],
"projectConfig": {
"controller": {
"generator": false,
"prefix": "cn.victorplus.finance.product.controller"
},
"service": {
"generator": false,
"prefix": "cn.victorplus.finance.product.service.impl.product"
},
"manager": {
"generator": false,
"prefix": "cn.victorplus.finance.product.manager"
},
"mapperJ": {
"generator": false,
"prefix": "cn.victorplus.finance.product.mapper.product"
},
"mapperX": {
"generator": false,
"prefix": "/mapper/"
},
"entity": {
"generator": false,
"prefix": "cn.victorplus.finance.product.bean.db.product"
},
"dto": {
"generator": true,
"prefix": "com.wangjie.test"
}
}
}

我心里想常用场景下,这些generator都是true,是不是可以找地方来优化一下,只需要在一个地方配置即可。如果每张表生成逻辑都不相同的话,又如何兼容处理呢?
为了处理上面不怎么常用的功能,我把解析配置、模版代码生成那块代码大改。而且自己代码也写的很有问题,耦合性超高,后面改了几次,就有点接受不了。所以,以后如何再做小工具,就先完成主要的功能,注意一下重要模块之间的耦合度。

注意模块之间的解耦

这就是上面说的部分,其实生成代码模块和解析配置文件抉择是否生成模块是一早就应该想到解耦合,这样我后面再修改抉择是否生成模块那部分代码就不会影响到具体生成代码那部分代码。
其实应该在做之前,就应该先明确大概有哪些模块,而不是像写shell脚本那样,无脑的一直写下去。这要是写的不是很多代码,后期害方便修改修改,但代码一多,想修改都很麻烦。

读书

惭愧。。。今年看文档比较多,读的书好少。明年要增加一点阅读量了。

黑客与画家

这本书在大学的时候,就听说了,一直没去看。作者是硅谷创业之父Paul Graham,全书通过对他自己人生的经历表达了自己对黑客的看法。我记不清一些具体细节,但有些地方映像比较深刻。

财富

原话我记不清了,大概意思就是财富等价于人们的需求,现在我们所用的金钱是这种需求的现实表示。其中人们的需求大概分为俩种,(1)人类已经明确知道自己需要的需求(2)人类现在并不清楚,但其实他是需要的需求。举一个不是非常恰当的例子,(1)表示的就是粮食,(2)表示的就是支付宝、苹果。
其实(1)很容易理解,也没啥说的,这种需求要不然是已经能够普遍满足,那种需求比较紧缺的都已经有人安排好了。(2)对程序员来说,其实是更有意思的。大佬也在书里说,很多人发财都是创造了很多(2)这种财富,然后他就可以获取等价的金钱。这好像就是为啥埃隆马斯克不担心没钱,可劲的造。

现实往往是不合理的

这一点其实作者没怎么写,但是我突然有点理解到为啥我老感觉工作上有些事都是奇奇怪怪的,也有点解答了我去年对工作的疑问。书里说到作者想把自己创建的公司赶紧卖给大公司套现,那个时候其实作者公司的开发者并不是很多,一切都是以最有效率的方式来解决,增加太多人其实对公司业务并没有太大的帮助,但是那些收购公司的人不这么认为,他觉得你没有达到多大的规模,说明这个公司其实还是有很大的不稳定性。无奈,作者为了卖了公司,招一大批人,后来就是顺利卖出。

沉默

作者以小时候自己书呆子的经历表达书呆子的沉默其实并没有什么,他们内心其实还是有很多的思考,只不过有些人在没有完成之前、在认为这事暂时不能解决之前,不愿意多说。

Effective Java3

这本书断断续续看过好几遍,真让我说啥,还真的不记得了。但有印象的是,之前看没咋看懂,今年看的时候,感觉有很多东西。搞不好明年又会再翻一翻。

工薪族财务自由说明书

这本书是从我关注的一个博主发的一篇文章了解到的,https://mp.weixin.qq.com/s/on1gvWdLZUF9WVc110zk2Q。书里就是说作者认为以他所说的方案,能够在某个年纪之后,做到去做自己喜欢的职业,而不在乎这份职业给他带来的薪资。光从他给的方案来说,其实还是有很大可能的,但是前提你还是要有一点的东西。害,对于目前的我,努力工作才是王道。

Spring Cloud微服务实战

程序猿DD-翟永超写的一本稍早一点的SpringCloud入门书,版本有点老,但是还是可以看的。走马观花的看了一遍,也是顺着工作用到的一些组件来学的。

明年目标

培养其他爱好:拍照

我想成为一个有趣的人,不说他人认为我有趣把,最起码也要自己认为自己不无趣。所以,找找其他爱好也许能认识一些人,交到一些朋友。从简单入手,没事找一些特定景点玩一玩,拍一拍好看的照片,emm,应该还不错。

坚持每周更博客

这一点是因为我发现有些知识点你写了博客之后,就很难忘记。我这个弱鸡还是没事多写写博客,一者是为了总结自己学过的知识点,二是锻炼一下自己的写作能力。

为了防止意外,这里做一个buffer,翻译其他人文章也算我这周完成博客

还房贷

目前为止,我的房贷基本上都是我父母在还,我目前就还过一个月。害,薪资可悲,争取明年能够从我父母手上接过这个房贷把。

代码

(1)学习一些大数据方面的知识
到工作的时候,才发现大数据有多火,光会后端感觉没啥用,扩展一下自己技能点,去学习一波大数据。

(2)总结今年学习过的东西
今年对后端和前端都使用了很多,但一些东西还没有仔细的去总结。明年多写写一点关于这些东西的内容,总结总结。

(3)接着做小工具
其实后端还是有点意思的,一些往自动化操作还是很令人向往。比如说我想了解的一些dead code检查MyBatis sql检查,都想去搞一搞,虽然没啥用,但是做的时候,还是能学到一点其他东西。