web前端开发书籍工程师必读书籍有哪些值得推荐

  前端工程师在中国兴起也就5年左右,以前公司里没有专门前端工程师的这个职位,很多前端方面的任务都是由全栈工程师来完成,有的基础一点的后台或者设计的帮助分担一些。但是随着互联网的快速发展,特别是所谓的Web2.0的发展,前端业务变得复杂起来,需要有专业的前端工程师来满足用户多样化的需求。
  然而,高校的计算机教育并没有跟上互联网快速发展步伐,现在高等学校里没有的前端课程,对于需要打基础的前端同学来说学习起来比较困难。&学校里没有前端的课程,那如何学习JavaScript,又如何使自己成为一个合格的前端工程师呢? 如果入职了,可以在项目中学习和跟着有经验的同事学习,而对于还没有入职的同学,书中就有着相对完整的知识体系,每读一本好书都会带来一次全面的提高。但如果深一脚浅一脚的学习,写出代码的质量会参差不齐。初学者的首要任务是成为靠谱的熟练开发者,能够稳定的输出有一定质量的代码,这样才能让人放心的把任务交给你。不过前端本来就是一门杂而多的领域,刚进入前端,可能难度不大,但是要进一步系统深入放入学习,思路就不会那么清晰。前端书籍又难以正确挑选,很容易就会迷茫。废话不多说,入正题。介绍一下前端学习的一些书籍(后面附有前端海量资源,访问)
大部分技术,熟读下列四类书籍,就是一个很好的学习提升
入门,用浅显的语言和方式讲述正确的道理和方法
全面,巨细无遗地探讨每个细节,遇到疑难问题时往往可以在这里得到理论解答
实践,结合实际中经常遇到的情景环境,来描述如何设计和解决问题
深入,讲解一些文化,思路,甚至于哲学上的东西,真正做到深入一种语言去编程,如unix编程艺术,程序员修炼之道等等
接下来介绍的这些书籍,没法说这是前端学习最优路线,但真看进去了获得一个IT民工从业资格是没啥问题的。(HTML和Web标准这里就不介绍书籍了,这个书籍的话也没有什么代表性的。HTML知识不多,主要就是要领悟Web语义化的精髓,结构决定上层建筑。Web标注大家去W3C中国官网去查找,按照标准来,写多了,自然就理解标准了,背下来没用。)&
书籍推荐(CSS系列)
推荐书籍:
  css那些事儿,精通css(高级Web标准解决方案)。
  理由:1、css那些事儿,他是一本介绍css基础类的书,是入门的经典读物。系统的介绍了css的选择符,伪类,工作环境,盒模型,两列,三列自适应布局。文字样式,图片处理,列表,表单,还有选项卡,相册,导航,新闻列表等其它大部分的实践。2、精通css,这书已经出到第二版了,相比第一版,第二版的大部分目录结构保持不变,内容变得更丰满了。此书从一另一个视角介绍了css的博大精深。我通读了三遍,觉得作者心思细腻,真的吧这个职业做的很标准。&
书籍推荐(JS系列)
入门级,也适合想掌握一些前端技能的非前端工程师&&JavaScript Dom编程艺术&
成为一名合格的前端工程师&&JavaScript高级程序设计&(或&JavaScript权威指南&) &精通JavaScript&
更优秀的代码,更优良的设计&&JavaScript语言精粹& &JavaScript设计模式&
  从语言细节到复杂工程实践,想开发靠谱的各类底层代码,应该看看&&Secrets of the JavaScript Ninja& &JavaScript Patterns& &ECMA-262 in Detail& 应该重视跟踪阅读一些大牛们的Blog了
