美文网首页
我的职业是前端开发工程师

我的职业是前端开发工程师

作者: 优前程 | 来源:发表于2021-03-18 21:13 被阅读0次

    前几天清理电脑,翻到了大学时候的照片,给队友看,没想到他很惊讶的点评一句:“以前你的发量好多啊”。

    我的职业是前端开发工程师,也是个宝妈。主要工作情景是操作代码,完成产品提出的需求,与UI设计对接界面实现,修复测试提的bug,然后是参与各种会议。

    前端技术迭代更新快,需要不断的学习,研究技术。还得跟产品撕,跟需求撕,头发留不住也是正常的。

    下面,从技术上,介绍一下我的职业:

    首先,让我们来理解一个概念:什么是前端?

    与客户做交互的那部分就是前端,也因此,它可以称为客户端。

    而前端不仅仅局限于浏览器前的用户,还可以是桌面应用,混合应用。也因此,你会发现前端是一个特别大的领域。一个优秀的前端程序员,要掌握相当多的技能,如下图所示(我做的前端技能思维导图):

    入门

    在我理解下的基础知识,就是我们可以写一些基本的样式,并能对页面的元素进行操作。刚毕业前两年做的就是这个事情。举例来说,我们可以用jQuery来对页面进行一些简单的操作,并可以调用一些API。因此,我们需要基本的HTML / CSS知识。只是要写好CSS并不是一件简单的事,这需要很多实战经验。随后,我们还需要有JavaScript的经验,要不怎么做前端呢?

    同时,我们还需要对DOM有一些基础的了解,才能做一些基本的操作,如修改颜色等等。在这种情况下,最简单的方案就是使用jQuery这样的工具。不过,如果可以自己操作DOM是再好不过的了。

    中级篇

    中级篇就更有意思了,现在我们就需要对页面进行更复杂的操作。Ajax和JSON这两个技能是必须的,当我们要动态的改变页面的元素时,我们就需要从远程获取最新的数据结果。并且我们也需要提交表单到服务器。未来我们还需要Fetch API,ReactiveX这些技能。

    除此我们还需要掌握好HTML的语义化,像DIV / CSS这也会必须会的技能,我们应该还会使用模板引擎和SCSS / SASS。而这个层面来说,我们开始使用Node.js来完成前端的构建等等的一系列动作,这时候必须学会使用命令行这类工具。并且,在这时候我们已经开始构建单页面应用了。

    高级篇

    JavaScript是一门易上手的语言,也充满了相当多的糟粕的用法。现在人们有了ES6、TypeScript和WebPack来做这些事。尽管现在浏览器支持不完善,但是他们是未来。同样的还有某些CSS3的特性,其对于某些浏览器来说也是不支持的。而这些都是基于语言本来说的,要写好代码,我们还需要掌握面向对象编程、函数式编程、MVC / MVVM / MV*这些概念。

    设计

    前端工程师还需要具备基本的UI技能。多数情况下拿到的只是一张图,如果是一个完整的页面,我们就需要快速分割页面布局。而依赖于不同的页面布局,如响应式、网格、FlexBox布局也会有不同的设计。而有些时候,我们就需要自己规划,制作一个基本的线框图(Wireframe)等等。

    兼容性

    虽然我们离兼容IE6的时代已越来越远了,但是我们仍然有相当多的兼容性工作要做。基本的兼容性测试就是跨浏览器的测试,即Chrome,IE,Firefox,Safari等等。除此还有在不同的操作系统上对同一浏览器的测试,某些情况下可能表现不一致。如不同操作系统的字体大小,可能会导致一些细微的问题。而随着移动设备的流行,我们还需要考虑下不同Android版本下的浏览器内核的表现不致,有时候还要考虑一下不成器的Windows Phone。除此,还有同一个浏览器的不同版本问题,常见于IE。

    调试

    作为一个工程师来说,调试是必备的技能。大部分浏览器都自带有调试工具,他们都不错——如果你使用过的话。在调试的过程中,直接用Console就可以输出值、计算值等等。如果你的项目在构建的过程中有一些问题,你就需要debugger这一行代码了。当然在这个时候,还有一个不错的工具就是像Chrome自带的远程设备调试。

    测试

    我遇到的很多前端工程师都是不写测试的,于是我便把它单独地抽了出来。对于一个前端项目来说,正常情况下,我们要有单元测试、功能测试,还有要一些UI测试来验证页面间是否可以跳转。对于依赖于第三方服务的应用来说,还要有一个Mock的服务来方便我们测试。如果是前后端分离的项目,我们还需要有集成测试。

    性能与优化

    要对Web应用进行性能优化,可能不是一件容易的事,有时候我们还知道哪些地方可以优化。不管是改bug,还是做需求,都是从0-1的事情。但是优化是1-100的事,从代码层面,架构,需求,产品侧,都有优化的空间。

    工程化

    首先,我们需要有基本的构建工具,无论你是使用gulp、grunt,还是只使用npm,这都不重要。重要的是,你可以自动化的完成构建的工具,编译、静态代码分析(JSLint、CSS Lint、TSLint)、对代码质量进行分析(如Code Climate,可以帮你检测出代码中的Bad Smell)、运行代码中的测试,并生成测试覆盖率的报告等等。这一切都需要你有一个自动构建的工作流。

    除了以上自动化以外,还包括其他维度的:组件化,模块化,规范化等方面

    SEO

    如果以搜索引擎作为流量来源,我们还需要考虑页面的内容,除非你用的是竞争排名。像Sitemap可能就不是我们考虑的内容,而我们还要考虑很多点。首先,我们需要保证页面的内容是对于搜索引擎是可见的,并且对应的页面还要有基本的Title、Description和Keyword。然后在一些关键的字体,如栏目标题等等可以用H2之类的大字的地方就不要放过。同时在页面设计的过程中,我们还需要考虑一些内链,锚文本。

    以上大概就是前端需要学习的基础知识了,扩展的还有很多很多。所以这一行,还是有门槛的。现在,2020年,但凡能为程序员开出高薪的公司,对于程序员的筛选都是比较严格的,不对,已经不是比较严格了,是很严格。

    不信自己可以去网上搜搜各大公司招聘的面试问题和笔试题,自己试着答一下,看看结果。从来没有白给钱的事情,高工资带来的必然是高要求。

    而且后浪推前浪,永远会有新的大学毕业生在找工作,他们可能没什么经验,可能技术一般,但是他们要的钱少,身体好,能熬夜,听话,好忽悠。如果你是一个企业的管理者,排除掉感情因素,你也会用这种性价比高的新零件换掉旧零件。

    所以,我们也焦虑呀,年纪大了,肝不动了,新人比你年轻还比你优秀。程序员简直是身体和精神的双重折旧。

    相关文章

      网友评论

          本文标题:我的职业是前端开发工程师

          本文链接:https://www.haomeiwen.com/subject/nwgsvktx.html