前端工程师的学识系统

图片 1

前端开发的主干是HTML + CSS +
JavaScript。本质上它们组成七个MVC框架,即HTML作为音讯模型(Model),CSS控制样式(View),JavaScript负责调度数据和落到实处某种突显逻辑(Controller)。

HTML


1.标签的归类

  • 标签表示1个成分

  • 按性质划分: Block-Level和Inline-Level

  • 按语义划分:

Headings: h1, h2, h3, h4, h5, h6Paragraphs: pText Formatting: em,
strong, sub, del, ins, smallLists: ul, li, ol, dl, dt, ddTables:
table, thead, tbody, tr, th, tdForms and Input: form, input, select,
textareaOthers: div, span, a, img, HTML5: header, footer, article,
section

2.XHTML

XHTML 于两千年的1月215日改成 W3C 标准。W3C 将 XHTML
定义为流行的HTML版本。XHTML 将渐渐替代 HTML。XHTML是透过把 HTML 和 XML
各自的长处加以结合形成的。XHTML 语法规则如下:

  • 属性名和标签名称必须小写

  • 属性值必须加引号

  • 属性不能够简写

  • 用 Id 属性代替 name 属性

  • XHTML 成分必须被科学地嵌套

  • XHTML 成分必须被关门

3.标签的语义化为发挥语义而标记文书档案,而不是为着样式,结构能够的文书档案能够向浏览器传达尽大概多的语义,不论是浏览器位于掌上电脑照旧风行的桌面图形浏览器。结构能够的文档都能向用户传达可视化的语义,固然是在老的浏览器,或是在被用户关闭了
CSS
的当代浏览器中。同时协会能够的HTML代码也助长搜索引擎索引你的网站。(web前端学习沟通群:328058344
禁止闲谈,非喜勿进!)

  • 并非选择table布局,table是用来表格展现的。

  • 决不四处滥用div标签,div是用来分块用的

  • 不要使用样式标签,如font, center, big, small, b,
    i,样式能够用CSS来决定,b和i能够用strong和em来顶替。

  • 决不选取换行标签和空格来控制样式,请用CSS。

  • 尽也许不要选择内联CSS

CSS

1.基础

  • 层叠和一而再

  • 优先级

  • 盒模型

  • 定位

  • 浮动

2.进阶

  • CSS 七喜:CSS
    Pepsi-Cola首要用来前端品质优化的一种技术,原理是经过将多张背景图片合成在一张图纸上之所以收缩HTTP请求,加速载入速度。

  • 浏览器包容性:绝大多数情状下大家必要考虑浏览器的包容性,最近正在利用的浏览器版本格外多,IE6,
    IE7, IE8, IE9, IE10, Chrome, Firefox, Safari。

  • IE HasLayout和Block Format Content:IE HasLayout是2个 Internet
    Explorer for
    Windows的私有概念,它决定了3个因素怎么样显示以及约束其含有的故事情节、怎么样与别的因素交互和建立联系、怎样响应和传递应用程序事件、用户事件等。那种渲染特性能够由此一些
    CSS 属性被不可转败为胜地接触。而有个别 HTML
    成分则默许就全体”layout”。近年来唯有IE6和IE7有那个可能率。BFC是 W3C CSS
    2.1
    规范中的叁个概念,它控制了元素怎样对其内容展开稳定,以及与其余因素的关联和彼此作用。那些实在和浏览器的包容性有关,因为绝半数以上的包容性问题都以它们引起的。(web前端学习沟通群:328058344
    禁止闲谈,非喜勿进!)

  • CSS
    Frameworks:CSS框架是一文山会海CSS文件的集合体,包罗了主题的成分重置,页面排版、网格布局、表单样式、通用规则等代码块,用于简化web前端开发的劳作,升高级工程师作功用。近年来常见框架有:

960 Grid System
Blueprint CSS
Bluetrip
Minimum Page

要么2个相比有名和奇特的框架是推特的Bootstrap。Bootstrap是便捷支付Web应用程序的前端工具包。它是2个CSS和HTML的聚众,它选拔了新星的浏览器技术,给您的Web开发提供了时髦的版式,表单,buttons,表格,网格系统等等。它是依照Less开发的。不辅助IE6,在IE7和IE8里效果也不咋地。

