分享我入职阿里巴巴一百天的所思所悟

作者:薛勤,互联网从业者,编程爱好者。 本文首发自公众号:代码艺术(ID:onblog)未经许可,不可转载

非常高兴的告诉大家,我已经入职阿里巴巴一百天了。一百天,是一个非常有纪念性的日子,也许你已经忘记你的百天照咋拍的,但是你的女盆友一定会提醒你别忘了百天纪念日给她买礼物。

加入阿里一百天了,这段时间我做了啥呢?

其实说来,加入阿里一百天我就完成了一件事,那就是自己负责的项目经过开发、测试于4月3日正式上线了,当我写下通告全组的上线邮件时,心情还是不免有些激动的!

刚加入阿里的前三周吧,我基本上是全身心投入到学习中,这个学习不是学习什么书本知识,而是去学习我所在小组负责的项目和业务。然后,去参加答辩,让同事们去检验你的学习成果,顺便考察你的学习能力和业务理解能力。

有的同学看到这里,可能会嗤之以鼻,觉得只有研究技术才是最高大上的,曾经,我也是这样想的。但是,真的让你去研究开发什么技术,你用什么去研究、去开发呢?你真的了解技术背后的设计原理与业务场景吗?

技术是为业务服务的,相信大家对这句话也有些了解。只有当业务遇到发展瓶颈时,技术才能体现出它的价值。

举个例子,为什么会有消息中间件呢?让你去做消息中间价的研发工作,你怎么去做?你第一步不得是去找业务沟通实际需求场景吗?

有需求才有供应。不然,凭空想象嘛?

理解需求是研发技术的第一步,你还需要具备非常深厚的专业知识和研发经验。不然,你造出来的轮子千疮百孔,你觉得会有人用吗?而且,你自己恐怕也意识不到你的轮子究竟有哪些孔洞需要去补,没有一定的积累,造轮子除了爽之外没有多少技术提升。

你有没有发现,造轮子就是一种知识变现。很多人光着急着去变现了,而忘记去积累。这些人,我送他们一句话:先沸腾、再折腾。

想去造火箭是好事,说明你有上进心,但是,首先你得拧好螺丝。

当你离开校园,走进更高层次的圈子,经过不同思想火花的碰撞,你就会发现你很多坚持的、认为的,是错的。

我之前写过很多所谓的技术产品,比如分布式限流、Web服务器等等,现在看来,都是玩具,用来乐呵乐呵虎虎人不错。

回到正题,在阿里侥幸过了答辩之后,我成功接手了一个项目的开发工作。师兄指定我自己去做,不懂得再去问。

在师兄热情的指导下,我顺利理解了需求文档,然后在数据库新建表结构,接下来就是开发。

到这一步,我已经懂了要做什么,但是怎么去做,两眼一抹黑。

公司项目不同于个人项目,最大的特点就是有自己的规范,用什么记录日志,用什么项目结构,用什么必备的框架,都得安排上。

并不是直接用你的 IDE 创建个 Spring Boot 项目就完了,要是有这么简单那还是阿里吗?这里有一个小窍门,就是我们在课堂学习时的关键一步,看例题。

师兄给了我一句非常不错的建议,先搭建系统的框架,写一些接口,编写整体逻辑,后面再慢慢去写细节。事实证明,这个开发手段相当高明。

我写代码有个习惯,对一段自己没有把握的代码,先去写单元测试,后来才知道这种方法很火,英文名叫 TDD,中文名叫测试驱动开发,是敏捷开发中的一项核心技术。

经过两周时间,项目初步开发完成,我自己先对系统的一些接口进行模拟测试(自测),然后去打通我的上游,与上游一起进行流程测试(联调),主流程没有问题后,提交测试单(提测),测试人员会与我进行交接,开个会,拉个群。到了第二天,你会发现邮件爆满,全是测试人员提交的缺陷单。

在这段沟通中,你须得有强大的心理素质和抗压能力,以及较高的情商和交际能力,不然,频繁的报错会让你怀疑自己的能力,心理素质不强者,甚至自暴自弃,觉得自己不适合这个行业。

很荣幸,我的缺陷单突破两位数,可以说是惨不忍睹,原因就是没有进行充分的自测,太过于依赖测试人员,实际上,这个想法完完全全就是错的。这也是我第一次完成项目最大的经验积累。

就在离项目上线还有一天的时间,突然爆出来个评估错误,需要对某一模块进行重构。要知道,发现这个问题的存在已经耗费了很长时间。当意识到原来的设计方案已经走不通了,师兄立马紧急研究新的方案,从开始研究到最后确定,只用了几分钟而已。

方案确定了,资源也正在申请,开发当然就由我来完成了。由于对新方案所涉及的技术一点不懂,但是明天一定要做完,只能晚上加班阅读相关文档了。

我先是去官网查看该技术的官方文档,心里有数之后再去 Github 看它的代码,这里不建议大家在 Github 网站在线查看,还是推荐 clone 到本地,看看 demo 就差不多搞明白了。第二天,如期完成开发和测试。

项目上线后,我心中依旧还是留有许多遗憾,比如一些功能由于后面的需求越来越多导致日志记录杂乱。

没工作前我特别讨厌说程序员就是只会拷贝和粘贴,没想到自己也这么干了,其实我觉得拷贝没有关系,有关系的是对拷贝的代码压根心里没数,当你对这段代码进行修修补补时就很容易出问题。也许你已经懂了这段代码的含义,但是拷贝的方案就是最好的方案吗?这次我比较遗憾的就是没有去重构我拷贝的这段代码。

一百天的分享就告一段落,如果觉得文章不错,可以订阅我的个人公众号“代码艺术”(ID:onblog),你会收到我所创作的最新推送!

原文地址:https://www.cnblogs.com/onblog/p/13035386.html