工作能力精进
项目中我做得不好的是什么?我当时是怎么考虑的?如果我重新来做会有哪些改进?每个项目都要写一篇这样的笔记。
回顾和反思
大上周周四接手了一个小项目。本质上是利用canvas技术,实现一个画图板功能。老板问我需要花多长时间能完成。我说先看看具体需求是什么样的。产品经理跟我解释完毕后,心想功能还是蛮简单的,确实我只用了半天时间就实现了demo。老板再一次问我什么时候能做完。我觉得下周二应该就能完成。事实证明我低估了事情的进展。
因为这个产品是两个项目的通用功能,我问老板需要用ES5还是ES6来实现。要求用ES6实现,需要自己在webpack配置babel,对此我之前基本没有玩过。累计用了大半天的时间来完成对webpack的学习。没之前我想得那么简单,随便配配就完事了。因为不仅要用babel,还要配一些其他的东西,比如css-loader、style-loader、postcss-loader、html-loader、webpack-server、es-lint等东西。难的地方不是这些东西如何配置,而是不知道都需要配什么东西,参考了同事手上的项目,自己逐渐摸清这些东西都是做什么的。过程中也遇到了一些问题,大部分时问同事时,他们也解决不了。同时,他们也确实没有时间。
项目实现过程中,有个调色板功能,需要使用插件,后来boss跟我说,原则上项目不要使用jquery,很庆幸,之前选择的插件幸亏不是jquery的。这点需要反思,我该早点确认的。
周二时候,老板问我进展怎么样了。我说功能基本实现,但代码还不能给他,因为其实webpack还没有完全配置好。先给老板看了功能,看的过程中,我才弄清楚老板的一些边之细节的需求。这一点我是知道的,因为只有产品摆在你面前你才知道真正需求是什么样的。以前工作的时候,都会提前问得特别清楚。这一年没上班,竟然忘记了这一点,尤其当自己明白这一点时,竟然没有去进一步去想这些需求中是否有不合理的,最起码是技术上不能实现的。竟然也答应了,当第二天真正编码落实时,才发现。换做在以前,都会仔细想一想,是否会有问题。这点个人做得也不好。
周四下午的时候,我想测试一下在移动端的效果怎样时,才发现,需要建立一个非本地服务器。移动端是之前没有接触到的,等第二天下午都弄好时,也快下班了。测试了一下发现移动端有的问题也很大,需要一个统一兼容移动端事件的库,之前老板就跟我说过,但我找了半天没找到合适的,然后就先放着了。直到周五老板又重新强调了一遍。
快下班时,老板给我安排了新的任务,接手以前的项目,并让我在下周一给出总体方案,是重构还是重写。我答应下周一下班前给出结论。
现在想想我是否又鲁莽了,因为之前这个小项目,本以为进展就会非常顺利的,结果事情总有你想不到的地方。这次也一样,比如既然是维护工作,必然有新需求的,下周一我真的能了解清楚项目需求吗。还有下周一之前我是否能阅读完所有代码呢。这样匆忙答应人家,是不是太急于表现自己了。
这也是我写这一篇笔记的原因。《好好学习》中说,你不把自己的生活案例化,又怎么能反思呢。人的记忆是很快消散的,在记忆模糊之前形成文字,才能思考,然后才能量化自己的进步。
如果一切重来,我该先要问自己几个问题。
1.接到需求时,你确定自己听懂了吗?能否自己重新说一遍给对方呢?
2.是不是所有需求,都能实现?你能否第一时间去调查哪些尚未完全掌握的技能呢?
3.答应别人时,是否去尽量挖掘对方以为你知道但其实你不知道的信息呢?要始终问一句还有其他我该注意的地方吗。
估计以上问题,以后工作中还会偶尔犯的,因此非常有必要记录下来,尽量少犯这种错误,只有这样,才能更好地成长。
本文完。