CSS3:

固然如此CSS3还没有正经成为专业,可是包含IE9+, chrome,
Firefox等现代浏览器都帮忙CSS3。CSS提供了许多原先要求用JavaScript和切图才能搞定的功效,最近首要功效有:

圆角
多背景

@font-face
动画片与渐变
渐变色
Box阴影
OdysseyGBa-加入透明色
文字阴影

  • CSS品质优化:CSS
    代码是控制页面展现样式与效益的最直接“工具”,可是在性质调优时她们平常被
    Web 开发工程师所忽略,而实际非僧非俗的 CSS
    会对页面渲染的频率有人命关天影响,特别是对此结构复杂的 Web 2.0
    页面,那种影响进一步不可磨灭。所以,写出正式的、高质量的 CSS
    代码会十分的大的增长应用程序的频率。

  • LESS and SASS:CSS 预处理器,用来为 CSS
    扩充部分编制程序的的表征,无需考虑浏览器的包容性难题,例如你能够在 CSS
    中动用变量、不难的程序逻辑、函数等等在编制程序语言中的一些中央技能,能够让你的
    CSS
    更见简洁,适应性更强,代码更直观等诸多利益。SASS基于Ruby开发。LESS既能够在客户端运营,也得以凭借Node.js可能Rhino在服务端运营。

javascript


1.基础

  • 数据类型

  • 变量

  • 表达式与运算符

  • 操纵语句

  • 函数

  • 异常

  • OO

  • 事件

  • BOM

  • 闭包

2.进阶

  • DOM:DOM即文档对象模型,HTML DOM
    定义了拜访和操作HTML文书档案的正规方法。差不离拥有的现世浏览器都能很好的支撑DOM了。

  • JSON:(JavaScript Object Notation)
    是一种轻量级的数据交换格式,易于人阅读和编排,同时也易于机器解析和扭转。是当下事实上数据沟通的正儿八经格式,大约拥有语言都扶助JSON,比XML强太多了。

  • AJAX:即“Asynchronous JavaScript and XML”(异步JavaScript和-
    XML),AJAX并非缩写词,而是由Jesse JamesGaiiett创建的名词,由谷歌(Google)发扬光大。用于创制更好更快以及交互性更强的
    Web 应用程序的技能。

  • JavaScript
    Frameworks:相当大简化我们JavaScript编程的工作量,它至关心重视要提供了以下多少个首要意义:
    DOM操作,跨浏览器兼容性,以及程序架构。当然像jQuery它自个儿其实并不是贰个框架,它是贰个库(lib)。目前主流的框架或库有如下几个:

jQuery
YUI
DOJO

  • HTML5:同CSS3近乎,即纵然尚无成为业内,然则主流的浏览器都援救了。HTML5不是HMTL,固然也提供了有个别新标签,不过它的主要用途仍旧JavaScript。HTML5要害提供以下职能:

本地音频摄像播放
Canvas/SVG
地理音信
硬件加快
本地运转
本土存款和储蓄
从桌面拖放文件到浏览器上传
语义化标签,Form表单

  • 前端模板:主借使为着消除复杂的数量拼接难点,能够将模板语言转换化为HTML结构,能够大大简化工作量,同时期码的可维护性获得相当大的升高。方今可比主流前端模板有:

MustCache
JsRender

  • 前端MVC:Web应用的意义进一步强,Javascript代码也更是多,大量的JS代码要以何种架构来集团就成了三个亟待消除的难题,于是就有人把守旧的MVC架构移植到前者来消除那么些标题。近年来主流前端MVC框架首要有以下那么些:
    (web前端学习沟通群:328058344 禁止闲谈,非喜勿进!)

