QCon2013上海站总结 -- 前端开发
选择这个专题开始主要有两个原因:一是这次会议关于前端开发的内容不多。二是我做过几年前端开发,这个专题对我来说会容易点:)
这次QCon上海关于前端开发有一个Keynote,一个Javascript专题。另外就是别的专题中顺带到的分享,如前端测试。具体链接如下:
- Javascript生态圈:http://www.qconshanghai.com/node/318
- 前端开发的Keynote:http://www.qconshanghai.com/node/410
- 前端测试:http://www.qconshanghai.com/node/347
- Javascript in Facebook (ReactJS): http://www.qconshanghai.com/node/345
- Web App主要职责:资料呈现和用户交互
- Web领域过去10多年最稳定的技术就是HTML(一直就那些标签而已),这背后主要的原因是HTML标准关注的语义描述,而不是具体实现,并且够简单够直接。
- Web App未来的趋势:
- 去框架化(或者叫标准化):我们现在有太多的前端框架,如JQuery、YUI、ExtJs,而且它们都不相容,最关键的是它们做的很多事情都是类似。这给前端开发带来了很多不必要的麻烦和开发成本。其实Javascript标准ECMAScript已经升级到V6,里面已经标准化了很多框架做的事情(而且都是最佳实践),如继承。前端开发应该尽量去框架化并拥抱新的ECMAScript标准。面对现在主流浏览器都只支持ECMAScript V3的问题,你可以找到很多开源软件(如JSTransform, esprima, google traceur-compiler等)把你的JS Codes转化成现在浏览器所能支持的版本去运行。
- 组件化:我们应该学习HTML标准,把前端的组件逻辑,状态和它的具体绘制逻辑给分离开。在现在的前端开发中,我们经常用CSS来表示一个组件的状态(如用特定的CSS Class来表示一个Tabs组件当前Active Tab,这就是一种典型的利用下层绘制技术来表达组件状态的例子。这种方式让组件的逻辑层和它的实现层混合在一起,非常不利于开发,维护和跨平台。Facebook为此提出了一套自己的解决方案:ReactJs。你可以参考上面的链接了解更多细节。
- 自适应化:面对现在客户端的碎片化,前端开发面临的一个大挑战就是怎样在不同设备上呈现内容。目前普遍的做法就是针对每种终端重做一份。Hedger认为这种方案并不是最佳的(需要额外的开发人员,不同终端上的功能不同步),我们应该在组件化的基础上实现组件的自适应化。让各个不同终端共用统一组件逻辑,而让组件自身能够自适应它所运行的终端。现在Facebook已经开始这样做了。
- 声明化:声明化应该是针对传统我们的命令式编程方法而言。它强调的是对问题自身的描述,而不是怎样通过命令式的逻辑流去解决一个问题。SQL就是一种典型的声明式语言。这个应该是最近开发语言的一个主要发展方向(如函数编程)。关于它怎样运用到前端开发,本人还是理解不多~~
- 并行化:传统的浏览器一直是单线程模式,它极大的限制了Web App的表现能力。现在Google从WebKit中分支出自己的Blink项目,一个非常重要的功能就是给浏览器添加并行化运行的能力。一旦这个做成了(而且成功的可能性非常大,毕竟Google有自己的浏览器和牛逼的人),前端WebApp的表现能力将会有很大改善。
- 顺势而为的Web自动化测试:这个讲座主要是关注怎样保证测试用例的稳定性。其基本思想是从用户的行为角度来设计测试用例,并用XML的方式表达它,然后利用专门的工具把XML测试用例翻译成可以在前端页面上运行的测试用例并运行。这样就隔离了测试用例和具体DOM Tree的实现,从而保证了测试用例的稳定性。
- totoro - 简单易用、稳定的前端单元测试工具:这个讲座主要是从测试环境的角度去保证测试的稳定和高效。该讲座分享了支付宝是怎样建立一个高效、稳定、支持多浏览器的测试环境。该环境大大提高了前端开发人员的效率并保证了前端的质量。个人觉得是一个不错的分享,值得前端团队学习一下。
QCon2013上海站总结 -- 前端开发的更多相关文章
- 总结:Mac前端开发环境的搭建(配置)
新年新气象,在2016年的第一天,我入手了人生中第一台自己的电脑(大一时好友赠送的电脑在一次无意中烧坏了主板,此后便不断借用别人的或者网站的).macbook air,身上已无分文...接下来半年的房 ...
- 前端开发:面向对象与javascript中的面向对象实现(二)构造函数与原型
前端开发:面向对象与javascript中的面向对象实现(二)构造函数与原型 前言(题外话): 有人说拖延症是一个绝症,哎呀治不好了.先不说这是一个每个人都多多少少会有的,也不管它究竟对生活有多么大的 ...
- openresty 前端开发入门五之Mysql篇
openresty 前端开发入门五之Mysql篇 这章主要演示怎么通过lua连接mysql,并根据用户输入的name从mysql获取数据,并返回给用户 操作mysql主要用到了lua-resty-my ...
- JS高级前端开发群加群说明及如何晋级
JS高级前端开发群加群说明 一.文章背景: 二. 高级群: 三. 加入方式: 四. 说明: 一.文章背景: 去年年初建了几个群,在不经意间火了,一直排在“前端开发”关键字搜索结果第一名.当然取得这 ...
- web前端开发分享-目录
1. web前端开发分享-css,js入门篇 2. web前端开发分享-css,js进阶篇 3. web前端开发分享-css,js提高篇 4. web前端开发分享-css,js工具篇 5. web前端 ...
- 前端开发:setTimeout与setInterval 定时器与异步循环数组
前端开发:setTimeout与setInterval 定时器与异步循环数组 前言: 开通博客园三个月以来,随笔记录了工作中遇到的大大小小的难题,也看过无数篇令人启发的文章,我觉得这样的环境是极好的, ...
- 前端开发:面向对象与javascript中的面向对象实现(一)
前端开发:面向对象与javascript中的面向对象实现(一) 前言: 人生在世,这找不到对象是万万不行的.咱们生活中,找不到对象要挨骂,代码里也一样.朋友问我说:“嘿,在干嘛呢......”,我:“ ...
- 前端开发:css基础知识之盒模型以及浮动布局。
前端开发:css基础知识之盒模型以及浮动布局 前言 楼主的蛮多朋友最近都在学习html5,他们都会问到同一个问题 浮动是什么东西? 为什么这个浮动没有效果? 这个问题楼主已经回答了n遍.今天则是把 ...
- 前端开发:Javascript中的数组,常用方法解析
前端开发:Javascript中的数组,常用方法解析 前言 Array是Javascript构成的一个重要的部分,它可以用来存储字符串.对象.函数.Number,它是非常强大的.因此深入了解Array ...
随机推荐
- JavaScript —— 局部变量和全局变量
JS的全局变量有3种声明方式: 1.Function 外 var v_myVar; 2.Function 内 v_myVar; 3.window.v_myVar window.v_myVar 全局变量 ...
- CF#FF(255)-div1-C【水题,枚举】
[吐槽]:本来没打算写这题的题解的,但惨不忍睹得WA了13次,想想还是记录一下吧.自己的“分类讨论能力”本来就很差. 刚开始第一眼扫过去以为是LIS,然后忽略了复杂度,果断TLE了,说起来也好惭愧,也 ...
- hdu - 1728逃离迷宫 && hdu - 1175 连连看 (普通bfs)
http://acm.hdu.edu.cn/showproblem.php?pid=1728 这两道题花了一下午的时候调试,因为以前做过类似的题,但是判断方向的方法是错的,一直没发现啊,真无语. 每个 ...
- BZOJ 1009 GT考试(ac自动机+矩阵DP)
题目链接:http://61.187.179.132/JudgeOnline/problem.php?id=1009 题意:给定一个长度为m的串s.有多少种长度为n的串不包含s? 思路:(1)将s插入 ...
- github创建repo,本地导入git项目到github
一般地,在注册好github账号之后,你需要做的事情就是在github上创建一个repo,该repo将成为你的origin(central)repo,随后你就可以将本地的项目git repo导入到这个 ...
- HDU 1016 Prime Ring Problem
在刚刚写完代码的时候才发现我以前交过这道题,可是没有过. 后来因为不理解代码,于是也就不了了之了. 可说呢,那时的我哪知道什么DFS深搜的东西啊,而且对递归的理解也很肤浅. 这道题应该算HDU 261 ...
- VFL示例
•[cancelButton(72)]-12-[acceptButton(50)] •取消按钮宽72point,accept按钮宽50point,它们之间间距12point • •[wideView( ...
- java事务的处理
java的事务处理,如果对数据库进行多次操作,每一次的执行或步骤都是一个事务. 如果数据库操作在某一步没有执行或出现异常而导致事务失败,这样有的事务被执行有的就没有被执行,从而就有了事务的回滚,取消先 ...
- window 7 下一台cp 两个mysql 配置主从
环境 : 个人 pc windows7 一台 ; 使用 : 官方下载: mysql-noinstall-5.5.11-win32.zip 1. 解压 成2个 (文件夹) mysql_master (主 ...
- 纠结的ARC
xcode不断进步,在xcode4中引入了ARC的概念.您用或者不用它就在那里,于是有了本文:如何在未使用arc的工程中引入一个使用了arc特性的文件,如何在arc工程中引用未使用arc的文件.其实说 ...