我眼中的前端开发

大家都知道程序员是少见的低门槛高工资的职业,而前端工程师又比其他岗位入门更快,因此,很多人都想成为一个前端工程师。但是,在决定成为一个前端工程师之前,你了解前端是什么吗?

一千个人眼里有一千个哈姆莱特,由于每个人的经历和工作经验不同,我敢说一千个前端程序员,对前端也有至少一百种定义,我也只是一个小菜鸟,不敢对前端下什么权威定义,只是闲来无事,又觉得这个话题比较有趣而重要,希望可以跟大家一起共同探讨一下。

狭义上的前端开发

让我们先从狭义上的前端开始讨论吧。前端工程师是一个比较新颖的概念,应该不会超过十五年的历史,以前的前端开发工作大多是由现在的后端顺手做了,没什么复杂度。前端的诞生,大概是随着ajax和其他技术的推出,网页逐渐复杂化,从而分离出来。

技术

一个对前端完全不懂的新人想要学习前端,要先学三板斧,JavaScript,HTML,CSS。这三个可谓是前端的基础。打个不太贴切的比方,把网页比作一个人的话,HTML是他的骨骼,CSS是他的皮肤,而JS让这个人运动起来。

在搞懂这三个技术后,一般还会再学习一下JQuery和BootStrap,一个是对JS的封装,降低了JS的使用门槛,另一个是一个UI库,可以让人快速的搭建样式统一又不算难看的网页。

工作领域

过去或者说是狭义上的前端就只是工作在浏览器上,IE6789,Chrome,Safari,因此他们关注的更多的是兼容性的问题。

关注点

狭义上的前端,可能更多的关注展现,做做官网,做做管理后台,做瀑布流,轮播图什么的。

广义上的前端开发

可以看出,狭义上的前端开发局限性比较大,一般人可以很快入门,很快看到天花板和瓶颈,再结合前端程序员比较容易入门,导致不少其他的岗位程序员对前端也有点歧视和偏见。这是我们就需要把视野打开,成为广义上的前端。

广义上的前端开发是怎样的呢?我认为可能具有下面的几个特点

向web应用发展

web的复杂度进一步提升,从web网页向web应用发展,加入大量操作系统提供的能力,如传感器,文件存储,网络连接,生命周期等。随着小程序和快应用的推广,前端页面利用微信和浏览器,在逐步获取之前原生应用才拥有的能力,在不注重性能的领域,前端技术在逐渐取代原生技术开发。

工作领域广泛

现在是移动互联网时代,别再死盯着PC页面了,也别满足于移动端页面的开发了,快去抢iOS和Android程序员的饭碗吧!好吧,其实他们也属于大前端的一部分,属于同一阵营,在掌握了react native,weex等技术后,前端拥有了挑战移动端开发的能力。比起移动端开发,前端开发有着免审核,开发迅速,统一维护等好处。

除了在移动端逐渐取代原生开发,越来越多的桌面应用在利用Electron技术开发,如VSCode,atom等

随着nodejs的推出,这年头的前端总要懂点express和koa,不然出门都不好见人。渲染的页面工作被交给前端,后端程序员只提供API接口的开发模式也越来越流行。

关注业务和数据

现在是数据时代,我们要离数据更近,去处理和分析数据,原本前端程序员不被重视和天花板较低的一个重要原因就是只重视展示,离数据和业务太远。这也导致前端开发可被替代性强,待遇自然也上不去。然而随着现代的开发模式如MVVM的引入,越来越多的数据逻辑处理被放在前端,前端的重要性也慢慢上来了。

更多展示场景

单纯的展示并非没有前途,只是我们不能停留在传统的官网展示,要去扩充我们的应用场景,可以去涉足办公软件,直播,游戏开发,VR,AR等场景。

工程化

前端要做的事情越来越多,越来越杂,工欲善其事,必先利其器,要完成各种各样的需求,我们需要升级一下我们的手上武器。

想用es6怕浏览器不兼容?想用css3新特性怕出bug?让babel和postcss帮你吧!还有各种图片压缩,模块化打包合并,资源自动上传到服务器等等工具。因此,前端开发不仅仅只是完成开发任务,还需要开发各种工具去提升开发效率和处理其他问题。

总结

在我看来,前端有两个重点,一个是数据,另一个是展示。如何更好的处理数据以及进行丰富的展示并将其展示到更多的终端,是前端需要解决的问题。

我认为,前端的优势在于,比起app需要让用户先耗费时间和流量去下载客户端,用户可以直接通过浏览器可以获取数据,并通过连接进行分享。缺点是不适用于过于考验性能的场景,然而机器的性能是会不断提升的,适用于前端的领域也会越来越多,前端的明天也是光明的。

由于阅历有限,可能有很多不足的地方。希望大家可以指出并讨论,谢谢!

本文章为前端进阶系列的一部分,
欢迎关注和star本博客或是关注我的github

支持作者

如果我的文章对你有帮助,欢迎 关注和 star 本博客 或是关注我的 github,获取更新通知。欢迎发送邮件到hpoenixf@foxmail.com与作者交流