笔者介绍:13级毕业生,目前毕业一年,前就职地点北京,任职一年。前端小菜鸟吧,前一家公司是个创业小公司,毕业时做的是python 后端开发,由于前端人员紧张,后来主要参与前端页面开发。才发现自己爱上了这种直面用户的设计型程序工作,理工与设计相结合吧。
目前技术能力:后端python 使用过flask做web容器,前端之前主要负责页面逻辑实现,所以css和html比较弱项,js有看过JS高程三,有学习过js面向对象编程相关学习视频。上一个公司项目主要做数据可视化,所以百度出的echarts使用比较多。整体框架使用过MVVC模式的vue.js,源码没有看过。其他相关技能如:数据库,git操作等
不骄不躁吧,一步一个脚印,趁这段时间好好总结,好好沉淀
好,废话不多说,进入正题吧
前端面试需求分析(2)WEB高级工程师
岗位职责
1,负责相关产品的需求以及前端程序的实现,提供合理的前端架构
2,能够对设计师给定作品,进⾏代码研发以及完成交互类前端开发工作
3,与产品、后台开发人员保持良好沟通,能快速理解各方需求,并落实为具体的开发工作
4,了解服务器端的相关工作,在交互体验、产品设计等方面有自己的见解
任职要求
1,熟练掌握HTML5、CSS3、JavaScript开发
2,熟悉W3C标准与ES规范,熟悉Web语义化
3,熟练掌握盒模型、常用布局以及浏览器和移动设备兼容性
4,熟练使用至少一种JS框架,熟悉Vue、React等,掌握其原理,能独立开发常用组件
5,熟练使用各种调试、抓包工具,能独立分析、解决和归纳问题
6,具有性能优化经验
7,熟悉各种常用设计模式和常用MV*框架
8,熟练使用Git
岗位职责分析:
- 1,负责相关产品的需求以及前端程序的实现,提供合理的前端架构
上一个项目所使用到技术栈如下:
后端语言:python
,Web框架:flask微框架
数据库:postgres
和Oracle
Nginx
缓存服务器静态文件并且做静态文件解析和端口转发
前端:项目第一版用的是Jquery
和原生JS
做逻辑交互,后来由于数据逻辑比较复杂,并且页面可复用内容比较多。后来 技术选型改为MVVC
模式,选用了上手比较快的Vue.js
做了项目重构。
等等- 2,熟悉W3C标准与ES规范,熟悉Web语义化
总的来说就是要注意标签的使用 多用table
h1-h6
ul
li
small
等语义化标签 而不是整个页面都是div 这样即使整个页面不加载css 给人的结构也是很清晰的.特别是在HTML5中新加入了一些语义化标签比如:header
,footer
和aside
等更加清晰的页面结构是高质量页面的基础。同时W3C万维网联盟提出的一系列HTML和CSS及JS等规范都需要遵守。
虽然有一些规则确实比如繁琐,比如声明JS代码块的时候必须
<script language = 'javascript ' type=”text/javascript” >
而不能只简单的写为:<script>
或者是<script language=javascript>
同样声明css代码块的时候也是如此
language=javascript
而不能直接写在<style >
还有一些其他的标准,其实都是在写代码过程中比较容易忽略掉的不规范的地方,平时还是要多多注意- 3,与产品、后台开发人员保持良好沟通,能快速理解各方需求,并落实为具体的开发工作
程序员
这个可能是每个程序员小伙伴的软肋了,和人交流,与后台开发人员保持良好的沟通,由于之前公司做的项目不是自己公司的产品,所以会设计到甲方乙方这些交涉问题,在产品交流过程中,首要的一点就是理解甲方的 需求点,花点时间了解甲方的需求点,比盲目先做出效果来还有效果。总之这是一些产品和项目相关的技巧,可以单独花一长篇的篇幅来讲解,这一点点也不能够完整的表述出来- 4,了解服务器端的相关工作,在交互体验、产品设计等方面有自己的见解
了解服务端的相关工作,上一个项目从数据清洗入库,到数据前端可视化展示都有过参与,服务器端主要做数据处理,数据对象的返回,业务逻辑的实现,同时后台服务器端的部署,环境的搭建也有过一些了解。
在交互体验,产品设计方面,如果是业务逻辑方面的话,首先是要保证用户逻辑的清晰性和紧密性。用户操作的简便性。其次是美观和UI相关的一些简单的设计原则,比如在颜色使用方面和其他设计方面的优化。
技术要求分析
任职要求
- 1,熟练掌握HTML5、CSS3、JavaScript开发
一看到HTML5和CSS3现在就会想到移动端web开发。因为PC端IE只有从IE9才支持HTML5,在PC端只要要考虑到兼容性问题,HTML5新增的特性(在上一篇博客里已经有描述):1:画板canvas
2:多媒体标签video,audio
3:webStorage:localStorage
和SessionStorage
4:新的语义化标签:article
,header
,footer
,nav
等
5:新的表单控件
CSS新增的特性:
1:更多的样式效果,圆角,文字特效
2:更多的CSS选择器
3:引入新的伪类元素::selection
4:媒体查询,多栏布局
5:border-image
- 2,熟悉W3C标准与ES规范,熟悉Web语义化
- 3,熟练掌握盒模型、常用布局以及浏览器和移动设备兼容性
基本概念:css盒模型,由里向外:content
,padding
,border
,margin
。同时盒模型有两种:标准模型和IE模型,主要区别是标准模型的width
只表示content
内容的width
,而IE模型中的width
是表示包括content
的width
和padding
和border
即表示的里面的整个内盒- 4,熟练使用至少一种JS框架,熟悉Vue、React等,掌握其原理,能独立开发常用组件
熟悉至少一种JS框架,目前是Jquery,Jquery是通过选择器返回对应的Jquery对象,而Jquery对象封装了很多的方法和属性,可以更加方便的对DOM进行操作。相当于在JS外面再包了一层Jquery对象属性。。VUE框架,经典的MVVC模型框架。组件的注册和编写等等,组件之间数据的传递,组件的生命周期钩子- 5,熟练使用各种调试、抓包工具,能独立分析、解决和归纳问题
各种调试工具,主要是浏览器自带的调试工具,抓包工具:fiddler。主要可以看响应的时间,请求头和请求参数的抓取,服务器返回数据的结构等等分析操作。前端问题论坛:掘金- 6,具有性能优化经验
前端性能优化的几种解决方案:
1:减少http请求数量,比如请求合并或者资源合并等等
2:减少页面重绘,最好是写多个class样式等
3:减少DOM操作,减少DOM遍历查询,尽量在DOM操作时将DOM对象保存为变量,避免重复查询
4: 使用json格式来进行数据交换
5:高效的HTML标签和CSS样式
6:精简和压缩cSS和js文件
7:一些静态文件的缓存和压缩编码- 7,熟悉各种常用设计模式和常用MV*框架
常用的设计模式和MVVC框架的理解- 8,熟练使用Git
多人合作的代码仓库的使用,开发者必备的push和pull,merge和分支等等操作