丨白及
学习是一个持续不断的过程,在互联网技术里畅游的程序员们,对学习的渴望更是难以穷尽。为此,小拍在周五开设“小拍荐书” 的栏目,为大家推荐技术相关书籍,方便大家在周末适时充电~
流媒体是指采用流式传输的方式在Internet播放的媒体格式。商家用一个视频传送服务器把节目当成数据包发出,传送到网络上。用户通过解压设备对这些数据进行解压后,节目就会像发送前那样显示出来。(来自:百度百科)
流媒体的技术革新推动了音视频行业技术日新月异的发展,更是直播行业兴起,火爆的技术根基。本期荐书推荐了5本与HTML5直播技术相关的技术书籍。
12月1日晚上,深度参与“又拍直播云”开发的刘博(又拍云多媒体开发工程师)就如何利用WebSocket+MSE实现HTML5直播,在微信群里进行了分享(点击阅读)。
小拍请刘博推荐了2本与HTML5直播技术相关的书籍:
推荐星级:4星
推荐人:刘博
推荐理由
本书内容比较偏向前端,内容不是非常全面,适合作为WebRTC领域的入门书来看。
WebRTC是实现HTML5直播技术的最新协议,也是目前实现用户体验较好的协议。《Learning WebRTC 中文版》使用形象的案例介绍,逐步深入地阐述了WebRTC 的幕后工作原理。本书包含了创建一个WebRTC应用所必需的知识,包括获取用户设备信息、创建WebRTC应用的客户端和服务器、连接用户并发送数据、文件共享、数据信息安全和性能优化。《Learning WebRTC 中文版》适合有一定HTML和JavaScript 经验,希望了解并学习WebRTC 的开发者参考阅读。
读者短评:
dhcn:内容少,体量大,可以学到一些东西。
推荐星级:5星
推荐人:刘博
推荐理由
国内第一本WebRTC方面的中文书籍,内容包含了WebRTC的方方面面。本书的作者都是WebRTC和SIP等相关标准的指定者,所以,可以当做权威参考来看。
如果说《Learning WebRTC中文版》侧重于案例、入门,以案例讲解原理,且不够全面,那么《WebRTC权威指南》则对标准进行了全面、精确介绍 ,包含大量的演示应用、示例代码、各类数据和图表。本书是互联网实时通信开发者和技术决策者的权威参考指南。作者Daniel C. Burnett博士是WebRTC标准的主要作者,在书中对标准的方方面面做了精确到位的介绍。Alan Johnston 博士是今日通信业核心标准SIP的主要作者,多年的行业实践和全局视野让他能够深入浅出地给出WebRTC相关技术问题和发展方向的真知灼见。
另有Jsone,大蕉推荐了此书:
Jsone:《WebRTC权威指南》是WebRTC和标准主要作者联袂撰写,互联网实时通信技术的指南,可以全方位深入解读标准的方方面面。
大蕉:主题是流媒体,推荐这本书比较切合。
读者短评:
我有绣春刀:前面关于网络知识点的讲解很棒,后面的浏览器API与协议这部分也很不错!
Arbow:这其实是一本关于移动网络下性能优化的书,相见恨晚。
下面是小拍和“拍友”们推荐的书籍啦~
推荐星级:5星
推荐人:又小拍
推荐理由
流媒体底层协议用了HTTP协议,本书对HTTP协议的介绍比较全面。
HLS httpflv使用了HTTP协议 ,深入了解HTTP协议,不论是对HTML5直播技术的开发,还是HTTPS的升级而言,都必不可少。本书中,作者梳理了HTTP中一些互相关联且常被误解的规则,并编写了一系列基于各种主题的章节,对HTTP各方面的特性进行了介绍。而且,为了节省大家寻找参考文献的时间,作者还对很多HTTP应用程序正常工作所必须的、重要的非HTTP技术进行了介绍。
读者短评:
Tony Bai:要全面了解HTTP,非此书不可。
推荐星级:5星
推荐人:Phunsukh Wangdu
推荐理由
可汗学院计算机科学学院的院长,也是jQuery JavaScript库的创造者John Resig编写的一本深入剖析JavaScript语言的书,正在使用jQuery,想要更深入的了解jQuery,都值得读一读这本书。
JavaScript脚本是现代浏览器、网页的必备元素,在Web端实现流媒体必然需要调用JavaScript脚本,学好JavaScript语言是研究HTML5必不可少的基础。本书对JavaScript语言的重要部分(函数、闭包和原型)进行深入、全面的介绍,全书从高级Web应用程序开发者所面临的挑战谈起,将严谨的理论讲解和实用的代码示例相结合,从准入训练、见习训练、忍者训练和火影训练四个层次讲述了逐步成为JavaScript高手的全过程。
读者短评:
子龙:JavaScript开发者都应该读的、接近编程思想层面的书。jQuery创始人,实力真是强大!
推荐星级:4星
推荐人:张兴伟
推荐理由
Vue.js是一个用来构建网页界面的JavaScript库,同其它的一些工具结合在一起,它也可以成为一个新“框架”。Vue.js是顶级的JavaScript框架之一,它在许多场景中可以被用来替换Angular和React。
开发基于Web端的流媒体应用,Vue.js是一个不错的选择,Vue.js是2016年非常火的JavaScript MVVM库,目前已推出Vue.js 2.0;相比其他JavaScript库,Vue.js更加像一套可以灵活选择的工具组合。《Vue.js权威指南》有多位作者来自于滴滴出行前端团队,致力于普及国内Vue.js 技术体系,让更多喜欢前端的人员了解和学习Vue.js,由浅入深地讲解了Vue.js 基本语法及源码解析,本书主要内容包括数据绑定、指令、表单控件绑定、过滤器、组件、表单验证、服务通信、路由和视图、vue-cli、测试开发和调试、源码解析及主流打包构建工具等。
Tips:本书第一次印刷有部分别字,建议购买第二次印刷,已购买第一次印刷的读者可以享受免费更换第二次印刷版的福利。
本期书籍推荐完毕,感谢刘博、张兴伟、Phunsukh Wangdu、Jsone、大蕉在技术领域开放的知识分享精神,推荐了上述好书。5位小伙伴可在本期书单中选择1本自己心仪的书籍,小拍将会把书籍送给您或您指定的朋友,作为又拍云的小小心意。
同时也感谢其他推荐者,如在后期书籍推荐中,您推荐的书籍被选入书单,我们将第一时间联系您,馈赠您。
小拍的推荐只是抛砖引玉,如果大家有觉得很赞的技术类书籍,戳戳戳到文末评论区以“书名+推荐理由”的形式留言,一旦推荐书籍上榜书单,推荐者即可在该期书单中挑选一本书籍,小拍即刻奉送该书作为感谢。您可以选择把书送给自己,也可以送给您指定的一位朋友。
最后放一些“又拍云线上分享群”的荐书盛况,大家随意感受一下技术圈热爱读书的好少年们~
▼
何学好HTML5呢?了解下以下书籍、网站、直播课程一定让你受益匪浅。
w3school的xml在线教程
推荐指数:★★★★★
适合人群:完全没接触过XML的人群;已经知道xml大致语法、结构、元素等概念的人群,可以跳过。
说明:在Java web开发中,很多配置文件都是XML格式的,因此知道一些XML的概念是绝对必须的。如果你已经有了一些了解,可以不看。
《HTTP图解》
推荐指数:★★★★★
适合人群:所有人群
说明:对于web编程,不可避免地会涉及到HTTP协议。这本书有很多图,对于HTTP的一些概念介绍的都比较形象,书也不厚,适合入门。
HTML5+CSS3从入门到精通 李东博 著
推荐指数:★★★★☆
适合人群:HTML5新手
说明:本书通过基础知识+中小实例+综合案例的方式,讲述了用HTML5+ CSS3设计构建网站的必备知识,相对于专业指南、高级程序设计、开发指南同类图书,本书是一本适合快速入手的自学教程。
HTML5 App商业开发实战教程——基于WeX5可视化开发平台
推荐指数:★★★★★
说明:目前唯一一本真正的HTML5 App开发教材,目前已有五十多所高校投入教学使用。它的特点是由浅入深、由易到难,将开发技巧、和开发工具结合在一起阐述,同时选取了多个商业项目APP的实战案例进行要点讲解,通俗易懂。
最适合入门的在线直播课程 ( 腾讯课堂上)
飞雀首席讲师带你进入HTML5的奇幻世界
推荐指数:★★★★★
适合人群:所有人群
说明:最适合零基础小白了解HTML5的入门课程,由浅入深,所讲案例生动形象,由多年HTML5讲课经验的老师讲解,更有针对性。
多人问我怎么学前端?我的回答是:读书吧!相对于在网上学习,在项目中学习和跟着有经验的同事学习,书中有着相对完整的知识体系,每读一本好书都会带来一次全面的提高。而如果深一脚浅一脚的学习,写出代码的质量会参差不齐。初学者的首要任务是成为靠谱的熟练开发者,能够稳定的输出有一定质量的代码,这样才能让人放心的把任务交给你。从这个角度来看,跟着w3school类成体系的网络教程学习也是不错的选择,只不过我没有亲自实践过。
当然,对于小白或者根本看不懂书的开发者来说,我认为可以报个培训班,毕竟有着完善的体系,如果老师很负责的话,但是我认为程序员最重要的是学习能力和努力程度
在07年之前,我是在做IEonly的企业级B/S应用,虽然当时项目的JScript就已经非常复杂,但当时团队里有很多经验丰富的同事,多是跟他们请教 ,或者再MSDN和网上找答案。07年进入阿里之后,开始直面兼容性问题 ,同时开始单打独斗 ,这个阶段开始接触相关的前端书籍 ,最先购买的是《JavaScript高级程序设计》和《JavaScript DOM 编程艺术》。可以说比较幸运 ,挑中了这两本很靠谱的书(其实当时市面上书籍并不多 ,感谢选择出版这些书和翻译这些书的同学们) ,近来这两本书都出了第二版其生命力可见一斑。
这几年来,自认读的前端方面的书不算少,校招同学们问到有什么书推荐 ,我还是会列几个批次的书籍出来给大家,在这里公布一下,没法说这是最优学习路线 ,但真看进去了获得一个IT民工从业资格是没啥问题的。咱也先秀下书架吧(喜欢纸质书,可以翻旧,可以涂涂写写,可以折上几个页角,可以歪在一边用任何得劲儿的姿势看):
说说我对于书的选择,在从高级程序设计以及DOM编程艺术获得了较好的用户体验之后,基本上延续了选择译著的路子,属顺势而为倒没有什么特殊的因素在里头。而我一般不会推荐英文原版书,中文更具亲和力,JavaScript并不是一门多么高深的语言,我相信译者是可以在深刻理解原文的基础上做翻译的。我也会读一些外文书,而往往当我知道一本不错的书籍有了出版计划,就会停止精读,等译作出版( 比如不久前的《高性能JavaScript》)。不过确实有时会遇到术语翻译不一致,甚至翻译的不通顺的情况,好在多书网上可以找到英文电子版,实在不解之处对照一下也就可以了。
下面都是我精读过且觉得不错的书,先分分类再逐本分享下我的读书心得:
第一批次:入门级,也适合想掌握一些前端技能的非前端工程师。
第二批次:成为一名合格的前端工程师
第三批次:更优秀的代码 ,更优良的设计
第四批次:从语言细节到复杂工程实践 ,想开发靠谱的各类底层代码 ,应该看看
应该重视跟踪阅读一些大牛们的Blog了。
一直在等待:一本JavaScript语言作者或引擎实现者写的书。
专业篇:各类专题书籍,读好第二批次书籍之后,有精力就接触下。
《JavaScript DOM 编程艺术》
话说这本书的中文标题有一些标题党的,当初如果知道这仅是一本入门书籍,我是不会买来的。拿到后一天就看完了,对我来说没有太多技能上的实质帮助。不过这个书语言很流畅,重要的是对知识深浅度把握的很好,html/js/css/dom各个方面都把握在一个合适的度,这很符合我对书籍期望,一步步走,每一步都踏踏实实。
这本书通过几个实例,循序渐进的介绍了前端开发的方方面面,让大家能够了解前端的技术体系概况,又能具备了一些简单的动手能力。如果大家对我之前写过的浏览器端技术体系概览 — 前端开发的七种武器有些感觉,那读读这本书正好能上手实践一把。
去年,淘宝前端懒懒交流会的豆瓣小站上做了一个调查,如果非要您推荐一本适合新人学习的js方面的书,您的推荐是什么?虽然投票的人不多,但这本书却是遥遥领先。
《JavaScript高级程序设计》
这本书的第一版很全面且不枯燥的书籍,年纪轻轻的NCZ有这样的大作难能可贵。读懂这本书,前端技能又可以上一个台阶,基本上可以成为专业的前端工程师了。
对于当时的我来讲,这本书及时的补充了浏览器兼容性方面的知识 ,特别是事件相关的知识,这个浏览器间差别最大。有些内容讲的非常简单明了,比如call和apply的用法,之前总是理解不好,NCZ几句话+一个例子就说明白了。
然而作为全面型的书籍,第一版也是有一些问题的:
这带来了我之前说的深一脚浅一脚的困扰,这些知识基本上是通过《JavaScript权威指南》阅读中补充的,当然当时版本的权威指南也有同样的问题,比如它没解释instanceof。也没提到__proto__。这造成了我对面向对象理解的不全面,当时在做了N多测试后,还很蛋疼的写了一篇博文,面论述之后,果断删掉了这篇JY。
相信这本书的第二版,以及权威指南的第六版肯定会在这些方面进行补充。不过这两本书都是十足的大部头,高级程序设计第二版已经比权威指南去除附录要厚了。
一本全面且不枯燥的书太难找了,所以我还是喜欢第一版。对我技术上的提升帮助非常之大。忍不住再秀一张图( 当时在封闭开发Alimama.com,马云时常来,他不肯在书的第一页签名搞得好像他写的,于是把签名画在了第二页。)
《精通JavaScript》
我会把书籍分成两类,一类是全面型,一类是犀利型。前面介绍了一本全面型的书籍,接下来介绍的这本的特点是非常犀利,这类书籍的特点是作者能找对重点(2/8原则掌握的很好),在重点位置深入挖掘。这本书的作者John Resig也是jQuery的作者,他显然是个足够犀利的人儿。
jQuery从未承诺解决所有问题,但再一些重点部位的突破,让这个类库如此流行。这本书并没有着重介绍jQuery,还是基于原生的JavaScript和DOM API。
列一些这本书的重点话题 ,能够很好的看出作者为什么会开发出jQuery,或者说,jQuery为什么是现在的样子:
不算厚的一本书,基本上就是以上的话题+几个实例。当我们看过了一本全面型的书籍,对前端的知识有了深入的了解之后,这本书的作者指出了今后的重点,并告诉大家如何把知识用到解决重点问题上。
《JavaScript语言精粹》
推荐大家看看阮一峰老师的博文《JavaScript诞生记》,JavaScript是Brendan Eich大神10天时间设计出的语言,现在成了Web前端领域的唯一语言。
一方面,这门语言博采众家之长,也帮助它维系了长久的生命力:
另一方面,由于设计时间太短,语言的一些细节考虑得不够严谨,导致后来很长一段时间,Javascript写出来的程序混乱不堪。Brendan Eich对其这10天工作的评价是:“它的优秀之处并非原创,它的原创之处并不优秀。”
Douglas Crockford通过《JavaScript: The Good Parts》这本书对JavaScript进行了一次大审判,老道认为JavaScript语言有很多优秀的地方 ,也有一些鸡肋和糟粕。老道不反对用这门语言,在规避一些鸡肋和糟粕之后它自然是优秀的。老道认为JavaScript优美的特性如下:
老道列出了很多鸡肋和糟粕,并提供了JSLint这个工具 ,来校验代码是否使用了不好的部分。书中给出的语法图,让我有深入学习一下的冲动 ,也理解了JSLint作为用JS语言分析JS语言的工具成型的理论基础。
强烈建议大家使用JSLint来检测自己的代码 ,但是我们不必教条,可以违返其中一些的检测规则,只要我们清楚老道为什么会设置这个规则,有什么风险?若我们不遵守这个规则,是否能回避相应的风险。
我觉得这本书最重要的意义是告诉我们为什么“它是鸡肋,它是糟粕”。这是经过前面的学习和大量实践之后 ,成熟的开发者应该关注的。比如:
《JavaScript设计模式》
这是一本介绍JavaScript面向对象编程以及设计模式非常好的书籍。相对于又一本全面型书籍语言精粹,犀利型书籍登场了。我对面向对象的看法是:隐藏细节,方便做大。基于良好的抽象和封装,我们可以方便的自顶而下的设计,自底而上的开发。面向对象的优缺点不是本文的重点,这里不讨论 ,只能说这是一个非常不错的代码设计实现方法论。
JavaScript到底是不是一个面向对象的语言,从本质说一定是的,从表象来说OO的不那么明显。我们必须通过一些额外的代码实现诸如,划分公有/私有,接口,继承,多态等特性。
由于JavaScript语言的灵活性,实现的方式非常多。这本书的第一部分对常见的两类实现模式:类式继承和原型继承,都有非常好的最佳实践总结。所以我的想法是完全读懂它,然后按照这个来做就好了。如果这里介绍的实践足够强大,我们没有必要发明新的继承实现模式了,事实上YUI一直是这种模式,而新的JavaScript引擎甚至引入了Object。create方法,将一些动作写入标准内置在JS引擎中。
我们应该将视点放在设计模式上,GoF的设计模式那本书里的例子,对于前端开发来说并不都是很好理解,而这本书的例子全部是前端相关,有助于大家理解设计模式的精妙。还有些同学说,即使我不了解GoF的理论,我也在默默的用这些模式了。确实是这样,但我想我们关注设计模式,不光要学会各种模式是怎样的 ,更重要的是学习到各种模式适合什么场合,不适合什么场合。了解有什么优点,也要了解有什么缺点,你正在默默使用的模式存在隐患么?系统学习之后会对其更有把握。
前几天听同事说这本书全面断货,不知道是太火,还是印的太少,希望能尽快看到上架。
Secrets of the JavaScript Ninja
进入第四个批次,这里的书籍多数没有中译本出版。现阶段想开发靠谱的底层类库代码,确实需要啃一些外文书了。英文书很多,没有精力大量阅读,通常读一些口碑较好的书籍。
另外,到了这个批次,我的阅读量也相当的有限,所以肯定有很多好的内容没有提到,期望大家能继续推荐。而且到了这个批次,书籍产出肯定跟不上知识的更新速度,跟踪阅读一些JS大牛们的Blog应该成为习惯。这是jQuery作者的第二本书,自然优势犀利型的代表。John Resig已经陆续放出这本书的大部分内容,从2008年开始写,计划2012年5月出版。
如果说JR的第一本书能够看出为什么有jQuery,那么这本书能看出让jQuery发展下去,作者关注了哪些。我们会看到其实一些很细节的内容,比如强调测试用例的构建/自动化测试的方法,比如如何利用每个function实例的length属性,比如对with,eval的思考和发散等等。
关于这本书具体如何的好处,我还理不清,拿来开开眼界是非常不错的。记得玉伯大大组织了一波同学在翻译,不知进展如何了。
《JavaScript Patterns》
乍一看这本书标题 ,以为又是一本讲设计模式的书 ,那和《JavaScript设计模式》重复了,开始没有仔细关注。今年拔赤推荐了它,才发现者并不仅仅介绍GoF的设计模式,而是涵盖前端开发各个方面的先进理论。虽然是09年的书,这两年前端的很多较深刻变化在这边书里都能看到雏形。上一本书犀利,这本更全面。
作者Stoyan Stefanov是Yahoo的前端技术专家,从这本书中可以看到很多YUI3设计上的本源,比如在对象创建模式中介绍的模块模式/沙箱模式。近来CommonJS Loader的流行在这之上的继续深入发掘。这本书还包括代码测试,打包,部署,加载策略等各个流程中的诸多细节 ,这些构成了完整的体系在Yahoo在YUI3都有非常好的实践。
听说我们的同事拔赤和一舟在翻译这个本书 ,非常期待。
ECMA-262
这不是一本书,是俄罗斯小伙子写的一系列ECMA-262标准分析文章,ECMA-262-3系列已经很完整。标准像汇编语言一样枯燥,而这系列文章把枯燥的标准转化为一系列深入讨论的话题 ,配合恰到好处的示例,一定会让大家对JS引擎的认识再上一层。
网上有一些译文,但是由于类似文章译文比较少,很多英文还未达成一致表述,所以推荐阅读英原文。另外作者很好,遇到的棘手的问题,去咨询他都能很快收到很好的回复。
期待:一本JavaScript语言作者或引擎实现者写的书
一直以来期待JavaScript能有一本像《C程序设计语言》这样的大作,最近也在读计算机系统概论补一些大学时没学好的知识,非常认同书中”自底而上”的学习路线。我想对JavaScript引擎的透彻分析,能够减少大家看着实验结果,猜测着写书的境况。随着NodeJS的火爆,引擎的技术分析文章越来越多,期待很快出现集大成者。
《高性能网站建设指南》
《高性能网站建设进阶指南》
《高性能JavaScript》
进入番外篇,推荐的书籍都是有针对性的领域之作,内容往往并不高深,大家根据自己的实际情况,进行选择阅读。
高性能的网页是前端必然的追求,Steve Sounders率先在Yahoo开启了这方面的专题研究,伴随着《高性能网站建设指南》的出版和YSlow工具发布。网站性能优化,特别是前端角度和运维角度的优化方案,进入了人们的视野,同时获得了巨大的效果,甚至形成了名为WPO(Web Performance Optimization)产业。
第一本书除了介绍了能够立竿见影的规则,同时也开启了民智。大家开始思考如何做优化,如何结合自己的应用实践做优化。而后两本书基本上是遵循优化思路的继续得来的实践总结。关于优化的工具、思路、方法是我特别强调的。感兴趣的同学可以看下在Yslow 34 Rules之后 — 网站性能优化思路和进展 这一篇。
其他领域之作
接下来介绍这些专题类书籍,并不是特别推荐,往往每个专题都有很多书籍可供选择,随手写一些读书心得吧。
《HTML5揭秘》和《HTML5高级程序设计》买回来一直没看,对HTML5的新增特性还是有了解的,等能用到时再看再评。
希望看到NodeJS方面的书籍 ,尽快引入。
写在最后
*请认真填写需求信息,我们会在24小时内与您取得联系。