❶ 如何才能成为一名合格的html5前端开发工程师
分享一名合格的HTML5前端工程师应该掌握的知识:
1、JavaScript
JavaScript在网页设计中是至关重要的,因为它有助于为网站提供功能。事实上,它是最流行的编程语言,因此,即使不为了HTML5开发,它仍然是一个有用的语言学习。JavaScript可以帮助你做一些互动元素并添加到你的网站地图的实时更新,在线游戏,互动电影等。使用JavaScript,可以确保你会有一个容易理解,交互的网站,可以接受任何类型的用户。
2、front end framework
CSS将帮助你更快的开发。目前,Bootstrap是可以使用的最受欢迎的前端侍陵框架。知道这些框架是如何工作的,以及如何使用它们才能在HTML5开发节省时间,这十分重要。
3、CSS preprocessors
每个HTML5开发人员都需要CSS预处理器的一些经验,因为他们将有助于加快CSS编码。他们也有额外的功能,将使您的CSS可延展性的来变得容易使用。发布代码之前,预处理族谈并器将进行处理,以确保它是可读性和可以跨所有平台使用。
4、cross browser web development
HTML5开发人员必须知道如何使自己的网站工作模式,不管使用任何web浏览器来访问都是如此。这样做可以确保您的用户能够访问他们需要的信息,无论他们是以何种方式。
5、CSS and HTML
开始HTML5开发的最基本的构件。一个没有CSS和HTML网页设计是不可能被创建的。例如,当你想添加图片到一个页面,HTML会显得尤为重要。学习HTML和CSS在你作为一个HTML5开发人员开始你的职业生涯就显得十分重要。而它们非常容易学习,在短短几周内便可上手。
6、Java frameworks
有相当多的Java框架,包括Backbone, Ember, AngularJS, ReactJS等等。这些框架帮助你更好的设计你的网页和编码,因为他们有一个现成的结构来让你使用Java代码。
7、responsive designs
了解如何创建响应设计也是至关重要的,尤其兆迹是当你考虑到不同的平台网络用户使用访问网络的时候。手机设计经验也是必须的,因为它将帮助你满足的人使用移动设备访问网站。
8、jQuery
一些扩展和插件,可以方便地使用Java web开发。使用jQuery,当你开始一个新项目你不需要从头开始编码,你可以使用元素已经为您的项目,然后定制它们以适合这个项目,客户或最终用户。jQuery是最好的用于创建网格布局,倒计时计时器,搜索表单等的插件和扩展。
9、testing and debugging
当一个项目完成后首要的就是测试,每个程序员都希望天下无bug,但是每个代码都有可能存在一些错误,学会测试代码就显得十分重要。掌握不同类型的测试,如单元测试和界面测试等。一旦你测试你的网站和发现的错误,重要的是要知道如何调试,学习不同的调试方法,这将使你的工作变得更简单。
上述就是,一个优秀的HTML5开发工程师需要掌握的几项技能。HTML5开发工程师目前是一个前景非常好的的职位,HTML5前端人才供不应求。想快速成为一个优秀的HTML5工程师可以找个靠谱的学习系统全面的学一下。可以先去千锋免费试听两周看看,实地感受下。
❷ 一名合格的前端工程师的知识结构是怎样的
入门
在我理解下的基础知识,就是我们可以写一些基本的样式,并能对页面的元素进行操作。举例来说,就是我们用Spring和JSP写了一个博客,然后我们可以用jQuery来对页面进行一些简单的操作,并可以调用一些API。因此,我们需要基本的HTML / CSS知识。只是要写好CSS并不是一件简单的事,这需要很多实战经验。随后,我们还需要有JavaScript的经验,要不怎么做前端呢? 同时,我们还需要对DOM有一些基础的了解,才能做一些基本的操作,如修改颜色等等。在这种情况下,最简单的方案就是使用jQuery这样的工具。不过,如果可以自己操作DOM是再好不过的了。
中级篇
中级篇就更有意思了,现在我们就需要对页面进行更复杂的操作。Ajax和JSON这两个技能是必须的,当我们要动态的改变页面的元素时,我们就需要从远程获取最新的数据结果。并且我们也需要提交表单到服务器,RESTful就是必须要学会的技能。未来我们还需要Fetch API,ReactiveX这些技能。 除此我们还需要掌握好HTML的语义化,像DIV / CSS这也会必须会的技能,我们应该还会使用模板引擎和SCSS / SASS。而这个层面来说,我们开始使用Node.js来完成前端的构建等等的一系列动作,这时候必须学会使用命令行这类工具。并且,在这时候我们已经开始构建单页面应用了。
高级篇
JavaScript是一门易上手的语言,也充满了相当多的糟粕的用法。几年前人们使用CoffeeScript编成成JavaScript来编写更好的前端代码,现在人们有了ES6、TypeScript和WebPack来做这些事。尽管现在浏览器支持不完善,但是他们是未来。同样的还有某些CSS3的特性,其对于某些浏览器来说也是不支持的。而这些都是基于语言本来说的,要写好代码,我们还需要掌握面向对象编程、函数式编程、MVC / MVVM / MV*这些概念。作为一合格的工程师,我们还需要把握好安全性(如跨域),做好 授权(如HTTP Basic、JWT等等)。
工程化
这个标题好像是放错了,这部分的内容主要都是自动构建的内容。首先,我们需要有基本的构建工具,无论你是使用gulp、grunt,还是只使用npm,这都不重要。重要的是,你可以自动化的完成构建的工具,编译、静态代码分析(JSLint、CSS Lint、TSLint)、对代码质量进行分析(如Code Climate,可以帮你检测出代码中的Bad Smell)、运行代码中的测试,并生成测试覆盖率的报告等等。这一切都需要你有一个自动构建的工作流。
兼容性
虽然我们离兼容IE6的时代已越来越远了,但是我们仍然有相当多的兼容性工作要做。基本的兼容性测试就是跨浏览器的测试,即Chrome,IE,Firefox,Safari等等。除此还有在不同的操作系统上对同一浏览器的测试,某些情况下可能表现不一致。如不同操作系统的字体大小,可能会导致一些细微的问题。 而随着移动设备的流行,我们还需要考虑下不同Android版本下的浏览器内核的表现不致,有时候还要一下不成器的Windows Phone。除此,还有同一个浏览器的不同版本问题,常见于IE。。
前端特定
除了正常的编码之外,前端还有一些比较有意思的东西,如CSS3和JavaScript动画。使用Web字体,可惜这个不太适合汉字使用。还有Icon字体,毕竟这种字体是矢量的。不过Icon字体还有一些问题,如浏览器对其的抗锯齿优化,还有一个痛是你得准备四种不同类型的字体文件。因此,产生了一种东西SVG Sprite,在以前这就是CSS Sprite,只是CSS Sprite不能缩放。最后,我们还需要掌握一些基本的图形和图表框架的使用。
软件工程
这一点上和大部分语言的项目一样,我们需要使用版本管理软件,如git、svn,又或者是一些内部的工具。总之你肯定要有一个,而不是 2016.07.31.zip这种文件。然后,你还需要一些依赖管理工具,对于那些使用Webpack、Browserify来将代码编写成前端代码的项目来说,npm还是挺好用的。不过就个人来说,对于传统的项目来说我总觉得bower有些难用。我们还需要模块化我们的源码文件,才能使其他人更容易开始项目。
调试
作为一个工程师来说,调试是必备的技能。大部分浏览器都自带有调试工具,他们都不错——如果你使用过的话。在调试的过程中,直接用Console就可以输出值、计算值等等。如果你的项目在构建的过程中有一些问题,你就需要debugger这一行代码了。 在一些调用远程API的项目里,我们还需要一些更复杂的工具,即抓包工具。在调试移动设备时,像Wireshark、Charles这一类的工具,就可以让我们看到是否有一些异常的请求。当然在这个时候,还有一个不错的工具就是像Chrome自带的远程设备调试。对于移动网站来说,还要有Responsive视图。
测试
我遇到的很多前端工程师都是不写测试的,于是我便把它单独地抽了出现。对于一个前端项目来说,正常情况下,我们要有单元测试、功能测试,还有要一些UI测试来验证页面间是否可以跳转。对于依赖于第三方服务的应用来说,还要有一个Mock的服务来方便我们测试。如果是前后端分离的项目,我们还需要有集成测试。
性能与优化
要对Web应用进行性能优化,可能不是一件容易的事,有时候我们还知道哪些地方可以优化。这时候人们就可以使用Yahoo的YSlow,或者我最喜欢的Google PageSpeed来检测页面的一些问题,如有没有开启GZip、有没有压缩、合并、Minify JS代码等等。 我们还应该借助于NetWork这一类的工具,查看页面加载时,一些比较漫的资源文件,并对其进行优化。在一些情况下,我们还需要借助如Chrome的Timline、Profiel等工具来查看可以优化的地方。
设计
前端工程师还需要具备基本的UI技能。多数情况下拿到的只是一张图,如果是一个完整的页面,我们就需要快速分割页面布局。而依赖于不同的页面布局,如响应式、网格、FlexBox布局也会有不同的设计。而有些时候,我们就需要自己规划,制作一个基本的线框图(Wireframe)等等。
SEO
如果以搜索引擎作为流量来源,我们还需要考虑页面的内容,除非你用的是竞争排名。像Sitemap可能就不是我们考虑的内容,而我们还要考虑很多点。首先,我们需要保证页面的内容是对于搜索引擎是可见的,并且对应的页面还要有基本的Title、Description和Keyword。然后在一些关键的字体,如栏目标题等等可以用H2之类的大字的地方就不要放过。同时在页面设计的过程中,我们还需要考虑一些内部链接的建设。
它即可以提供页面的可见度,又可以提高排名。最后,如果你是面向的是Google等支持结构化数据的搜索引擎,你还需要考虑一下MicroData / MicroFormat这一类东西。
❸ 前端如何做TDD
在我经历过或者听过的国内项目中,前端一般连单元测试测试都没有,感觉单元测试在前端开发中是一个谜,说实话我对这个问题没有做过多的研究。
从软件工程层面来说,前端UI层的测试价值高不高是我们要去权衡的一个点。如果只是UI展示,由于展示的变动通常会比较频繁,目前我了解到的对它写测试的项目不多。
从技术层面来看,前端的测试也是完全可以写的,现在一些前端框架,比如Angular或ReactJS在分层和模块化设计上做得相当不错了,有了分层和模块化后,将展示层和逻辑层进行了分离,加上一些测试框架( jest 、 jasmine 、 mocha 、 chai 等等)的加持,让单元测试写起来没那么困难,慢慢地,更多的团队也愿意尝试给逻辑层加上单元测试。如果单元测试好编写变得容易起来,那么结合TDD的思维和姿势,也就能做TDD了。
另外,已有ThoughtWorks同事谢宝龙,写了一遍关于 前端TDD的干货文章
❹ 怎么样才算是优秀的前端工程师
首先,优秀的Web前端开发工程师要在知识体系上既要有广度和深度!做到这两点,其实很难。所以很多大公司即使出高薪也很难招聘到理想的前端开发工程师。技术非黑即白,只有对和错,而技巧则见仁见智。
再者,优秀的前端工程师需要具备良好的沟通能力,因为前端工程师至少都要满足四类客户的需求。
这时候,你才能算是一个严格意义上的“前端”工程师。可见要想成为一名优秀的Web前端工程师是需要经历一番历练的,有基础的人可以自学,没基础的需要参加Web前端培训课程,这样学起来更方便。
❺ 做前端需要参加考试吗
不需要参加考试,前端工程师需要满足的戚滑条件如下:1、哗睁丰富的前端开发经验,能解决Web项目中各种疑难问题。2、精通各种Web前端技术,了解其适用范围及优劣性。3、深刻理解Web标准,对标签语义、页面结构有深刻的认识。4、研究过JS框架,喜欢钻研新技术、能够解决各种浏览器兼容性问题。千锋官网每日更新最新软件开发基础知识内容,巩固日常学习中的基础技能。更有免费的软件开发视频教程帮助学员快速学习。千锋教育就有线上免费的软件开发公开课,
前端工程师,也叫Web前端开发工程师,是随着web发展,细分出来的行业,Web前端开发技术主要包括三个要素:HTML、CSS和JavaScript,它要求前端开发工程师不仅要掌握基本的Web前端开发技术,网站性能优化、SEO和服务器端的基础知识,而且要学会运用各种工具进行辅助开发以及理论层面的知识,包括代码高芦腊的可维护性、组件的易用性、分层语义模板和浏览器分级支持等。千锋教育集团目前已与国内4000多家企业建立人才输送合作,与500多所大学建立实训就业合作,每年为各大企业输送上万名移动开发工程师,每年有数十万名学员受益于千锋教育组织的技术研讨会、技术培训课、网络公开课及免费教学视频。
❻ 前端测试有哪几种类型
目前在软件系统开发中,测试是一个非常重要的环节,特别是前端测试,有几种类型的测试被认为是前端测试所必需的,让我们简单了解一下。
01
单元测试
在修复bug或添加一点功能时,软件的其他部分可能会停止工作。为了处理这种情况,单元测试将代码的各个部分分开,以单独检查其准确性。跳过或最小化单元测试可能会导致修复缺陷的成本增加。Javascript单元测试包括一个套件中有组织的测试数量,这些测试彼此不冲突,并且相互之间的依赖性更少。
02
端到端测试
端到端测试涵盖了应用程序从头到尾的流程,结束测试跟踪用户的旅程,如打开浏览器、导航,并体验完整的生产场景。端到端测试验证互连系统和软件系统,它包括一个完整的前端和后端系统。
03
集成测试
集成测试的目的是使模块/组件按预期运行。集成测试技术应用于许多模块紧密耦合的大型应用中,模块被单独测试,一旦集成,组合行为被验证,它是与开发并行进行的。在集成测试中,您需要更多的逻辑技能,因为在测试期间,某些模块可能尚未准备就绪或正在构建中。
集成时使用测试存根和驱动程序,集成测试将分析开发人员实现的逻辑是否遵循规定的标准。当模块与第三方API交互时,查看响应非常重要。当开发人员跳过单元测试时,集成测试就不可避免了。
04
功能测试
功能测试,用于验证应用程序或网站对目标用户能正确工作。使用适当的平台、浏览器和测试脚本,以保证目标用户的体验将足够好。功能测试是为了确保程序以期望的方式运行而按功能要求对软件进行的测试,通过对一个系统的所有的特性和功能都进行测试确保符合需求和规范。
05
可视化/用户界面测试
视觉/UI测试包括屏幕截图的验证。这是一项质量保证活动,旨在确保屏幕在任何设备、屏幕分辨率、浏览器和操作系统上的外观与预期一致。通过无头浏览器中捕获的不同屏幕截图比较渲染版本的结果,可视化回归测试允许您检测偏差。
在构建应用程序时,事情会变得过载和复杂,这种情况很容易破坏现有的功能并引入新的bug—单元、行为和集成测试将到位,以使应用程序稳定。
06
性能/压力测试
性能测试是一种非功能性技术,它在各种工作负载下检查软件的稳定性、响应性、速度、可靠性和资源使用等系统参数。
压力测试:应用程序被重载以检查意外行为并了解其承受能力。
为网站执行一个高质量的前端测试将提高生产力,并增加客户对您的服务的依赖。了解趋势通用模式并结合专家经验来定义质量测试套装是很重要的。
07
跨浏览器测试
Web端应用测试主要障碍之一就是在不同的浏览器上“测试他们的网站/应用程序”,也称为“跨浏览器测试”或者“兼容性测试”。浏览器和浏览器版本很多(Google Chrome,Mozilla Firefox,Internet Explorer,Microsoft Edge,Opera,Yandex等),可以通过多种设备(通过台式机,笔记本,智能手机,平板电脑等)访问网站/应用。)以及可能用于访问网站的多种操作系统(Windows,MacOS,Linux,Android,iOS等)。
要确保网站的UI/UX及其功能正常运行,并且在“浏览器+浏览器版本+操作系统+设备配置”的组合上没有任何BUG,则将需要大量的开发,测试和维护工作。
❼ 搞前端开发你们弄单元测试么
根据招聘网站显示,web前端高级工程师的岗位职责如下:
1、熟悉、理解并掌握公司系统的架构、技术和开发工作。
2、参与公司系统的需求分析、产品讨论。
3、能独立完成应用系统的开发、自测试、联调以及上线发布。
4、系统的单元测试工作。
5、配合测试工程师完成集成测试工作。
6、协助运营、产品等相关人员维护已上线版本。
任职要求:
1、深刻理解互联网应用系统的架构和主流技术,如React Native、VueJS框架。
2、熟练掌握Html5、CSS、JavaScript。
3、熟练掌握VueJS前端技术框架,并有相关的项目经验。
4、能够独立完成前端应用的开发、打包、联调及发布工作。
5、3年以上前端开发经验,有较好的沟通能力和团队合作能力。
6、对ES6熟悉,有跨平台开发经验者优先
码教授有这方面的经验可以为您解答
❽ 2020年Web前端工程师的学习建议
今天小编要跟大家分享的文章是关于2020年web前端工程师的学习建议。毫无疑问,前端开发将成为2020年技术领域最热门的学科之一。
以前,前端空间的开发人员只要了解一些HTML,CSS,也许还有jQuery来渣瞎创建交互式网站,就足够了。但是今天,他们面临着广泛且不断变化的开发技能生态系统;掌握的工具,库和框架;并且需要不断投资于个人教育。
最近几年,我们使用JavaScript为主要的Web应用程序提供了强大的新库和框架,例如ReactJS,VueJS和Svelte。想要学习web前端知识的小伙伴们来和小编一起看一看吧!
1.框架
2020年,我们可能会看到Facebook的ReactJS与社区驱动的VueJS之间的对决。目前,React在GitHub上拥有140,000星,而Vue则拥有153,000星。例如,Angular只有53,000个恒星。
在2019年,React(蓝线),Vue(红线),Angular(黄线)和Svelte(绿线)的搜索量支持此假设-Vue略高于React。Angular在搜索量方面无法跟上,Svelte在此比较中绝对不起作用。
因此,对于2020年,使用或希望使用JavaScript框架的前端开发人员应将React和Vue作为他们的主要选择。如果您正在处理大型企业项目,则Angular是有效的选择。
2.静态网站生成器
静态站点生成器结合了服务器端渲染的功能(对于SEO非常重要,而且还具有初始加载时间)和单页应用程序。
如今,许多项目即使不需要服务器端渲染也选择了SSG,因为Next或Nuxt之类的解决方案具有便捷的功能,例如模块捆绑器,集成测试运行器等。
如果您认真对待前端开发,则应仔细研究以下项目,并尝试获得一些实践经验:
·Next(基于React)
·Nuxt(基于Vue)
·Gatsby(基于React)
·Gridsome(基于Vue)
3.JAMstack
术语JAMstack代表JavaScript(在客户端上运行-例如,React,Vue或VanillaJS),API(服务器端进程通过JavaScript通过HTTPS抽象并访问)和标记(在部署时预先构建的模板标记)。。
这是一种构建网站和应用程序以提高性能的方法-降低扩展成本,提供更高的安全性并提供更好的开发人员体验。
尽管这些术语本身并不是什么新鲜事物,但它们的共同点是相同的-它们并不依赖于Web服务器。因此,依赖于Ruby或Node.js后端或使用服务器端CMS(例如Drupal或WordPress)构建的网站的单片应用程序不是使用JAMstack构建的。
如果要使用JAMstack,有一些最佳实践:
整个项目都在CDN上提供服务
由于不需要服务器,因此整个项目都可以通过CDN进行服务,从而释放出无与伦比的速度和性能。
一切都存在于在Git中
每个人都应该能够从Git存储库克隆整个项目,而无需数据库或复杂的设置。
自动化构建
您可以完美地自动构建,因为所有标记都是预先构建的,例如使用webhooks或云服务。
原子部署
为了通过在大型项目中重新部署数百或数千个文件来避免出现不一致的状态,原子部署将等待所有文件上传,然后再进行更改。
即时缓存失效
当站点上线时,必须确保CDN可以处理即时缓存清除,以使更改可见。
像Netlify或Zeit这样的着名主机都支持JAMstack应用程序,大公司使用它们为用户提供出色的体验。
4.PWA
渐进式Web应用程序(PWA)无疑将在2020年成为现实。越来哗漏越多的公司选择PWA取代本机应用程序,以便为用户提供丰富的移动体验。
PWA可靠(即时加载,无需连接互联网即可工作),快速(流畅的动画,对用户交互的快速响应)和吸引人的体验(本机应用程序的感觉,出色的用户体验)。
他们利用服务人员提供脱机功能,并利用Web应用清单文件提供全屏体验。
构建渐进式Web应用程序的原因有:
·可以从浏览器添加如芦空到用户的主屏幕
·即使没有互联网也能正常工作
·支持网络推送通知以增强用户参与度
·利用Google的Lighthouse功能
5.GraphQL
GraphQL是当前最热门的主题之一,并且绝对是您在2020年需要学习或改进的东西。
尽管REST通过提供无状态服务器之类的出色概念一直被认为是设计WebAPI的事实上的标准,但在跟上快速变化的客户端访问RESTful
API时,RESTfulAPI却越来越不灵活。
GraphQL由Facebook开发,旨在解决开发人员在处理RestfulAPI时面临的确切问题。
使用RESTAPI,开发人员可以通过从具有特定目的的多个端点(例如/users/端点或/tours//
location端点)中获取数据来收集数据。
使用GraphQL,这将以不同的方式工作。开发人员会将查询与他们的数据要求一起发送到GraphQL服务器。然后,服务器将返回带有所有相应数据的JSON对象。
使用GraphQL的另一个好处是它使用了强类型系统。GraphQL服务器上的所有内容都是使用GraphQL模式定义语言(SDL)通过模式定义的。创建架构后,前端开发人员和后端开发人员都可以彼此独立地工作,因为他们知道已定义的数据结构。
6.代码编辑器/IDE
与2019年一样,微软的VSCode将在2020年成为大多数前端工程师的第一编辑器。
它提供几乎类似于IDE的功能,例如代码自动完成和语法高亮显示,并且可以通过其扩展市场进行几乎无限的扩展。
特别是市场使VSCode如此出色。以下是您作为前端开发人员的一些出色扩展:
·JavaScript(ES6)代码段
·npm
·beautify
·CSS速览
·ESLint
·LiveSass编译器
·Chrome调试器
这些是很酷的例子。在VSCode中还有很多可以发现的地方,因此,如果您尚未使用它,我建议您尝试一下。
7.测试
未经测试的代码不应找到它的生产方式。
在您的个人项目中似乎没有任何测试似乎很方便,但在商业和企业环境中工作时必须进行测试。因此,对于任何开发人员而言,最好尽可能将测试集成到开发工作流程中。
可以区分以下测试用例:
单元测试
隔离测试单个组件或功能。
整合测试
测试组件之间的交互。
端到端测试
在浏览器中测试功能完善的用户流。
有更多测试方法,例如手动测试,快照测试等。如果您想升任高级开发人员职位或打算在拥有某些开发标准的大型公司工作,则应尝试进行测试技能。
8.干净的代码
能够编写干净的代码是一项很棒的技能,许多组织都对此提出了很高的要求。如果您想从开发人员的位置升级为高级开发人员的位置,则应真正学习干净代码的概念。
简洁的代码应优雅且易于阅读。它应该重点突出,您应该注意这一点。所有测试均以纯净代码运行。它们不应包含重复项,应尽量减少使用实体(例如类,方法和函数)。
干净代码开发人员应做的一些事情是:
·为变量,类,方法和函数创建有意义的名称
·函数应该很小并且参数应尽可能少
·根本不需要注释-代码应该说明一切
如果您想了解有关干净代码检查的更多信息,请阅读RobertC.Martin的书籍和帖子。
9.Git
毫无疑问,Git是当今Web开发中版本控制的标准。对于每个前端工程师而言,了解基本的Git概念和工作流程以在各种规模的团队中有效工作都是非常重要的。
这是您应该知道的一些流行的Git命令:
gitconfig
gitinit
gitclone
gitstatus
gitadd
gitcommit
gitpush
gitpull
gitbranch
知道这些命令可以提高工作效率总是很高兴的,但是前端工程师还应该学习Git的基本概念。
10.软技能
对于开发人员来说,经常被忽视但确实非常重要的是获得软技能。
虽然有助于了解事物的技术方面,但了解如何在团队中进行交流也同样重要。如果您对技术职业很认真,并且/或者打算升任高级职位,则应该从事以下软技能方面的工作:
同情
沟通
团队合作
平易近人和乐于助人
忍耐
开放的思想
解决问题
责任心
创造力
时间管理
永远记住:开发人员最重要的交付物是高级开发人员。(提升你自己)
结论
在本文中,小编向您展示了前端开发人员应在2020年尝试学习,改进或掌握的10项重要内容。想要了解更多web前端相关知识记得关注北大青鸟web前端培训官网,最后祝愿小伙伴们工作顺利,成为一名优秀的web前端工程师。
❾ hr如何面试web前端工程师,该问哪些技术问题
hr如何面试web前端工程师,该问哪些技术问题
一、基本知识
我们生活在网际网路时代,你想知道的任何事情几乎都能在15分钟内找到相关资讯。可是,能找到资讯并不等于你会使用它。我认为所有前端工程师至少都应 该掌握某些基本的知识,才能有效地完成自己的工作。如果一遇到问题,就停下工作上网四处搜寻解决方案,怎么可能保证按期完成工作呢?听听,还有谁在说“我 不知道,但我可以上网搜到。”请这些同学把手举起来,让大家认识一下(immediately raises a flag for me.)。下面我列出一些基本的知识点,这些都是我认为一名前端工程师(无论工作年头长短)在没有任何外来帮助的情况应该知道的。
[list][*]
DOM结构——两个节点之间可能存在哪些关系以及如何在节点之间任意移动。
[*]
DOM操作——怎样新增、移除、移动、复制、建立和查询节点。
[*]
事件——怎样使用事件以及IE和DOM事件模型之间存在哪些主要差别。
[*]
XMLHttpRequest——这是什么、怎样完整地执行一次GET请求、怎样检测错误。
[*]
严格模式与混杂模式——如何触发这两种模式,区分它们有何意义。
[*]
盒模型——外边距、内边距和边框之间的关系,IE 8以下版本的浏览器中的盒模型有什么不同。
[*]
块级元素与行内元素——怎么用CSS控制它们、它们怎样影响周围的元素以及你觉得应该如何定义它们的样式。
[*]
浮动元素——怎么使用它们、它们有什么问题以及怎么解决这些问题。
[*]
HTML与XHTML——二者有什么区别,你觉得应该使用哪一个并说出理由。
[*]
JSON——它是什么、为什么应该使用它、到底该怎么使用它,说出实现细节来。
[/list]
重申一下,上述这些知识点都应该是你应该“想都不用想”的东西。我一开始问的所有问题都是想摸清你对所有这些领域知识的掌握程度。虽然上面列出的这些知识点并没有面面俱到,但我觉得你至少应该掌握这些,才有可能跟我坐到一间办公室里来。
二、少量提问
我非常赞同面试者问的问题越少越好。反复问应聘者各种问题既不公平,也很无聊。我在任何一次面试中,通常只问三个大问题,但每个问题又会涉及我所能想到的多个方面。回答每个大问题一般要经过几个步骤,这样我就可以在每个步骤中穿插着问一些小问题。比如说:
这个问题牵扯到一组我想要考察的基本知识点:DOM结构、DOM操作、事件处理、XHR和JSON。如果我要求你对换一种处理股票价格的方式,或者 让你在页面中显示其他资讯,就可以把更多的知识点包括进来。对于经验比较丰富应聘者,我也可以自如地扩充套件要考察的知识范围,最简单像JOSN与XML的区 别、安全问题、容量问题,等等。
我还希望应聘者给出的任何解决方案中都不要使用库。我想看到最原生态的程式码,你就当页面中没有包含任何库。你说你对哪个库了解多少多少,但我不能把 关于库的知识作为评判能力的因素,因为库是会随时间变化的。我需要的是真正理解库背后的机制,特别是能够徒手写出一个自己的库的人。
三、解决问题
做为一名前端工程师,最值得高兴的事莫过于解决同一个问题会有很多种不同的方法,而你要做的就是找出最合适的方法来。我在提问的时候,经常会在应聘 者解释完一种方法后问他们还有没有第二种方法。此时我会跟他们说,假设你的这个方法由于种种原因被否决了,那么你还能不能给出另一种方法。这样做可以达到 两个目的。
首先,可以测试出他们是否在毫无意义地复述书本中的东西。不能不承认,某些人确实有过目不忘的天赋,听他们在那里滔滔不绝地讲,你会觉得他们什么都 明白。可是,只要一跟这些人谈到怎么查询方案无效的原因,以及能否拿出一个新方案来,他们往往就傻眼了。这时候,如果我听到“我不明白这个方案为什么不够 好”之类的反问,心里立刻就明白我的问题已经超出了他们的能力范围,而他们只是想拿自己死记硬背的结论来蒙混过关。
其次,可以测试出他们已经掌握的(还是那句话,“想都不用想”)浏览器技术知识。如果他们对浏览器平台的核心知识有较好的理解,想出解决同一问题的不同方案根本没有那么难。
对一名前端工程师来说,这绝对是最重要的能力。前端工程师在工作中遇到本该如此却并未如此的难题(说你啦,IE6),应该说是一件很平常的事。一个方案无效就无计可施的人,做不了前端工程师。
考核应聘者解决问题能力的另一层原因,与我的个人喜好有关。在搞清楚应聘者知道什么不知道什么之后,我就会想着问一个他们知识领域之外的问题。这样 做的目的,就是想看看他们怎样运用已有的知识解决新问题。在解决问题的每一步,我也准备了一些提示,以防有人会卡壳打艮(在我面前15分钟一言不发,对我 评价这个人毫无帮助)。我真正感兴趣的,是他们能够从上一步前进到下一步。我希望看到一个人就在我眼前学到新知识。
注意:所有问题都与浏览器技术相关。我不相信出几道抽象的逻辑题,就能够考出某人解决Web技术问题的能力。在我看来,这无异于让素描大师画肖像(或者让刘翔跟博尔特同场竞技),没有意义,也得不到任何有价值的资讯。
HR一般不会面试太深的问题,主要是了解一下你之前的工作经历,更多的是你自己描述,中间可能会问一些初级的问题,比如,你为什么从上一家单位离职等类似问题。
一道web前端工程师面试题,求解答。
这样的布局用绝对定位实现最合适,ABC的外层用相对定位,里边各列用绝对定位就可以。至于CBA且B宽度自适应,还是用绝对定位,但只定位C,A分部到两侧,中间的列margin设成左右列的宽度就可以。
web前端工程师如何才能硬气的跳槽?
web前端开发工程师想要硬气的跳槽,起码应该达到以下几点:
1.掌握扎实的技术基础,
需要掌握技术包括:HTML、CSS、JavaScript;
HTML是Web程式设计的基础,HTML也是一种规范,一种标准,它通过标记符号来标记要显示的网页中的各个部分。网页档案本身是一种文字档案,通过在文字档案中新增标记符,可以告诉浏览器如何显示其中的内容。
维护大型的CSS程式码库并非易事,特别是那些随意散漫未经组织的CSS程式码极易变成一团乱麻,所以,应该掌握CSS命名规范,来帮助开发者编写优质的程式码。
2.深入理解前端工程化和元件开发;
需要熟悉web前端框架—— React、Vue.js等,
React为我们提供了直接易用的,以状态为核心的前端应用开发方式,前端工程师应该会分析React内部工作原理,讨论React中简单元件、类元件等渲染流程。
Vue.js单元测试是应用开发中不可或缺的部分,日常开发中会用到的Vue.js单元测试的例子,所以应该掌握。
3.熟练掌握Web开发相关知识
至少熟悉一门后端语言,例如Node.js、Java、Go等;
Node.js内部原理视非常重要的,应该明白Node.js的主程序是如何启动的、如何载入内建模组、os包如何实现等等。
4.对技术有热情,有一定前端架构能力或者技术深度;具备团队合作意识强,能够多团队协作开发;具备企业级大型前端应用开发经验更佳。
如何识别一个人是web前端工程师
前端工程师需要懂得设计类程式码和js,有需要了解一些后台语言,例如PHP等。
如何实现成为web前端工程师的梦想
1.入门阶段:能够解决一些问题的水平。有一定的基础(比如最常见的HTML标签及其属性、事件、方法;最常见的CSS属性;基础的JavaScript程式设计能力),能够完成一些简单的Web前端研发需求。
2.进阶阶段:将JavaScript、HTML、CSS之类的编码帮助手册里的每个方法/属性都通读几遍!只有将基础打好,以后的路才能走的顺畅。
3.入室:最强程式码,知道所有能够解决需求的各种方案,能够选择使用最优秀的方案满足需求。这个级别基本上产品开发程式设计中的程式码主力。程式设计师应该能够肯定的回答:对于这个需求而言,我的程式码就是最优秀的程式码。
4.注重细节,注意那些当前需求里没有明文给出的细节:程式码效能的差异、执行平台(浏览器)的差异、需求的隐性扩充套件、程式码的向后相容等等。
如何了解web前端工程师和UI设计师
web前端工程师是不参与任何的设计,直接将网站美工制作的网站效果图使用ps按照效果图进行切片并使用、css、js等程式码进行网页的制作,最终编写出符合w3c标准的相容各个主流浏览器的静态页面,同时还需要按照后台开发人员的要求留下一些后台资料的接口。所以说网站前端工程师更多的是程式设计而不是设计。
UI设计师一般是学美术或者设计出身,精通photoshop、AI、AE等平面设计工具,其在网站开发过程的中的职责就是按照客户或者公司的需求设计出符合客户需求和接口或者颜色符合大众视觉的网站效果,如根据不同行业的需求设计颜色、设计接口风格等,其工作的最后成果就是网站的效果图。
web前端工程师进阶学习路线如何走
less和sass什么时候学都行,1,2天就能学会。这个不着急,没有什么承上启下的作用,可以单独拿出来学。
bootstrap就是一个框架,把最主要的栅格系统看看就好。其他的大概了解能干啥就行,很多公司,是不让用bootstrap的,而是用原始码自己写。这个用一天的时间没啥问题。
node.js和angular比较重要,如果学会,算是上了一个台阶了。所以重点说说这个。
angular属于mvvm框架,一开始觉得angular挺复杂的,所以想学一个简单的,轻量级的,所以决定先学vue。但是在了解的过程中发现,很多的专业名词,没听过,或者理解不透。所以又开始从头学习node.js。在学习node.js的过程中又开始迷茫,发现了很多JS不懂的地方。
所以,又开始深入研究js的dom,函式,ajax,阵列等。总之用了很长的时间,浪费了很长时间。
最后总结一下啊。其实,没必要钻那么多牛角尖。
先做着vue的例子,不懂的地方,直接略过,很多时候,不理解的不懂的东西,用着用着,突然就能明白。照猫画虎先把VUE的例子跟着做一遍之后,同时梳理一下涉及到的JS知识点。能自己用vue做出几个小成品的时候,开始结合js研究node.js。之后再去涉及angular。
angular差不多有个大概了解的时候,反过头接着学vue,你会发现,又会发现很多新东西。
web前端这个东西特别有意思,当你达到一个高度,返回来再看以前的技术,会发现,哎呀,竟然又能发现新大陆。
厦门web前端工程师培训哪家好
培训学校很多,没有具体的衡量标准的。但是可以从几方面去选择:
1 有很多优秀导师的
2 培养出很多优秀学员的
3 只做培训的,没有做其他的
4 做的比较久的。
北京WEB前端工程师培训哪个好
建议找全程面授课程的地方学习,课程体系很重要,现在企业在用人方面讲究全栈的前端工程师人才,所在在课程选择上要慎重,学习内容要基于HTML5,要包含pc端+移动端+后端。这要才能学的系统,就业上才会有所保障。
❿ 前端需要学测试吗
测试是完善的研发体系中不可或缺的一环。前端同样需要测试,你的css改动可能导致页面错位、js改动可能导致功能不正常。由于前端偏向GUI软件的特殊性,尽管测试领域工具层出不穷,在前端的自动化测试上面却实施并不广泛,很多人依旧以手工测试为主。本文试图探讨前端自动化测试领域的工具和实践。