各类专题书籍,读好第二批次书籍之后,有精力就接触下
&高性能网站建设指南&
&高性能网站建设进阶指南&
&高性能JavaScript&
&Ajax实战&
&JQuery实战&
&精通CSS&(或&CSS权威指南&)
&正则表达式必知必会&(或&正则表达式权威指南&)
&HTML5与CSS3权威指南&
&NodeJS开发指南&
&深入浅出Node.js&
&锋利的jquery&
关于一个主题的书很多,那我们怎么找到一本合适我们阅读的书呢?因为适合自己的才是最好的。下面是一些些小技巧:
在各大图书网(如当当、亚马逊、京东等)上搜索关键词,如jQuery,可以选择按照销量或好评排序,一般排在前面的就是很抢手的好书,值得阅读
如果想看一本书的评价怎么样,那就去豆瓣读书搜索吧,那里的评论还是值得参考的  
()&&  话说这本书的中文名有一些标题党的,当初如果知道这仅是一本入门书籍,我是不会买来的.拿到后一天就看完了,对我来说没有太多技能上的实质帮助.不过这个书语言很流畅,重要的是对知识深浅度把握的很好,html/js/css/dom各个方面都把握在一个合适的度,这很符合我对书籍期望,一步步走,每一步都踏踏实实.&  这本书通过几个实例,循序渐进的介绍了前端开发的方方面面,让大家能够了解前端的技术体系概况,又能具备了一些简单的动手能力.如果大家对我之前写过的&&有些感觉,那读读这本书正好能上手实践一把.&  去年淘宝前端懒懒交流会的豆瓣小站上做了一个调查,虽然投票的人不多,但这本书却是遥遥领先.&()&&这本书的第一版很全面且不枯燥的书籍,年纪轻轻的NCZ有这样的大作难能可贵.读懂这本书,前端技能又可以上一个台阶,基本上可以成为专业的前端工程师了.&& & & 对于当时的我来讲,这本书及时的补充了浏览器兼容性方面的知识,特别是事件相关的知识,这个浏览器间差别最大.有些内容讲的非常简单明了,比如call和apply的用法,之前总是理解不好,NCZ几句话+一个例子就说明白了.&& & & 然而作为全面型的书籍,第一版也是有一些问题的:&& & & 1.闭包只半页篇幅,没说清楚.&& & & 2.匿名函数没怎么讲.&& & & 3.全书没提到constructor,更别说hasOwnProperty,__proto__.&& & & 这带来了我之前说的深一脚浅一脚的困扰,这些知识基本上是通过&JavaScript权威指南&阅读中补充的,当然当时版本的权威指南也有同样的问题,比如它没解释instanceof.也没提到__proto__.这造成了我对面向对象理解的不全面,当时在做了N多测试后还很蛋疼的写了一篇博文&&,后来接触到&JavaScript设计模式&关于OO的全面论述之后,果断删掉了这篇JY.&& & & 相信这本书的第二版,以及权威指南的第六版肯定会在这些方面进行补充.不过这两本书都是十足的大部头,高级程序设计第二版已经比权威指南去除附录要厚了.&& & & 一本全面且不枯燥的书太难找了,所以我还是喜欢第一版.对我技术上的提升帮助非常之大.忍不住再秀一张图(当时在封闭开发,马云时常来,他不肯在书的第一页签名搞得好像他写的,于是把签名画在了第二页.)&&&& & & 我会把书籍分成两类,一类是全面型,一类是犀利型.前面介绍了一本全面型的书籍,接下来介绍的这本的特点是非常犀利,这类书籍的特点是作者能找对重点(2/8原则掌握的很好),在重点位置深入挖掘.这本书的作者John Resig也是JQuery的作者,他显然是个足够犀利的人儿.JQuery从未承诺解决所有问题,但再一些重点部位的突破,让这个类库如此流行.这本书并没有着重介绍JQuery,还是基于原生的JavaScript和DOM API.&& & & 列一些这本书的重点话题,能够很好的看出作者为什么会开发出JQuery,或者说JQuery为什么是现在的样子:&& & & 1.如何创建可复用的代码?如何调试,测试?(这是基础)&& & & 2.如何判断DOM何时加载完毕?如何遍历,修改DOM?(JQuery以DOM为核心,节点的增删改查,事件响应是重点)& & & 3.如何确定元素的位置,相对于页面/屏幕?如何做平滑的动画?(思考下CSS相关的话题很多,作者为什么选了这两个?)&& & & 4.如何改进表单验证,封装完整的Ajax程序?(涉及数据交互,是另一个重中之重.)&& & & 不算厚的一本书,基本上就是以上的话题+几个实例.当我们看过了一本全面型的书籍,对前端的知识有了深入的了解之后,这本书的作者指出了今后的重点,并告诉大家如何把知识用到解决重点问题上.&&&& & & 推荐大家看看阮一峰老师的博文&&,JavaScript是Brendan Eich大神10天时间设计出的语言,现在成了Web前端领域的唯一语言.&& & & 一方面这门语言博采众家之长,也帮助它维系了长久的生命力:&& & & "1.借鉴C语言的基本语法;&& & & &2.借鉴Java语言的数据类型和内存管理;&& & & &3.借鉴Scheme语言,将函数提升到"第一等公民"(first class)的地位;&& & & &4.借鉴Self语言,使用基于原型(prototype)的继承机制。"&& & & 另一方面"由于设计时间太短,语言的一些细节考虑得不够严谨,导致后来很长一段时间,Javascript写出来的程序混乱不堪。"Brendan Eich对其这10天工作的评价是:"它的优秀之处并非原创,它的原创之处并不优秀。"&& & & Douglas Crockford通过&JavaScript: The Good Parts&这本书对JavaScript进行了一次大审判,老道认为JavaScript语言有很多优秀的地方,也有一些鸡肋和糟粕.老道不反对用这门语言,在规避一些鸡肋和糟粕之后它自然是优秀的.&& & & 老道认为JavaScript优美的特性如下:&& & & 1.函数是头等对象(可以作为其他函数的参数和返回值,支持闭包)&& & & 2.基于原型继承的动态对象&& & & 3.对象字面量和数组字面量(构成JSON的基础)&& & & 老道列出了很多鸡肋和糟粕,并提供了JSLint这个工具,来校验代码是否使用了不好的部分.书中给出的语法图让我有深入学习一下&编译原理&的冲动,也理解了JSLint作为用JS语言分析JS语言的工具成型的理论基础.&& & & 强烈建议大家使用JSLint来检测自己的代码,但是我们不必教条,可以违返其中一些的检测规则,只要我们清楚老道为什么会设置这个规则,有什么风险?若我们不遵守这个规则,是否能回避相应的风险.&& & & 我觉得这本书最重要的意义是告诉我们为什么"它是鸡肋,它是糟粕"这是经过前面的学习和大量实践之后,成熟的开发者应该关注的.比如:&& & & 1.hasOwnProperty,老道说它糟粕的原因是因为这不是一个关键字,而是一个Object.prototype上可以被重写的方法.那么这个告诉我们,并不是不要用hasOwnProperty,而是要注意不要覆盖它.&& & & 2.eval的主要问题是性能,大量的eval(类eval)语句降低了JS引擎的性能.而经过测试少量的eval语句+eval大段的JS文本性能并不差,有必要也可以考虑使用.&&&&&&&&&&&& & & 这是一本介绍JavaScript面向对象编程以及设计模式非常好的书籍.相对于又一本全面型书籍语言精粹,犀利型书籍登场了.&& & & 我对面向对象的看法是:隐藏细节,方便做大.基于良好的抽象和封装,我们可以方便的自顶而下的设计,自底而上的开发.面向对象的优缺点不是本文的重点,这里不讨论,只能说这是一个非常不错的代码设计实现方法论.&& & & JavaScript到底是不是一个面向对象的语言,从本质说一定是的,从表象来说OO的不那么明显.我们必须通过一些额外的代码实现诸如,划分公有/私有,接口,继承,多态等特性.由于JavaScript语言的灵活性,实现的方式非常多.这本书的第一部分对常见的两类实现模式:类式继承和原型继承都有非常好的最佳实践总结.所以我的想法是完全读懂它,然后按照这个来做就好了.如果这里介绍的实践足够强大,我们没有必要发明新的继承实现模式了,事实上YUI一直是这种模式,而新的JavaScript引擎甚至引入了Object.create方法,将一些动作写入标准内置在JS引擎中.&& & & 我们应该将视点放在设计模式上,GoF的设计模式那本书里的例子,对于前端开发来说并不都是很好理解,而这本书的例子全部是前端相关,有助于大家理解设计模式的精妙.还有些同学说,即使我不了解GoF的理论,我也在默默的用这些模式了.确实是这样,但我想我们关注设计模式,不光要学会各种模式是怎样的,更重要的是学习到各种模式适合什么场合,不适合什么场合.了解有什么优点,也要了解有什么缺点,你正在默默使用的模式存在隐患么?系统学习之后会对其更有把握.&& & & 前几天听同事说这本书全面断货,不知道是太火,还是印的太少,希望能尽快看到上架.&&&& & & 进入第四个批次,这里的书籍多数没有中译本出版.现阶段想开发靠谱的底层类库代码,确实需要啃一些外文书了.英文书很多,没有精力大量阅读,通常读一些口碑较好的书籍.&& & & 另外,到了这个批次,我的阅读量也相当的有限,所以肯定有很多好的内容没有提到,期望大家能继续推荐.而且到了这个批次,书籍产出肯定跟不上知识的更新速度,跟踪阅读一些JS大牛们的Blog应该成为习惯.&& & & 这是JQuery作者的第二本书,自然又是犀利型的代表.John Resig已经陆续放出这本书的大部分内容,从2008年开始写,计划2012年5月出版.&& & & 如果说JR的第一本书能够看出为什么有JQuery,那么这本书能看出让JQuery发展下去,作者关注了哪些.我们会看到其实一些很细节的内容,比如强调测试用例的构建/自动化测试的方法,比如如何利用每个function实例的length属性,比如对with,eval的思考和发散等等.&& & & 关于这本书具体如何的好处,我还理不清,拿来开开眼界是非常不错的.记得玉伯大大组织了一波同学在翻译,不知进展如何了.&&&& & & 乍一看这本书标题,以为又是一本讲设计模式的书,那和&JavaScript设计模式&重复了,开始没有仔细关注.今年拔赤推荐了它,才发现者并不仅仅介绍GoF的设计模式而是涵盖前端开发各个方面的先进理论。虽然是09年的书,这两年前端的很多较深刻变化在这边书里都能看到雏形。上一本书犀利,这本更全面。&& & & 作者Stoyan Stefanov是Yahoo的前端技术专家,从这本书中可以看到很多YUI3设计上的本源,比如在对象创建模式中介绍的模块模式/沙箱模式.近来CommonJS Loader的流行在这之上的继续深入发掘.这本书还包括代码测试,打包,部署,加载策略等各个流程中的诸多细节,这些构成了完整的体系在Yahoo在YUI3都有非常好的实践.&& & & 听说我们的同事拔赤和一舟在翻译这个本书,非常期待.&&& & & 这不是一本书,是俄罗斯小伙子写的一系列ECMA-262标准分析文章,ECMA-262-3系列已经很完整.标准像汇编语言一样枯燥,而这系列文章把枯燥的标准转化为一系列深入讨论的话题,配合恰到好处的示例,一定会让大家对JS引擎的认识再上一层.&& & & 网上有一些译文,但是由于类似文章译文比较少,很多英文还未达成一致表述,所以推荐阅读英原文.另外作者很好,遇到的棘手的问题,去咨询他都能很快收到很好的回复.&期待:一本JavaScript语言作者或引擎实现者写的书&& & & 一直以来期待JavaScript能有一本像这样的大作,最近也在读补一些大学时没学好的知识,非常认同书中"自底而上"的学习路线.我想对JavaScript引擎的透彻分析,能够减少大家看着实验结果,猜测着写书的境况.随着NodeJS的火爆,引擎的技术分析文章越来越多,期待很快出现集大成者.&&&&&&&& & & 进入番外篇,推荐的书籍都是有针对性的领域之作,内容往往并不高深,大家根据自己的实际情况进行选择阅读.&& & & 高性能的网页是前端必然的追求,Steve Sounders率先在Yahoo开启了这方面的专题研究,伴随着&高性能网站建设指南&的出版和YSlow工具发布.网站性能优化,特别是前端角度和运维角度的优化方案,进入了人们的视野,同时获得了巨大的效果,甚至形成了名为WPO(Web Performance Optimization)产业.&& & & 第一本书除了介绍了能够立竿见影的规则的同时也开启了民智.大家开始思考如何做优化,如何结合自己的应用实践做优化.而后两本书基本上是遵循优化思路的继续得来的实践总结.关于优化的工具,思路,方法是我特别强调的.感兴趣的同学可以看下这一篇.&其他领域之作&&& & & 接下来介绍这些专题类书籍,并不是特别推荐,往往每个专题都有很多书籍可供选择,随手写一些读书心得吧.&&&&&&&:06年的书,很早就购入.书中介绍了很多RIA高级应用的相关话题,很开眼界.&&&&&&&:一定需要一本介绍JQuery的书,这书还可以,不过现在看来应该比较旧了,JQuery已经更新了很多.我主要从这本书了解了JQuery的工具函数扩展机制和插件机制是如何实现的.JQuery让完全不了解prototype属性的同学也能写出可复用的复杂组件,非常不容易,以后再单独写写对JQuery的一些看法吧.&&&&&&&:一定需要一本介绍CSS的书,工作中一直以来CSS用的不是很深入,不做特殊介绍.&&&&&&&:一定需要一本正则方面的书籍,这本小册子查起来蛮方便.&&&&&&&&和买回来一直没看,对HTML5的新增特性还是有了解的,等能用到时再看再评.&& & & 希望看到NodeJS方面的书籍,尽快引入.&写在最后&& & & 只能针对我了解的书,在网站找一些参考推荐给大家。& & & 当有了领域内一定的实践经验之后,阅读一本相关的书籍并不是难事,也并不会耗费很多时间.&& & & 全面型的书籍可以让大家技能水平Step By Step的稳步提高,让大家站得高也站得稳.&& & & 犀利型的书籍可以让大家了解重点,了解别人是怎么运用那些你也会的知识的.&& & & 专题类的书籍是拓宽眼界,帮助大家完成工作任务的好手.&& & & 对于非英文专业的同学,如果有中译本,不用非得纠结着去看原版,我们要最快学到知识,最快进入思考与实践.&
阅读(...) 评论()去哪儿网前端架构师司徒正美:如何挑选适合的前端框架?
发表于 16:19|
来源去哪网|
作者司徒正美
摘要:前端框架不断推新,众多IT企业都面临着“如何选择框架”,“是否需要再造轮子”的抉择。去哪儿网前端架构师司徒正美分析了各主流行框架优劣点、适用场景,并针对不同规模的公司、项目给出了相应的前端技术选择方案。
最近几年,前端技术迅猛发展,差不多每年都会冒出一款主流的框架。&每次新开业务线或启动新项目时,首先第一件事就是纠结:使用什么框架,重造什么轮子?我很高兴应CSDN的邀请谈我的看法。RequireJS,前端技术发展分水岭在五六年前,移动端还没有兴起,我们没有什么选择,就是jQuery。有人会说,jQuery只是类库,不是框架;但那时前端业务还没有像今天这么繁重,原本是后端干的事,全部挪到前端来,因为光是jQuery就可以包打天下。jQuery不够用,还有成千上万的jQuery的插件呢。于是问题就是这样一一衍生出来了,一个页面太多jQuery插件了,请求数太多了,于是我们得打包。打包需要我们对插件有规划。于是这一需求在社区上逐渐形成了某些规则,其中最出名的是AMD规范,体现上RequireJS这个加载库上。RequireJS是前端技术发展上的一个分水岭。JavaScript在ES6之前一直没有自己的加载机制,RequireJS的出现意味着前端可以向更大规模发展。以后我说的技术选型,一个非常重要的甄选点, 即是否存在加载器机制或符合某个模块规范。选择前端框架应综合考虑框架本身与团队情况回到原来的话题,选择框架要从两面看,一是看该框架的本领,二是看你们团队的能耐。从框架的角度来看,&它的功能丰富不丰富、社区活跃度如何、国内社区活跃度如何(有的在国外流行,但国内只有初创公司或一些大公司的边缘项目在试水)、文档齐全与否、是否及时更新、测试覆盖率如何、上手难易度如何,都是我们考量点。不过能进我们视野内的外国框架,基本是身经百战,在造轮子兴盛的世界闯出来的领头羊。jQuery、Angular、KnockOut、Emberjs、Polymer、React、Backbone、Zepto,我们基本是围绕在这几个上面转了。当然还有更大型的东西,如EXT、&YUI、Dojo、EasyUI、Bootstrap,这是UI库层面的。下面是2012年外国对当时流行12个JavasScript&MVC框架的纯技术评估:显然,我们第一步就是圈定时下最流行的框架与库作为评估对象,然后再根据自家公司的情况进行筛选。贵公司是建站公司,还是有自己产品的公司呢?如果是建站公司,页面不会复杂到哪里去,基本上jQuery+Bootstrap搞定,不要想得太多,就是它们。如果有自己产品,&要维护一大堆客户数据,要与客户打交道,不难想象存在非常复杂的CRM系统,按照中国人的特性,这东西只会越来越复杂,这就要慎重考虑了。这往往是持续十年的维护升级,我们需要看一下某框架是否有你们的产品那么长寿,这框架的升级更新是否频繁平缓。大工程应尽量避开谷歌产品如果你的项目是一个跨度三年以上的大工程,用《人月神话》的术语来说,90%就是个焦油坑。我们需要使用更稳健成熟的技术方案,我们需要重点避开谷歌的产品,它的许多产品都是玩票性质,GWT、Closure、Darty就是前车之鉴。基于许多新技术构建,其中Object.observe()、&Custom&Elements、HTML&Imports、Shadow&DOM、Model-Driven&Views还远远没被标准化,&许多还是独家的,变数太大,因此才出现下图所示的。&Angular不是我黑它,这东西也喜欢断崖式升级,它在1.08时兼容IE6-8,1.2时需要打补丁兼容旧式IE,1.3摒弃了对旧式IE的兼容,直接在源码中删除了所有兼容代码,因此所有补丁方案都无力回天,并且不支持全局Ctrl函数,许多模块需要独立引用,1.4不向下支持动画模块,2.0由at改成ts构建,由于使用Object.observe(),因此不支持IE6-11,Chrome30……后台系统可考虑EXT、EasyUI,avalon等国内优秀框架也值得考虑如果你们的产品是后台系统,那么就有两个选择,使用EXT、EasyUI这些重大的UI库方案,其中EXT具有严重的排它性,它很难与其他前端解决方案并用。什么模块组织、打包、数据可视化,它都已经能全部帮你搞定。它文档齐备漂亮,入门难度中等,但它要求你的团队非常稳定,现在招一个专职EXT的前端是很难的。EasyUI是国内比较大牌的UI框架,虽然闭源,不过想扩展它不是难事。此外,国内的淘宝Kissy,&网易Nej也不错。还有更轻量的方案:MVVM。MVVM最擅长做这些重交互的产品。举例说,为了对应复杂交互的Gird,jQuery社区开发出各种庞大巨物DataGrid、jqGrid、FlexiGrid,还不如MVVM几个循环绑定来得干脆利落,扩展性又好。目前,KnockOut、Emberjs、Angular与我写的avalon就是这一类框架。Angular虽然有点坑,但如果你是从1.3用起,并且不鸟IE,它还是一个不错的选择,其活跃的社区为它带来无限的可能。KnockOut在.Net人群中非常流行,微软出品,前端MVVM框架的鼻祖,不过它需要对后端数据进行过多的加工,因为它本身是不支持对套嵌对象的绑定。Emberjs没有一个好干爹,但有一个好亲爹,作者Yehuda&Katz是jQuery,&Rails、SprouteCore、Merb、Handlebars这些著名框架的核心成员,虎父无犬子,Emberjs现在还是国外的第二大MVVM框架。avalon是比较适合国情的MVVM,有它专门兼容IE6的版本,易上手,性能高,视频教程多,出了问题可以抓得着作者,是它的几大卖点。重SEO产品,可考虑jQuery+Bootstrap+RequireJS组合如果你们的产品是商场这样重演示类的产品,就对SEO有要求,MVVM就不适合了。目前也就Angular与avalon在搞后端渲染机制,但还不上了台面。这时jQuery+Bootstrap+RequireJS就非常好用。RequireJS的作用不单单是提供了一个按需加载机制,它还能让我们组织起更为庞大的代码。如果不用RequireJS,国内另一个选择是SeaJS,它的规范是CMD。此外还有CommonJS规范,但这无法直接运行于前端,需要借助fekit、FIS、Webpack这样的构建工具进行合并了。不管怎么说,你这时选用的框架必须存在AMD、CMD或CommonJS任一种加载规范,这方便你以后的横向扩展。至于插件,目前小插件们都趋向用,它可以让AMD、CMD、CommonJS任一种加载器加载。移动端技术较混乱,需多管齐下如果你们的产品是移动端,基本上是SPA架构了,因为这会减少等待,整页刷新与请求数。目前该领域非常混乱,不同于PC端,要兼容的浏览器多出N倍,并且为了性能,浏览器商乱砍功能或改变一些浏览器特性的行为,往往引发一些奇怪的BUG,目前社区正在整理这些。但目前没有一个框架能够摆平所有问题,都需要多管齐下。我的见解是:RequireJS(按需加载,移动端上可以不打包,善用304缓存,腾讯搞出一个更牛叉的增量更新加载器MT,也可以试试)+Backbone(组织代码与路由管理)+Zepto(轻量DOM操作)&+&fastclick.js(点击穿透与延迟处理)+Hammer.js(各种触屏事件)+iScroll5.js(滚动条处理)+Animate.css(CSS3动画)+Enquire.js(处理响应式布局)。可见移动端每个部件都烂到蕊了,每个部件都需要专门的工具进行修复。移动端是非常注重体验的,每一个小角落都存在着各种动画,但浏览器或自带的WebView都很差劲,于是Native与Hybird的话题才一直这么火。有的人说,既然DOM最吃性能,那么就干脆用Canvas来代替吧(请见:&与&)。Facebook也推出了自己类似的方案React&Native,自己实现了一套GUI,不过编写语言是JavaScript。它是使用自己原来的超高性能轮子React实现的。这或者是一条道路。但优缺点也明显,正如Angular浓浓的Java风,React是在逻辑中插入大段标签语言(JSX)。同时React的排它性也非常强,很难与其它库搭配使用。同时,我们可以看到,出自jQuery名门的jQuery&Mobile并没有入围,那个性能太糟了,连Sencha&Touch也不及。上面说的只是核心库,&还没有搬出UI库呢。号称Mobile&First的UI库不在少数,由于无视IE,可以大胆使用CSS3。目前比较出彩的有Foundation、Semantic,Refill、Ratchet。如果只是想运行在平板上,性能问题就不会那么拮据了,我们还可以试试inoic、Sencha&Touch,&Kendo&UI&Mobile……没有最好,选择最适合自己的基本上,针对每个平台,我都列出一些主流框架,但不意味着你们都能驾驭得住。小马过马,老牛没过膝,松鼠淹个半死,就是这么回事。创业公司喜欢新框架,这与他们拿得起高薪招一两个前端牛人所致,基本上所有页面就是他们干的,因此用Angular或Ember都没区别。小公司则小心,人员流失大,jQuery+RequireJS是万金油。大公司则基本上有自己的技术沉淀,换言之,应该有自己的前端框架,除非那东西很陈旧,不建议再造轮子。对大公司的建议是搞自己的技术委员会,根据自己的人员配置来挑选的框架。有句话说得好,不求最好,但求最合适。有些框架就属于牛逼人手里牛逼闪闪,二逼人手里一团乱麻。对于某些成长特别快的中等公司来说,这点最需防范,牛人是有的,但作战的主体70%都是刚培训出来的实习生,难上手,中文文档不全的框架就必须过滤掉。我也不排除造轮子的可能性,毕竟有些公司就是人才济济,能推出一些靠谱的开源产品来造福社区。但无论我们选择什么框架或决定自己动手造轮子,都勿忘初心,技术必须让我们工作生活更为轻松愉快——我们只选择我们能驾驭住的框架,我们不能保证它在一年后是否会过时落后,但至少不会变成绊脚石。套用亚当·斯密的话(税收是一种必要的恶)来说,框架是一种必要的恶,它是强约束的,因此必须慎重选择。作者简介:钟钦成,网名司徒正美,是中国最早研究加载器、选择器与MVVM的人之一,著有《Javacript框架设计》一书。自栩为穿梭于二次元与二进制间的魔法师,致力发掘各种黑魔法,提升一般前端工程师的生产效率。欢迎加入CSDN前端交流群:,进行前端技术交流。&
推荐阅读相关主题:
CSDN官方微信
扫描二维码,向CSDN吐槽
微信号:CSDNnews
相关热门文章

我要回帖

更多关于 程序员必读书籍 的文章

 

随机推荐