他是电子科技大学的高材生,通过兴趣和努力脚踏实地的成为了一名优秀的前端工程师。他是一个对新技术充满了无限渴望的优秀开发者,喜欢挑战、喜欢学习、热爱分享。他就是本期程序员客栈专访优秀前端工程师:前京东现阿里天猫魔盒TV前端工程师:刘丹
程序员客栈王鑫:可否简单的做一下自我介绍?
刘丹:大家好,我是刘丹,目前就职于阿里巴巴,担任天猫魔盒TV端前端开发,先后参与了TV端焦点引擎的研发,TV端组件规范和生态的搭建,主导TV端H5页面及其应用搭建系统开发,研究TV端web性能优化方案,以及nodejs方面都有涉及。自认为目前还是一个初学者,有很多地方需要提高。
程序员客栈王鑫:您是什么大学毕业的?你是如何接触到编程开发的?是什么让你励志成为一名程序员?
刘丹:我毕业于电子科技大学,我们学校的硬件和软件在大学里算是比较优秀的,我是在大学里面接触的编程,当时接触的是C语言,接触之后感觉自己很喜欢,而且也很有天赋,并且在做出东西之后很有成就感,就慢慢开始接触更多了,就我个人而言这种成就感让我励志成为一名程序员。
程序员客栈王鑫:您毕业后都在哪些公司工作过,学到了什么?
刘丹:我是大学的时候进入京东做UE实习生,那个时候正是前端工程化兴起的时候,我也参与到了部门里的前端工程化建设,我们开发了一套适用于我们业务场景的前端开发流程。当时移动端刚刚兴起,我们立刻开发出了移动端H5页面专属搭建系统,这个系统服务于所有的商家,当时京东移动端H5商品页面80%都是这个系统搭建的,这段时期的经历对我来说是宝贵的,让我从大学生演变成为一个能独立思考的工程师。
之后进入了阿里巴巴,担任了天猫魔盒前端开发,期间搭建了整个TV端的前端开发生态,共同研发了TV端特殊交互模式的焦点引擎,并且研发出了属于我们TV端的浏览器内核,以及围绕这个生态和底层的TV端操作系统,这期间很多项目都是从0到1的探索,我学习到的知识和经验是前所未有的。
程序员客栈王鑫:你在京东和阿里做过很多优秀的产品开发,你都参与过哪些项目?遇到过哪些挑战?
刘丹:我参与负责过的项目主要有:京东店铺装修平台:负责全网移动端H5页面搭建平台,提供给商家和店铺搭建属于自己的H5店铺,并且发布到京东全网。
天猫魔盒TV端前端生态:TV端特殊交互的焦点引擎,底层组件方案制定和开发,前端中间件开发,形成TV端前端生态,运用在H5页面,web应用中。包括TV端H5页面和应用搭建系统:基于TV端前端生态,搭建出适应于TV端的H5页面和H5应用,以及TV端webos:基于自主研发的内核开发的webos系统
在京东开发移动端搭建系统的时候,由于业务模式新,技术体系全是自主研发的新体系,导致在开发过程中多次回归之前的功能,使开发周期拉长,之后我们建立了一个良好的回归测试方案,在功能回归上节约了大量的时间。
来到阿里之后,在魔盒上做前端开发有个很严重的问题,就是性能,因为硬件成本低,导致web页面的渲染出现各种各样的性能问题,闪屏,动画闪烁,掉帧,前端一度陷入苦恼,之后我们统一了焦点引擎,优化了动画方案,并且配合底层做出了我们自己的内核,使TV端web性能接近于native性能。
程序员客栈王鑫:从一名普通的前端工程师成长成为阿里的web高级前端工程师,你是如何一步步走来?
刘丹:在学校学习编程的时候,我就对编程很有兴趣,接触前端之后,更是喜欢,这应该是我一路走来的动力。在京东的两年,让自己更深刻的认识了互联网,良好的业务也让自己的前端技术提升很多。在阿里的工作收获最大的是思考更加严谨,架构工程和独立完成项目的能力得到了提高。
程序员客栈王鑫:对你来说一名优秀的前端工程师需要具备什么样的硬实力?就以你个人而言,哪些前端语言比较擅长?
刘丹:我最擅长的是js,最大的优势应该是是更善于独立思考,在需求和能力范围内我喜欢创造新的东西。再者个人觉得一名优秀的前端工程师能灵活的写出具备兼容性的页面,善于用不同的方式解决问题,对js的理解一定要深入,具备基本的模块化封装能力,代码需要具备一定的抽象程度。前端工程师也是工程师,所以需要了解算法,数据结构,操作系统的相关知识,学习一些服务端知识,并且在项目中逐步实践。最终考验一个工程师能力的指标就是解决问题的能力。
程序员客栈王鑫:现在前端工程师市场需求很大,那外包公司和大的互联网公司工作的区别在哪里?
刘丹:作为前端开发,外包公司对快速开发,独立完成整个项目的能力都有提高,大公司在管理上,制度上更加完善,对新技术接触的可能性更多。
程序员客栈王鑫:你平时除了写代码以外还有哪些爱好?
刘丹:我平时还喜欢看书,各方面的书,不同的知识可以弥补自己的盲区,我觉得只有通过不断的学习以及增加自己的阅历才能适应未来更多的挑战。
程序员客栈王鑫:你会一辈子做程序员吗?你个人的职业生涯是如何规划的?
刘丹:首先写代码是我的兴趣,我也没有把程序员当成职业,我是把它当成工具,如果需要,我就拿出来用,我以后的人生估计是离不开程序了。我目前还没有没有明确的职业规划,因为世界变化太快,我只能做到努力的使自己进步来把握世界的变化。
程序员客栈王鑫:一个有趣的段子“产品动动嘴,开发跑断腿”,你如何处理和产品经理的关系?
刘丹:其实我觉得产品和研发是天生的朋友,产品帮助研发梳理功能流程,开发实现产品需求,之所以到处都有产品和研发的矛盾事件产生,我是觉得原因在于两个方面:
第一个是产品没有明确自己的职责,有的产品没有梳理好需求和功能,随时提出需求和修改需求,没有明确的定位。
第二个是研发的技术能力有限,无法准确高效的完成产品的需求,并且无法抽离出潜在的需求和功能来提高自己的开发效率。