Backbone.js
Spine
YUI
Agility.js
Ember.js
Batman.js
Dojo
AngularJS(MVVM)
KnockoutJS(MVVM)

  • 模块化开发:特点是“模块化开发,按需加载“。这几个中CommonJS组织定义了AMD的行业内部用来规范浏览器端的模块定义。RequireJS和SeaJS是落到实处了英特尔的七个漂亮的框架。详见:http://www.weakweb.com/articles/341.html

  • JavaScript单元测试:QUnit

  • JavaScript设计方式

  • NodeJS:把JavaScript移植到服务器端了,那样前端和后端就能够使用相同的技能,方便统一开发。而且NodeJS是非阻塞调用的,在特定领域质量是那些强大的。而且那是前端开发职员出动后台开发的好机会,进而前后端统一开支,但又不用去学习其余后台开发语言。

  • ES5:ECMAScript
    5,也正是风尚的JavaScript规范,对此前的JavaScript作了众多革新,扩充了众多新的特征,比如JSONECMAScript
    5,也正是风靡的JavaScript规范,对前边的JavaScript作了重重更上一层楼,扩张了触目皆是新的天性,比如JSON。

Others


  • 响应式设计:伴随着各个智能装备的流行,响应式设计今后是不行炎热。在此之前做网页只要面向PC机的浏览器,页面一向固定宽度就行,比如960px,而近日由此手提式有线电话机的访问量已经超先生过PC机,并且配备的尺码各类种种,以往会越来越多。在那种背景下,网页辅助具备设施实行访问是中央供给了,而响应式设计能很好的消除这个标题。

  • Http1.1:GET,POST格局,Request/Response 尾部,状态码等。

  • Web移动支付:开发格局一般是native的措施只怕Web格局,作为前端开发人士来说当然是去读书Web移动支付了。PhoneGap是必学的,前端层面包车型大巴框架如jQueryMobile,
    Sencha Touch, jQTouch等都以合情合理的取舍。

  • 前者安全:随着前端技术的发展,安全题材已经从服务器悄然来临了每1个用户的的前面,盗取用户数量,
    创建恶意的能够本人复制的蠕虫代码,让病毒在用户间传播,使服务器当掉.
    更有甚者大概会在用户不知觉得意况下,让用户成为攻击者,这相对不是骇人听说。富客户端的采取越来越广,前端的中卫难点也随之增多。常见的攻击情势有:

  • XSS,跨站脚本攻击(克罗丝 Site
    Script)。它指的是恶意攻击者往Web页面里安插恶意html代码,当用户浏览该页之时,嵌入的恶意html代码会被执行,从而落成恶意用户的特有目标。
  • CSTiggoF(Cross Site Request Forgery),跨站点伪造请求。顾名思义就是通过伪造连接请求在用户不知情的状态下,让用户以团结的地方来形成攻击者必要高达的一部分指标。
  • cookie勒迫,通过得到页面的权杖,在页面中写3个简练的到黑心站点的呼吁,并带走用户的cookie
    获取cookie后经过cookie 就能够直以被盗用户的身价登录站点。
  • 跨域处理:同源策略规定跨域之间的脚本是与世隔膜的,1个域的台本无法访问和操作此外三个域的绝大多数属性和艺术。所谓的跨域处理正是高居不用域之间的步伐互相调用,近来有过多办法来处理它。

  • 调节工具:前端的调试工具很多,比如Firebug,Webkit大旨的web
    inspector, IE的iedeveloper。HTTP相关的fiddler,
    httpwatch等,还有格式化代码的jsbeatutifier,它推向阅读压缩处理过的JavaScript代码。IETester能够效仿全体的IE版本,是调剂IE包容性的好工具。

  • SEO:搜索引擎优化

  • A/B
    test:明确三个因素或版本(A和B)哪个版本更好,你须求同时实验三个版本。最终,采用最棒的版本选用。

  • 可用性/可访问性:

  • 可用性指的是:产品是或不是简单上手,用户能不可能达成职务,效用如何,以及这进程中用户的主观感受可好,是从用户的角度来看产品的质量。可用性好代表产品质量高,是店铺的着力竞争力。
  • 可访问性:上网用户中那个视力受损的人,通过荧屏阅读器使用键盘命令将网页的情节读给她们听。以语义化的HTML(结构和显现相分离的HTML)编写的网页文件,就能够让此类用户更便于导航,且网页文件中的首要消息也更有可能被这个用户找到。
  • 前端流程/安顿:GruntBowerYeoman今昔大致是前者最流行的自动化的种类创设工具

  • 正则表达式

  • 浏览器插件开发

  • 浏览器原理

