在参与前端开发的短暂一两个月中,虽然日子过得比较忙,却让我收获颇多。时间总会带走我的记忆,所以写下这篇文章,不仅是对当时经历的复盘,还记录了一些这段时间的体会。
事情背景
8月底的时候,被组长通知需要暂时去支持前端项目,配合他们开发前端界面。当时的心情确实是有些无奈和对未知的小忐忑,毕竟刚经历完后台项目繁忙工作节奏,好不容易可以有机会放松放松,却又要步入另外一个火坑中,而且还不知道何时才能被解放。
随后便参与了前端小组的安排工作会议,当得知前端开发使用的技术并不是公司内部平台提供的框架而是使用jquery时,我内心是既欣喜又恐慌。欣喜的是,终于可以使用一些社会上通用的技术了(经常使用公司内部的技术会让我产生与社会脱节的感觉)。当然让我恐慌的是,我没有用过和学过jquery(很惭愧的承认这个事实),所以我不知道开发过程中会有哪些难题等着我。
问题复盘
下面罗列了一些开发过程中,我面临的问题、当时是如何处理方式、当下对曾经问题的复盘和总结。
问题1:前台业务错乱复杂。在老系统,需要迁移的业务和其他业务被蹂躏在一起,各种校验、特殊处理看得人头晕眼花。如何快速的迁移出自己负责的业务,着实让我头疼。
处理方式:以自己看代码为主,遇到不明白的地方再去请教其他同事。
复盘:我一直不太擅长向别人请教问题。主要有两方面不足,一是把握不住事情的核心问题,总是出现需要不停的向同事询问,但是事情没有得到实质性的进展。其次是心理上不太好意思向别人请教问题。对于前者,根本原因是我对事物实质的把握不透,需要不断锻炼逻辑思维能力等等;对于后者,目前肤浅的认为需要不断进行更多的自我心理疏导和心理暗示。
改进:通过不断的书写、复盘、总结笔记等等,锻炼和提高思维逻辑能力。
问题2:没有学过和用过jquery的情况下,如何使用这个技术进行开发。
处理方式:当时的处理方式大概有三种:快速了解基础语法、边开发边百度和阅读书籍。
在刚开始接触项目时,利用晚上的加班时间和中午休息时间,在w3school网站快速学习了jquery的基本语法。学习的方式是边看边运行网站提供的小案例,同时将网站的基本语法整理到了印象笔记中。整个过程大约花费了三四天。当然上面的学习只是让我的脑海中,对jquery的基本语法和整体轮廓有些概念,距离熟练使用还相差十万八千里。
其后,在开发过程中,当遇到复杂的功能点或者是调试过程中总达不到预期时,我一般采取的方式是,自己写一个简单demo用于单纯测试这个功能的实现,查看是否是语法等问题。当然这个时候使用百度搜索比较多。
第三个方式是阅读书籍。当时买了《JavaScript&jQuery交互式Web前端开发》这本书,利用早晨、中午和晚上休息时间,快速的阅读了一番,对jsp和jquery的原理有了一些更深的理解。
复盘:现在复盘当时的做法,觉得自己相比以前有了很大的进步。没有沉浸在恐慌和不知所措中,及时应对面临的问题。同时能有耐心、持续花休息时间学习语法原理等知识点,这是一次巨大的进步(我向来是三分钟热度,语法原理总是停留在书本的前三分之一,没有耐心持续做事)。
这次体验了的三种学习知识的方法,各有各的优势和不足。我以前用得比较多的方式是边开发边百度,这种方式可以快速解决工作中遇到的问题,但是不足是知识点太过零散,在自己对技术整体尚未形成框架体系时,不利于知识和技能的积累。
阅读专业书籍,我一直思想上比较推崇这种学习方式。但是行动上从未做到过,每次都是半途而废,也一直没有体验过阅读完专业书籍后会给我带来什么。这次难得把书本全部读完,觉得虽然花费了较长时间和精力,但是依旧非常值得。因为通过阅读书籍,我对jsp和jQuery的整体框架、重点、原理等等有了清晰的认识。这让我在开发过程中,不会再觉得那么恐慌,因为我已经手中拥有地图了,出现问题知道大体方向了。
改进:未来的日子里,会增加对专业书籍的阅读。
问题3:在开发手机宽带批量免费提速时,花费了很长时间去梳理业务,然后又投入了较长时间开发。然而发现后端当时并不支持,最后该开发任务搁置。整体而言,投入时间确实零收益。
复盘:在接手一个任务时,到底要分析、构思和设计到什么程度才开始开发比较合适?这一直是我心中的困惑。
刚开始工作的时候,习惯分析完全部后才开始着手做。但是开发本身就是一个动态的过程,开发过程中原本以为的难点或许很轻易的就解决了,然而从其他地方可能会冷不丁冒出一个让人臆想不到的难点。
这次开发总体上是边梳理业务边开发。所以出现了开发着……开发着……就发现后端还没有实现这个功能。加上,我当时对其中的批量特殊处理还不了解,就顺便推脱了这个业务的开发。
这件事的处理上我存在两个问题,一是开发到一半才发现后端对这个业务还没有开发;二是由于我畏惧没有把握的知识点,不敢接受任务。
改进:对于前一个问题,应该在业务刚开始的时候就发现,尽早反馈给后端相关人员。对于后者,自己还需要多多学习和沉淀,调整心态,需要渐渐学会勇于接受挑战;
问题4:开发过程中,有段时间比较焦虑。因为中途在一个业务方面花费了很长时间,最后又发现方向跑偏了。导致后面的一段时间工作落后于其他同事,这让我心中比较焦虑。
处理方式:为了保证质量和工作进度,我增加了自己的工作时间。当然整个过程中我是抱着不知道结果的心态做的。
复盘:为当时保证质量的赶工感到庆幸。其实当时的选择我并不是坚定的,每天会开例会,对比同事之间的差距,我内心还是比较着急。幸好当初坚持住了,因为后面的测试环节,我的问题不是很多。
改进:希望以后同样遇到时间紧迫时,能够坚定的保证完成工作的质量。因为你也是受益人,至少测试时、上线时不会提心吊胆。
其他心得体会:
1、充实的、让人进步的工作,会让整个人的精神都变好
这句的重点在于“让人进步的”,其次才是“充实的”。这一两年经历了很多充实的工作时期,唯独这一次觉得很有成就感和心情愉悦,即便是非工作时间也愿意花时间和精力在工作方面。我分析其中的主要原因是这次的开发涉及一些新知识、新技能,工作的过程中,不仅完成了任务而且还学到了新知识。而我对新鲜事物向来比较感兴趣。
2、思考清楚、把握全局再着手,效率会更高
在开发任务时,相比其他同事花费了比较长的时间梳理业务,进度相比他们比较慢,但是bug明显少很多,所以实际通过的时间反而比他们早。
3、夯实基础,先磨刀再砍柴,用耐心等待花开
学习jQuery的体会。这次尝试了通过网站快速学习jquery的语法,在开发过程中,脑海中的思路清晰了很多。
4、学习最重要的是学得新知识、新技能后的实践,以及实践后的复盘与改进
利用jquery开发jsp界面的体会。自己构建一个小demo,实现功能点,再实现到具体业务中。提高了编程效率。
5、锻炼身体有助于精力恢复
参与前端开发的那些日子里,每天白天都很忙,下午下班后觉得很累。但是利用吃晚饭的时间跑步,又觉得精神满满,满血归来,可以继续神清气爽的继续加班工作了。
6、带有目的性的阅读书籍,使人心情愉悦
最近在践行100天33本书的计划,利用早晨、中午和晚上的时间看书。不以为意的时间,却又不小的收获。