2018年终总结

2018年终总结

How time flies

很快,再过一个工作日就又到元旦假期了,这意味着2018年已经走完了。回头看看过去这一年,真的是相当的魔幻啊!

工作

2017年的9月份,入职了搜狐畅游移动互联事业部旗下的蜂群工作室,这是我的第一份工作。这份工作很棒,在这里,我第一次体验了整个完成的开发流程和开发规范,积累了宝贵的工作经验,当然还遇到了一大波很有趣的人。

老毕:

蜂群工作室的项目负责人,很NICE的一个领导,面试的时候问:你一个人住么?我说是的,然后老毕说那可不行啊,我们公司都是有家室的人,你过来了也给你配一个,啊哈哈哈,我内心想的是,还有配一个这样的骚操作么?印象最深的是,得知外派员工春节期间不能像畅游本部员工那样享有三天的探亲假之后,老毕找到我说:没关系,我们可以团队内部实现一下,你申请外出就好了。哇,可以说是相当的感动了。

小夏哥

小夏哥,这算是我的老师了,我的直属leader,是我们的技术负责人,小夏哥是一个很好的人,他的技术全是自学的,这个人精神毅力简直强到可怕,一直在学习,总是看到他再看一些机器学习的东西。在日常的工作中,小夏哥总是很维护我们的技术团队,包括周会复盘上出现的问题,我们有问题解决问题就行了,不要去苛责技术人员的责任,每个人都会犯错。尤其是在有任务给我的时候,小夏哥会额外的给我开一个小会,帮我分析一下业务流程,把每一步都给我解析的很彻底,建什么表,流程该怎么走都说的很清楚,相当的感动,这个人真的很棒。在我的第一份工作中有这样一个指路人,很幸运。

璐瑶

这个是我们的产品经理,说实话我一开始并不怎么喜欢这个产品经理,因为她给人的感觉很不好惹,经常把实习生的小产品训的一文不值。但是我之所以也会说这个人,是因为这个人其实是刀子嘴,豆腐心,很善良的一个人。我妈在12月份的时候住院了,我突闻这个消息,着急的差点飙泪,要请假回家。璐瑶安慰我不要着急,还把请假的过程都省去了,说她会帮我处理好,平时谁感冒的时候,她也很关心,还会拿出很多自己的药给我们吃。特别是最后,我们部门要解散了,本来外派员工,直接就脱离了,但是她为我们多争取了15天的缓冲期,我觉得真的是相当的棒了,自己团队的人不能吃一点亏。

当然,还有一些其他人,就不再一一提起:

Thanks for you :

号称女装双雄的测试同学:彬彬&&初锐,这两个同学在年会的时候变身朱碧石,骚断腿。

天然呆的小产品:赖云 , 呆萌呆萌的小产品,哦哦哦,这个样子是日常。

还有热心帮我查代码的姐姐:薇薇姐 一言不和就自己动手帮我查代码中的问题。

还有好为人师的:强哥 强哥这个怎么搞?强哥,你看这个?强哥?

最后还有瞬间爆炸的设计师:王先生 王先生一言不和就和产品刚,分分钟爆炸给你看 。

畅游的故事

畅游的故事最具代表性的,应该是年会事件了,我负责开发整个年会抽奖系统。在2000多号人的会场里边,进行到第一轮抽奖的时候表现的没有任何问题的抽奖系统在第二轮抽奖的时候抽奖名单突然白屏,真的是给我吓坏了,头皮一阵发麻。虽然还顶着如花的妆容,但是也要马上去check日志,看看到底出了什么问题。我擦,这是个什么问题?强哥?你见过这个问题么?强哥往边上一闪,没,没有。嘤嘤嘤,好想哭,这个错误定位不到啊。台上的表演还有5分钟就结束了,这个问题要在下一轮抽奖之前解决。好紧张,好刺激。查看一下数据库,看一下写入的中奖信息,卧槽,数据居然还在变化,马上想到应该是第一轮中奖之后的微信消息推送接口执行时间过长,导致脚本超时了,但是这个进程还在。所以数据还在变化。得益于出发去年会现场之前小夏哥的提醒,补充过一个重新推送没有推送成功中奖信息的脚本,所以果断做决定,告诉配合我的前端,中奖之后不再调用推送消息接口,改为抽奖结束后脚本推送。然后提醒吊胆的等着主持人上午抽下一轮的奖,OK,完全没有问题,完美。

