十年风雨,一个普通程序员的成长之路(十一)再见,2019。你好,2020!
00 回顾2019
在过去的这一年里,收获最大的便是眼界了,
与高水平的同事们一起合作,让人愉快。
与高水平的领导共事,则让人受益匪浅。
2019年元旦前后那段时间,突然陷入了焦虑,买了一些极客时间的课程,加入了一些知识星球。也确实提升了自己不少关于职场、工作、生活的一些认知。
但是收货最大的还是在工作之余,开通了一个公众号【姚毛毛的博客】,将自己平日的笔记、读书心得整理发表,并已经有了38篇原创文章。
在这里,感谢公众号作者【沉默王二】和【大飞码字】。
而持续的输出,更是倒逼着自己不断去学习和总结。
在博客园的文章也多次上了最多推荐和最多评论,还是有点鼓舞的。
甚至还有约我写书的,不过感觉自己的能力还有待磨炼,就婉拒了。
2019年,在公司内也做了几个有意思的项目,旁听了公司大佬们设计的架构师训练课,还参加了公司内部的一个数据库高级训练营。
01 PC端自动化测试工具
PC端自动化测试工具的调研这个过程,其实挺有意思的,就是寻找windows、Linux上各种开源、商业工具,并去使用、验证、对比。
特别是现在关于PC这块的资料都比较少,因为现在的软件基本都已经是B/S和移动APP的天下了,大片大片的资料都是基于浏览器、APP的自动化工具。
这个项目的目标就是为公司内多种不同技术栈(nw.js、QT、.NET、cefsharp等)的多款PC端产品,调研合适的商业或自研工具,进行PC端自动化测试,节省重复的人力工作。
在两周到一个月的时间内,调研了10多种自研及商业工具(UIAutomation、Selenium、LDTP、AutoIt、SIlkTest、poco、Airtest、PyAutoGUI、按键精灵、Squish、HP QTP[原UTF]、Ranorex),编写了自研及商业工具的演示脚本,与各个产品的研发及测试人员进行多轮沟通、演示,最终选定了ranorex工具。
其功能强大、价格便宜,试用后在公司内部广泛使用,节省了较多人力资源(节省投产比可达1:比10以上),满意度较高。
02 跨网闸数据交换平台
其二就是本年投入精力最多的项目,就是模拟ACK(Acknowledge character)应答做出了跨网闸的文件交换平台。
这是第一次这么快节奏的带队开发一个项目。
一个月,初版开发完成,还有一个月调试、开发插件、现场与其他系统对接、摸清网闸情况,分步部署。
虽然延期了,但还是于4月底成功上线。
历史两个半月,几乎每天都是996。(而这也为我的身体健康埋下了隐患。)
本项目一举解决了现场文件交换速度慢、不稳定、乱丢包、无监控等等问题。
虽仍有许多未尽人意之处,但相比原来的交换手段(没有监控,没有异常重传,听天由命)已经是贾玲到陈希妍的进步了。
回顾项目历程,春节过后第一天上班,就一脸懵逼地被拉进了这个项目,然后成了研发leader。
又要求一个月交付。倒排了下工作计划,几乎每天要完成一个功能模块。
但是,又有点跃跃欲试,想挑战自己一下,便接下了这个任务。
中间经历了很多波折,但是结果还是不错的,在项目落地后确实解决了很多问题,所以后续公司其他产品、项目也陆续采用了本平台作为基础组件。
在这之后开了许多分支做了各种项目的兼容优化,又在合适的时机统一了版本。
03 总结:得到与失去
眼界
1、在PC端测试工具的调研过程中,追查各种文献、资料,下载、使用、编写脚本、比对、验证,在这个过程中强迫自己连蒙带猜地去翻译英文文档,是痛苦而又蛮有意思的一件事情。
在github上提issue,邮件联系工具作者,向商业工具的公司询价,基本上不懂什么英文的我,被迫着使用翻译软件,通过邮件与外国人交流(笑)。
在这场调研中,我总结了关于PC端测试工具的几种通用方法。
(1)屏幕坐标定位。按键精灵、pyauto基本都是这类。
(2)图像抓取。SIlkTest基本就是这类工具的鼻祖,网易的Airtest其图像抓取能力就是基于这个开发的。
(3)元素定位。如UIAutomation、AutoIt、poco,Airtest的元素定位就是基于poco开发的。
而nw.js这种封装Chromium浏览器成为伪PC端的工具,使用selenium就可以解决自动化测试的问题。selenium就是基于元素定位的。
在所有自动化测试的比对方法中,元素定位应该是最靠谱的了。
而最难解决元素定位的就是同样封装了webkit作为客户端的cef了,找寻了各种官方资料都没法解决,原来是开发人员用cef做了两层封装,所以取不到浏览器中的元素。
幸而最后找到了ranorex这个工具,否则就只能使用UIAutomation作为基础组件进行自研了。
健康
在交换平台开发的日子里,几乎每天都要写日报,汇总各小组成员的进度情况,评估总进度状况,给各种大佬邮件抄送。
忽然有一天晚上,回家已经23点多,在上床睡觉前,胳膊拉伸了下,突然就胸口有点疼痛。
本以为是自己用力过猛,却没想到这样的疼痛持续了十多天。
最后请了假,去医院拍了胸片、心电图,都没看出什么毛病,只是现在一加班,比较疲累,就会隐隐疼痛。
而疲惫的身体也开始让我渐渐思考,工作以外的一面。
人际协调
在交换平台在现场第一次上线时,没有处理好与测试团队、对接系统、现场部署团队的协调关系,进一步发现了自己的能力缺陷。
适合做事。做冲锋陷阵的前锋。
不适合处理复杂的人际关系。不能在一个各怀心思的团队中挂帅。
有时做事的方法会让人产生误会。
有时又把事情想得过于简单、理所当然。
用领导评价的话来说,太“简单真诚”了点。
或许是因为之前一路过来所在的团队都比较简单吧。
终于在大公司体验到了一次【大公司病】。
幸而没有病入膏肓。
此后对于本次延迟上线的事做了一次复盘,我的复盘是缺少一个镇得住场子的人,来协调处理上线这件事。大家各做一团,没有一个职级或威望较高能得到各方认可的人来牵头做这件事。导致一波三折。
不过也算是好事多磨吧,经历风雨,才能见彩虹。最终还是产品说话。
从不信任到质疑,到合格甚至满意的高度评价。也是源于产品本身的质量所在。
在大家陷入低潮时,我曾假装自信满满地说过一句话,“我还没有做过失败的项目,这个项目肯定能上线。”
信息不对称
在工作中,你总会与你的上司、下属产生信息不对称的情况。
为什么你的领导总是要让你重写PPT?
为什么你总是不能一次到位地把任务分解给你的团队成员?
在19年经历了转正、独立调研、带队研发等等事情之后,发现某位大佬说的话很对。
信息永远是不对称的。因为信息一直是在动态输入的。
你的层级不同,接触的信息面也自会不同。有时可能只是领导间随意的一个聊天,便决定了今年的KPI。
而在接收上司任务的时候,不要等到全部完成了才去跟领导报告,应该在途中就问问你跑的方向对不对,是不是南辕北辙了。
作为上级呢?也有可能是信息不对称的一方,不是他所获取的信息都一定是正确的。否则就不会有那么多被下属的PPT报告忽悠瘸了的CEO了。
而在研发leader这一层级(不论是两三个还是三四十个下属),也不要到了deadline才去验收下属的工作,而是在中途就应该check一下。
往往有时候,你所理解的“任务完成”与他认为的“完成”并不是一个概念。可能你的“任务完成”包含了开发、测试、BUG修复、上线这一整条流程,而他的呢?仅仅是说我开发完成了,连单元测试还没写呢。
认知与信息茧房
在2019我觉得收获最大的两个词就是认知和信息茧房了吧。
没有获得财富的认知,就是金山在你面前,你也只会认为是一堆石头。
而信息茧房就更可怕了,“在爱的魔力中转圈圈”,我们会像春蚕一样,使用自己的能力吐丝,把自己局限在“茧房”中。
网易、华为,让我认清了公司的本质
而在前段时间陆续发生的事,则让我认清了什么是真实?什么是虚幻?
如网易的癌症员工维权拿取应得的补偿金事件(诬陷、暴力、涉及家人),如果不是10万+的阅读量,大大小小的公众号传播,这个事还不定是什么结果。
虽然最后网易道歉了,但是大家都调侃出了一个段子。
“你被裁员了,没有补偿。”
“我有一个公众号。”
“等等,我们商量商量……”
虽是笑话,却有点泛苦。
而华为的胡玲、李洪元事件,更是让一向宣扬爱国、奋斗精神的华为其鲜红招牌上染上了一层灰色。
因为实体清单、孟晚舟得来的路人缘基本被败的七七八八。
李洪元因离职时拿了2n+1的补偿金,反手被HR告敲诈勒索,被公安机关关押了九个月,整整251天后,检察院决定不起诉而重获人身自由,只因一段当时与HR离职谈判时的录音被找到。
而在事件发酵之时,华为却只是一味删帖。
由此产生了一个段子,工作996,维权404,离职251。
在网易、华为的案子中,录音笔,一时成了主角。
最后,对自己,对我的读者们说一句:在公司里,将本职工作做好就ok。然后,花点时间多多提升自己,看看技术圈以外的出路。
04 展望2020
如果要给我的2019标注几个关键词,我觉得是:眼界、认知、SMART。
SMART是由Specific、Measurable、Attainable、Relevant、Time-bound几个单词组成,大意即是可衡量的最小化目标。
而对2020,我的期盼则是:
写一本书,
做好一个独立站,
拥有一群志同道合的朋友,
开始锻炼,拥有一副健康的身体。
就这样吧,再见了,我的2019!
再见,996!
再见,那么努力的自己!
再见,那么疲劳的自己!
你好,2020,我,来了。