交换能力

完美的前端工程师供给具有优良的维系能力,因为您的办事与不可胜数人的办事不无关系。在任何景况下,前端工程师至少都要满意下列四类客户的需要。
(web前端学习交换群:328058344 禁止闲谈,非喜勿进!)

  • 产品老董——这几个是负责策划应用程序的一群人。他们可以想像出什么通过应用程序来满意用户需要,以及哪些通过他们陈设的格局赚到钱(往往白璧微瑕)。一般的话,那个人追求的是增加的效劳。

  • UI设计师——那么些人承担应用程序的视觉设计和相互模拟。他们关怀的是用户对怎么样敏感、交互的一向性以及完整的好用性。他们喜爱于流畅靓丽但并不便于实现的用户界面,但考虑难点屡屡不周密。

  • 项目老董——那些人负担实际地运维和掩护应用程序。项目管理的要紧关切点,无外乎符合规律运作时刻(uptime)——应用程序始终健康可用的岁月、品质和终结日期。项目经理追求的靶子往往是硬着头皮有限帮助理工科程师作的简单化,以及不在升级更新时引入新题材。

  • 最后用户——当然是应用程序的主要性消费者。尽管大家不会平时与最终用户打交道,但她俩的反映意见首要;没人想用的应用程序毫无价值。最终用户要求最多的正是对民用有效的效果,以及竞争性产品所负有的功能。

从某种意义上说,杰出的前端工程师就好像一位民代表大会使,须求时刻抱着外交官的心怀来应对每一日的做事。

怎么样抓好前端技术

  • Github是2个上佳的代码托管网站,我们得以在上创制大家个人的系列,同时也是学习的好地点,大家得以关心其余优异的品类。JSFiddle是二个web开发职员的演练场,3个方可在众多方面利用的工具。大家可以用她来在线编辑一些HTML,CSS,javascript片段。你编辑的代码能够与其余人分享,或嵌入你的博客等
  • 开卷杰出的开源代码
  • 关心技术发展趋势,精晓最新的行当技术,可以透过订阅有名博客,阅读技术情报获取
  • 写博客/记笔记,能够开始展览文化积累。

前者修炼之路

入门:打基础同时能参预到品种中去。

  • HMTL & XHTML
  • CSS基础知识
  • JavaScript基础知识
  • DOM
  • JSON
  • AJAX
  • JavaScript Frameworks

深入:领会前端大旨技术,能够独自工作。

  • HTML5标签,TML标签语义化
  • CSS Sprite
  • 浏览器包容性
  • IE HasLayout和Block Format Content
  • CSS3
  • 精通JavaScript Frameworks
  • HTML5
  • 前者模板
  • 前端MVC
  • 模块化开发
  • Http1.1
  • 调剂工具
  • 正则表达式
  • 响应式设计

潜出:把握总体前端项目,做百分百前端项指标架构师。

  • CSS质量优化
  • LESS and SASS
  • JavaScript单元测试
  • JavaScript设计格局
  • NodeJS
  • ES5
  • Web移动支付
  • 浏览器插件开发
  • 前端安全
  • 跨域处理
  • SEO
  • A/B test
  • 可用性/可访问性
  • 前者流程/布署
  • 浏览器原理

进军:一代宗师。

  • 不停的求学新的技巧
  • 互动设计能力,管理能力

前端的前程

  • 走技术流路线,即深切钻研前端相关的各项技能,比如浏览器原理,JavaScript本身的探究,W3C各样专业等。前端技术进步高速,各类新技巧习以为常,那条路走下来是很累的。

  • 往交互设计方向走,前端工程师完毕一定程度后互相设计能力也会取得非常的大的增长,对总体新闻架构的握住能力也会更强。能够很好的弥补视觉设计师在沟通设计上的供不应求。那条路实在和率先条是不争辩的,甚至足以知道为同一条路。

  • 以后走,即去学学后台开发的技术,比如JAVA/PHP等,其实绝半数以上观念的后台开发职员正是以此景况,即前后台都做。个人认为那样的话其实早就走回老路了,究竟前端正是从原来的后台开发这里独立出来的。

  • 往管理方向,比如项目老总,可能索性转行,比如公务员等。