前端工程师的知识系统

下图是前者工程师图解:

ECMAScript 1

7e7ec141gdf7d4810f25f&690

 

前端开发的基本是HTML + CSS +
JavaScript。本质上它们构成一个MVC框架,即HTML作为信息模型(Model),CSS控制样式(View),JavaScript负责调度数据以及落实某种展现逻辑(Controller)。

HTML


1.签的归类

  • 签表示一个元素

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

  • 照语义划分:

Headings: h1, h2, h3, h4, h5, h6
Paragraphs: p
Text Formatting: em, strong, sub, del, ins, small
Lists: ul, li, ol, dl, dt, dd
Tables: table, thead, tbody, tr, th, td
Forms and Input: form, input, select, textarea
Others: div, span, a, img,
HTML5: header, footer, article, section

2.XHTML
XHTML 于2000年的1月26日成为 W3C 标准。W3C 将 XHTML
定义为新型的HTML版本。XHTML 将逐年替代 HTML。XHTML是透过将 HTML 和 XML
各自的助益加以结合形成的。XHTML 语法规则如下:

  • 属于性名和标签号必须小写

  • 属性值必须加引号

  • 特性不能够简写

  • 据此 Id 属性代替 name 属性

  • XHTML 元素必须为正确地嵌套

  • XHTML 元素必须给关

3.签的语义化
否发挥语义而标记文档,而不是以样式,结构可以的文档可以望浏览器传达尽可能多之语义,不论是浏览器在掌上电脑还是风行的桌面图形浏览器。结构可以的文档都能往用户传达可视化的语义,即使是于一直的浏览器,或是在为用户关闭了
CSS 的现世浏览器中。同时结构可以的HTML代码也推动搜索引擎索引而的网站。

  • 不用使用table布局,table是因此来表格显示的。

  • 毫无到处滥用div标签,div是用来分块用之

  • 无须动样式标签,如font, center, big, small, b,
    i,样式可以用CSS来决定,b和i可以为此strong和em来替代。

  • 毫不用换行标签<br />和空格来决定样式,请用CSS。

  • 尽可能不要用内联CSS

CSS

1.基础

  • 层叠和累

  • 优先级

  • 盒模型

  • 定位

  • 浮动

2.进阶

  • CSS Sprite:CSS
    Sprite主要用以前端性能优化的同一种技术,原理是经过以多张背景图片合成在平摆放图片及就此减少HTTP请求,加快载入速度。

  • 浏览器兼容性:绝大部分情下我们需要考虑浏览器的兼容性,目前正利用的浏览器版本非常多,IE6,
    IE7, IE8, IE9, IE10, Chrome, Firefox, Safari。

  • IE HasLayout和Block Format Content:IE HasLayout是一个 Internet
    Explorer for
    Windows的个体概念,它控制了一个要素如何展示和约其含有的内容、如何和任何因素交互与建立联系、如何响应和传递应用程序事件、用户事件等。这种渲染特性可经过一些
    CSS 属性被不可逆转地接触。而有点 HTML
    元素则默认就拥有”layout”。目前只有IE6和IE7有其一概率。BFC是 W3C CSS
    2.1
    规范被之一个定义,它控制了元素如何对该情展开稳定,以及同其余因素的涉嫌和相互作用。这个实在与浏览器的兼容性有关,因为绝大部分之兼容性问题都是其引起的。

  • CSS Frameworks:
    CSS框架是同名目繁多CSS文件之集合体,包含了核心的素重置,页面排版、网格布局、表单样式、通用规则等代码块,用于简化web前端开发的劳作,提高工作效率。目前普遍框架来:

960 Grid System
Blueprint CSS
Bluetrip
Minimum Page

或一个较出名和特别的框架是Twitter的Bootstrap。Bootstrap是快支付Web应用程序的前端工具包。它是一个CSS和HTML的成团,它应用了时髦的浏览器技术,给您的Web开发提供了时尚之版式,表单,buttons,表格,网格系统等等。它是基于Less开发之。不支持IE6,在IE7和IE8里效果呢非咬地。

  • CSS3:
    虽CSS3尚无专业成正式,但是连IE9+, chrome,
    Firefox等现代浏览器还支持CSS3。CSS提供了成百上千在先要因此JavaScript和切图才会搞定的力量,目前重要职能发生:

圆角
多背景
@font-face
动画以及渐变
渐变色
Box阴影
RGBa-加入透明色
字阴影

  • 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 James
    Gaiiett创造的名词,由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框架主要出以下这些:

Backbone.js
Spine
YUI
Agility.js
Ember.js
Batman.js
Dojo
AngularJS(MVVM)
KnockoutJS(MVVM)
web前端上交流群:328058344 禁止闲聊,非喜不进!

  • 模块化开发:特点是“模块化开发,按需要加载“。这中间CommonJS组织定义了AMD的正儿八经用来规范浏览器端的模块定义。RequireJS和SeaJS是落实了AMD的少数只完美的框架。详见: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等还是正确的挑选。

  • 前者安全:随着前端技术之开拓进取,安全题材就于服务器悄然来临了各一个用户的之眼前,盗取用户数量,
    制造恶意的得自复制的蠕虫代码,让病毒在用户中流传,使服务器当掉.
    更起甚者可能会见以用户不知觉得情况下,让用户成为攻击者,这纯属不是骇人听闻。富客户端的使更加广,前端的安全问题也随即增多。常见的口诛笔伐方法发生:

  • XSS,跨站脚论攻击(Cross Site
    Script)。它借助的是恶意攻击者往Web页面里插恶意html代码,当用户浏览该页之常,嵌入的恶意html代码会被实施,从而达到恶意用户之特殊目的。
  • CSRF(Cross Site Request Forgery),跨站点伪造请求。顾名思义就是
    通过伪造连接要于用户不知情的动静下,让用户因自己之身份来形成攻击者需要达成的有的目的。
  • cookie劫持,通过取得页面的权位,在页面被写一个大概的及黑心站点的乞求,并带用户之cookie
    获取cookie后经过cookie 就得直以被盗用户之身份登录站点。
  • 跨域处理:同源策略规定跨域之间的下论是隔离的,一个域底本子不克看同操作另外一个域的多方面性与艺术。所谓的跨域处理便是处在无用域之间的步互相调用,目前来过多主意来处理它。
  • 调节工具:前端的调剂工具很多,比如Firebug,Webkit核心的web
    inspector, IE的iedeveloper。HTTP相关的fiddler,
    httpwatch等,还有格式化代码的jsbeatutifier,它推向阅读压缩处理了之JavaScript代码。IETester可以套所有的IE版本,是调剂IE兼容性的好工具。
  • SEO:搜索引擎优化
  • A/B
    test:确定两只因素或本(A和B)哪个版本更好,你要以实验两个版本。最后,选择最为好的本用。
  • 可用性/可访问性:
  • 可用性指的凡:产品是否好上手,用户能否完成任务,效率如何,以及马上过程被用户之不合理感受可好,是于用户之角度来拘禁产品之质。可用性好意味着产品质量高,是合作社之着力竞争力。
  • 不过访问性:上网用户中那些视力受损的人头,通过屏幕阅读器使用键盘命令将网页的情节念给她们听。以语义化的HTML(结构与显现相互分离的HTML)编写的网页文件,就好给此类用户更便于导航,且网页文件中之基本点信息为重新有或受这些用户找到。
  • 前端流程/部署:Grunt,Bower和Yeoman今昔几是前者最盛的自动化的种类构建工具
  • 正则表达式
  • 浏览器插件开发
  • 浏览器原理

关联能力
美妙之前端工程师需要具备良好的联络能力,因为您的干活与广大人数之做事有关。在旁情况下,前端工程师至少都设满足下列四类似客户的求。

  • 活经营——这些是肩负策划应用程序的一律广大人数。他们力所能及想像发生什么样通过应用程序来满足用户需求,以及哪通过她们计划的模式赚到钱(往往从以及愿违)。一般的话,这些口追求的是增长的效能。

  • UI设计师——这些口负担应用程序的视觉设计和相互模拟。他们关心的是用户对呀敏感、交互的一贯性以及完整的好用性。他们爱让流畅靓丽可连无易于实现的用户界面,但考虑问题往往无周全。

  • 项目经理——这些口负担实际地运转与保障应用程序。项目管理的严重性关注点,无外乎正常运作时刻(uptime)——应用程序始终健康可用之光阴、性能和终结日期。项目经理追求的靶子往往是拼命三郎保持业务的简单化,以及未以晋级创新时引入新题材。

  • 最终用户——当然是应用程序的重要消费者。尽管我们不会见常和最终用户打交道,但她们之举报意见要;没人怀念用之应用程序毫无价值。最终用户要求最好多之哪怕是针对性私家中的功力,以及竞争性产品所怀有的效果。

自从某种意义上说,优秀的前端工程师就如是同一位大使,需要随时获得在外交官的心怀来应针对各国一样上的做事。

怎么样提高前端技术

  • Github是一个脍炙人口之代码托管网站,我们得以于上开创我们个人的路,同时为是上的好地方,我们可关心其他优秀之门类。JSFiddle是一个web开发人员的练习习场,一个可于重重端采用之家伙。我们得据此外来在线编辑一些HTML,CSS,javascript片段。你编的代码可以与其他人分享,或坐你的博客当
  • 读优秀的开源代码
  • 关怀技术ECMAScript发展趋势,了解最新的本行技术,可以由此订阅知名博客,阅读技术情报获取
  • 写博客/记笔记,可以进行文化积累。

前者修炼之路

  • 入门:打基础同时能够参与到路遭到失去。
  • 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
  • 调节工具
  • 正则表达式
  • 响应式设计
  • web前端上交流群:328058344 禁止闲聊,非喜不进!
  • 潜出:把握总体前端项目,做尽前端项目的架构师。
  • CSS性能优化
  • LESS and SASS
  • JavaScript单元测试
  • JavaScript设计模式
  • NodeJS
  • ES5
  • Web移动支付
  • 浏览器插件开发
  • 前端安全
  • 跨域处理
  • SEO
  • A/B test
  • 可用性/可访问性
  • 前端流程/部署
  • 浏览器原理
  • 出征:一代宗师。
  • 切莫鸣金收兵的求学新的技术
  • 交互设计力量,管理能力

前者的前景

  • 挪动技术流路线,即深入钻研前端相关的号技术,比如浏览器原理,JavaScript本身的钻研,W3C各种规范等。前端技术进步迅猛,各种新技巧层出不穷,这条路移动下是十分麻烦的。

  • 通向交互设计方向走,前端工程师完成一定程度后互动设计能力为会得特别十分的增进,对总体信息架构的握住能力为会重新强。可以很好的弥补视觉设计师在交换设计上之阙如。这条总长实在与率先漫漫是休闯之,甚至足以知道啊平长达路。

  • 往后走,即夺读后台开发的技艺,比如JAVA/PHP等,其实绝大部分传统的后台开发人员就是这状态,即前后台都做。个人认为这样的话其实已倒回老路了,毕竟前端就是由原来的后台开发那里独立出来的。

  • 通往管理方向,比如项目经理,或者索性转行,比如公务员等。