背景
转眼间,学习前端也有两年半了,从开始的不知js/css/html是什么,到一年前感觉自己工作比较重复觉得有点迷茫,再到现在重新充满激情,也获得了一些大公司的录取机会,也是多少找到了一点成为优秀前端的方向了。
不经意发现知乎上我两年前的零基础开始学 Web 前端开发,有什么建议吗?的回答还有人在看,在评论,有点感慨。我的分享应该也是帮助了一些人入门吧,他们或许在入门后也碰到跟我一样的迷茫,不知道他们是怎么解决的呢?现在把我在入门前端之后的发生的经历和成长也写出来,希望对大家也有点帮助。
2016年
在入门前端后,我如愿在2016年的三月份入职了广州某游戏公司,完成了当初想在毕业前去个大公司的小目标。当时我还处在只会jquery,看了点backbone,写过一下experss,懂点点nodejs,了解es6的状态。
在公司主要进行的就是比较常见的内部管理系统的开发,现学现卖的用上了vue,当时还是用vue1,在半年后vue2推出,又花了一定的功夫把项目迁移到了vue2,2017年找工作时可能还会有人问下vue1和vue2的区别是什么,现在应该也没有人问了,前端真的是一个变化很快的领域。
相比起react,vue是一套很适合新人,门槛较低的框架。推荐前端刚入门的小伙伴去学习。vue看似简单,但是如果仅仅是停留在使用api和相关工具,希望大家在空闲之余,可以了解下源码,可以重点关注一下vue双向绑定,虚拟dom,nextTick的原理,看下vuex和vue-router的源码,前端的变化很快,仅仅记住api和工具是不够的,要了解底层的编程思想和实现原理。
2017年
经过一些曲折,17年四月份我入职了某创业公司,摆脱了之前的内部管理系统,开始了进行面对用户的前端的开发。
不得不说,面对用户的页面跟之前的内部管理系统还是有不小的区别的。前者要考虑的东西要多一些。内部管理系统比较注重对业务的了解以及开发效率,对性能优化,兼容性等没什么要求,只有内部的人用,统一用chrome浏览器,过得去就可以,可能更多的注重将数据转换成视图页面。然而面对用户的页面不一样,需要考虑兼容性问题,考虑加载时间问题,考虑seo问题,考了美观问题,考虑响应式问题等等等等。
其实这两种页面并没有优劣之分,对内部的系统可以往开发效率提升以及复杂应用的方向提升,而对用户的页面则可以往性能优化,多端兼容的方向去发展。只要不满足于获取数据渲染页面,都有提升和发展的空间。
在17年下半年,接到任务,进行移动端的架构,被要求不能使用vue/react,直接使用服务器渲染页面。这让我有点慌。说实话,当时我已经写了超过一年的vue项目,习惯于每开一下新项目就搭建vue全家桶,让我抛弃先进的mvvm框架,去使用回原生的js,感觉就好像下了飞机去坐火车。
然而让我这样做也是有道理的,公司的移动端的页面并不复杂,并不需要使用到mvvm框架,当时开发的使用了vue的移动端页面,由于要获取各种数据,白屏时间有三秒之多,使用服务器渲染可以解决这样的问题,我不能为了开发的一时爽快而影响用户的体验。
经过探索和专研,我也是有了一定的成果,自己加入了前端SPA路由跳转,把它总结成了一套框架,这个项目也成了我后来找工作的最大底气和骄傲。是的,如果只是重重复复的开发相近的页面,没有去探索和沉淀自己的东西,那自己的技术水平也只能稳步不前。刚刚说过,不能只了解框架,这里还要补充一点,不能依赖框架,要了解到,框架解决了什么问题,适用于什么样的场景。原生JS的能力不要荒废,自己造造轮子还是有收获的。
2018年
在完成了框架的搭建和优化后,在公司的安排下,我不断的将自己的框架应用在各种项目,我做了一个跟微博类似的项目,还做了跟今日头条类似的项目,还有商城,还有…在短时间内做这么多项目,单纯的只是渲染页面而没有时间去深入业务,让我觉得前端就真的只是这样重复的渲染页面,处理下兼容而已吗?这样真的有意思吗?开始变得迷茫起来。
之后又发生了一些事情,让我不得不选择换一个环境,回到深圳,重新开始。是的,我又要换工作了。可能是我经历还算丰富,也做了一些事情,因此也得到了一些大公司的面试机会。然而在一开始,我就碰到了不少挫折。
https的流程是怎样的?如何对项目进行监控?进行错误处理?nodejs的父子进程是怎么进行通讯的?你的项目是怎么部署上线的?你的项目是怎么解决移动端测试问题的?
是的,对于这些问题,刚开始找工作的我是毫无概念,之前的我,就只是专注于写写自己的前端,跑下koa渲染服务器,跟api服务器取下数据渲染下页面。其他问题自然有运维,测试,后台去管。
很显然,我之前的想法是很狭隘的,身为web开发人员,不能把自己的重心仅仅局限在前端,局限在浏览器端,要有一种工程师的觉悟,尽管有些环节可能分给其他同事去做,但自己也不能一无所知,毫不关心。不要让自己的视野局限于前端浏览器部分,只有了解了整个项目的部署,后端,前端,测试等流程,才能去更好的去完成一个项目。现在前端技术发展很快,nodejs给予了我们去关注服务器的能力,我们要勇于向外看,走出去。
在了解到自己的不足后,我便开始了知识漏洞的补充,并把其中的一部分成果(当面试官问你如何进行性能优化时,你该这么回答(一))分享了出来,希望对大家也有点帮助。
以上,就是我对最近两年的学习工作的一个简单总结,最近事情也比较多,写不了太详细,如果有希望继续交流的,可以发邮箱 hpoenixf#foxmail.com或是通过别的渠道联系我。欢迎关注和star本博客或是关注我的github