如花

畅游&&诸葛找房

在小夏哥的指引下,我学到了挺多东西。虽然我也希望能继续在畅游呆下去,但是我们部门的盈利能力不行,不再继续孵化了,CEO的决策终结了我们部门的命运。2018年5月份的时候,我离开了畅游,挺不舍的。但是离开未偿不是一个新的开始,祝各位安好吧。

一个月后从家中归来的我,入职了诸葛找房,一家以聚合房屋信息为主要业务线的B轮创业公司,其实诸葛很好,不论是上班时间还是福利待遇都相当的不错。早上10-10.30才上班,一日三餐都包管,每月还有1K的房补。虽然是一周单休一周双休,但是不论从工作环境还是企业文化上来讲都是比较舒适的,但是两个多月后,我还是离开了这家公司。现在想起来其实是有点任性的,但是我觉得那种环境会让我对技术产生怀疑,公司内部的技术团队之间怎么说呢,会互相嘲讽,这真是让我感觉有点难以下咽。其二是,我当时的负责人,写的代码中居然有很多,再遍历中去查询的操作,这令我十分的惊奇。这种操作,除了新手基本没有人会干这种事情。客户端反馈接口响应比较慢,他去优化,然而你们猜猜看他干了什么事情,他这次是不去遍历中查询mysql了,但是他去遍历中查询redis。我有点想骂娘,明明可以通过构建合理的数据结构来完成这件事的。只要查询一次就好了。其三,诸葛的KPI考核机制,有员工会因为输出不够而被延迟转正说实话,我是第一次听说这种操作,当然,这件事发生在普通员工身上还比较能理解,可是连我们的部门VP身上也发生了这种事情,那我就不得不考虑我接下来的转正事宜了。斟酌再三,还是跟HR谈了离职。

后续

从诸葛离职之后,又投了新的公司,期间只面试了两家:360和信贷

在和信贷的面试经历还是很有意思的,谈技术的时候,我的面试官说,你写的慢一些,你别光快了,那不对。你说的是对的,写出来的不太对。这让我想起一个关于面试的段子:

面试官问应聘者:你有什么特长么?

应聘者:我心算特别快。

面试官:好那你算一下1687899*84651315等于多少?

应聘者:等于488884546。

面试官:你这不对啊?

应聘者:你别管对不对,你就说快不快吧?

哈哈哈哈哈哈,好了,我们接着往下说:

技术面完之后,面试官说帮我喊一下HR,HR就和我简单聊了聊,然后说让我先回去,CTO今天上午不在,没办法复试。我出门的时候又碰到面试官,面试官说:诶?你这是准备回去了么?我不是帮你喊了HR了么?什么情况啊,你先别着急走?我帮你问一下。这个动作,让我特别暖心,哈哈哈,我是不是太容易被感动了。反正当时就觉得这个面试官,也就是我的leader人好好哦。看样子面试应该是通过的。可以考虑这一家。

下午的时候又去360面试:

说实话,360我内心还是比较向往的,毕竟是第二梯队的大厂,而且我对360并不排斥,我甚至还用过360的手机,这要是有机会去360工作,可以说是棒棒哒。然而在我通过了两轮技术面试之后,HR过来找我谈,说由于我毕业院校和工作经验的问题,给了我否定的答案。据称是,我2017年毕业,工作经验又不足。相对来说还是社招的人或许潜力更大一些。我:emmmm,那好吧,以后有机会再一起共事吧。

最后还是入职了和信贷。

和信贷的技术团队也很棒,技术leader也在推进新技术,很符合我的成长路线,团队也很年轻。这很好,一个新的篇章。未来,我来了。。。

关于未来

2018的故事就此告一段落,未来的故事,就让2019去抒写吧

一个有趣的BUG

一个很有意思的Bug

某天测试同学再次向我反馈,你这个删除按钮虽然置灰了,但是还是可以点击啊?

我:????(黑人问号)

卧槽?不可能啊,按钮都disabled了,怎么还可以点击?还能触发click事件?开玩笑的吧?,匆忙应付了测试同学开始复现这个Bug.

复现

重新写了个页面demo,开始测试,卧槽?复现不了啊,这尼玛。。。。?

摸不着头脑

叮!事情の真相

没办法复现很烦啊,什么鬼?遂去原页面检查,然后发现了这样一段代码:

1
2
3
4
5
6
7
8
9
<div class="btn-cancel">
<button disabled>删除</button>
</div>
<script>
$(".btn-cancel").click(function(){
//业务逻辑....
})

</script>

卧槽,点击事件居然是绑定在div上的,由于button在div内部并且是disabled,button处于不可点击的状态,所以测试同学点击到的其实是div!!!

真的是十分的有意思了。Funny!

50行代码写的一个插件,破解一个H5小游戏

小游戏链接:测测你的眼睛对色差的辨识度http://www.webhek.com/post/color-test.html?from=timeline

废话不多说,先放代码:

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
38
39
40
window.onload = function () {
console.log("点击开始测试-------");
//点击开始按钮
var play = document.getElementsByClassName('play-btn');
play[0].click();
//获取画布盒子
// sleep(1);
var box = document.getElementById('box');
var num = box.children.length;
console.log('共有'+ num + '个字元素');
//把第一个元素定义为基础色
var color = [];
var basecolor = box.children[0].style.backgroundColor;
console.log(basecolor);
//循环

function clickButton() {
console.log('下一关');
box = document.getElementById('box');
num = box.children.length;
color = [];
basecolor = box.children[0].style.backgroundColor;
// console.log('进入下一关');
for (var i = 1; i < num ; i++) {
color[i] = box.children[i].style.backgroundColor;
}
for (var i = num-1; i >0 ; i--) {
if (color[i]!=basecolor && color[i-1] ==basecolor) {
box.children[i].click();
console.log("点击第"+(i+1)+'个元素');
} else if (color[i]!=basecolor && color[i-1] !=basecolor) {
box.children[0].click();
console.log("点击第"+1+'个元素');
}
}

}
setInterval(clickButton,300);

}

游戏界面:

游戏界面

思路都在代码里了,就是取到全部的色块元素,拿CSS对比,找到不一样那个,JS点击,进入下一关。当然,代码写的很粗糙,还有改进的空间。轻喷。

说一下流程:

首先呢,我们要把JS代码注入到游戏页面中,这个我是通过把代码打包成浏览器插件实现的。我做的谷歌浏览器的插件,当然你也可以做360的,火狐的,等等。

具体不同浏览器的插件的方法,你可以通过百度,在CSDN上找到对应的文章。

如果有人想试一下的话,可以下载这个谷歌浏览器的插件:

链接: https://pan.baidu.com/s/1yASkGKcrz1pPt0vY6gxqeg 提取码: jvcu

插件安装方法:

解压文件到一个好找的文件夹,然后 谷歌浏览器-》设置-》更多工具-》拓展程序-》开发者模式打开-》加载已解压的插件。

插件使用:

打开游戏界面,,插件就会自动运行,如果出问题的话,就多刷新几次。

放在最后:

体验几次之后就把插件移除吧,代码写的不完善,插件会在每个页面都运行,而JS里有一个定时器,因而可能会拖累浏览器的速度。

Your browser is out-of-date!

Update your browser to view this website correctly. Update my browser now

×