说三道四技术文摘-感悟人生的经典句子
说三道四 > 文档快照

《近匠》第04期:移动开发技术访谈,多看科技CTO王毅——阅读未来

HTML文档下载 WORD文档下载 PDF文档下载
12000本图书、2200万用户、超过200家合作出版社,这是多看科技创建至今的积累。但数字背后,他们也在数字化阅读的路上解决了很多问题,代码管理的迁移、盗版的预防、阅读体验的革新、垂直社交与电子杂志平台的试水。

CSDN移动频道推出移动开发系列访谈《近匠》。新一年起,我们将走近更多移动开发者与移动开发服务商,从深植与软件及硬件领域的“工匠”们的口述中,窥探移动互联网趋势与走向。本期CSDN移动对话移动阅读平台——多看科技。

自2010年多看阅读成立以来,已经经历了3个年头。它从最初人们口中的“Kindle必刷的系统”,逐渐蜕变为现在跨Kindle、iOS、Android多系统的数字阅读平台。目前,多看的图书已达12000本,但每本从获得版权到最终上架并非全都一帆风顺。做数字化出版不得不面对哪些问题?自从2012年小米并购多看后,多看与小米的技术团队又有怎样的协作?多看作为中小团队的技术经验有哪些?在多看眼中,实体书数字化在国内正遭遇哪些难题?不妨让多看科技副总裁兼CTO王毅与我们聊一聊。


多看科技副总裁王毅

CSDN:请您介绍一下个人的经历,以及多看阅读团队。

王毅:我的工作经历比较简单。我从北大毕业后,就一直在北大方正,当时王选老师还在任。我在方正主要负责的是排版软件的相关工作,然后从2000年起转向了数字出版领域。自从那时起,就在数字出版领域,工作了很多年,主要是做与数字相关的基础的技术研究工作,在方正最开始从方正电子,到最后方正技术研究院从事数字出版相关的工作。大概在2011年8月,我加入了多看,当时多看成立的时间也比较短,算起来,到现在为止,在多看工作也有两年多的时间了。

整个多看阅读团队大概有160人左右,分为内容、产品研发和运营等几个团队。现在多看阅读的技术团队大约有30多人,很多技术骨干都是以前与我一同工作至今的,其中也不少曾在方正研究院共事过的同事。

CSDN:多看阅读的技术团队都采用哪些技术服务?

王毅:技术主要是自主研发,实际上多看整个平台,不管是云端,还是客户端都是自己搭建的,这是一套比较完整的包含数字出版发行、销售等环节的一个平台。我们的客户端也已经覆盖了从Kindle到iOS、Android,再到Web等几个主流的平台。

实际上,多看在2010年创立之初是从开发Kindle的中文系统出发的。因为当时Kindle没有中文系统,而且Kindle也还未入华,在国内能买到的都是水货,我们基于它做了一套完整的中文系统。这也使得Kindle可为大多数中国人所使用,方便更多用户操作和阅读。当然,Kindle入华则是后来的事情了。

CSDN:从多看阅读发布第一个版本至今,技术团队做过哪些改进,遇到并解决了哪些问题?

王毅:我们发布过很多版本,以Kindle版为例,从发布第一个版本开始,我们每周都更新一个新版本,一直坚持至今。同时,其他平台版本的更新频率也非常高。在2010年到2011年的起步阶段,我们主要是以开发Kindle的中文系统为主。

随后,在2011年下半年,我们开始尝试向Android和iOS平台拓展。当时,我们发布至两个平台的产品形式有所不同,在Android上我们开发了一个阅读器,而在iOS平台,我们所遵循的是“精品阅读”的理念,所以最开始从单行本入手。在此期间,我们也在多个平台发布了客户端。

从2012年起,我们开始准备发布“多看书城”,这是一个正版电子书的销售平台。它在2012年的5月31日率先在iOS版本上正式发布,随后Kindle、Android和Web版客户端也逐一接入了这个平台,逐渐形成现在大家所看到一个全平台的正版电子书发布和销售渠道。

还记得,在最开始时我们的电子图书加工、制作进度很慢,资源也比较匮乏,所以上线时书城中只有100本书,其中免费书籍和付费书籍各占50%。但是现在,书城已经拥有超过12000本正版图书,而且每一本都是经过我们精心加工制作的。除此之外,与去年发布第一版本时相较,各个平台的终端数和用户数也得到了很大的提升。

CSDN:就像每一家实体书店都有自己的特色一样,作为一个移动阅读应用,多看的特色是什么?

王毅:我们认为多看最大的特色其实就是极致的阅读体验。所有用户在我们的平台上都能够享受到最好的数字版图书,以及最好的数据阅读服务,这就是我们最大的特色。我们应该是在国内唯一一个跨越了从Kindle到Web、iOS,再到Android,几乎所有的移动系统的电子书平台。我们在每本书上付出了很大成本去进行制作。我们的客户端具备跨平台特性,阅读体验保持着一致性,比如阅读进度、阅读笔记,甚至将来书架里所有的内容,都会云同步。

我们在最近推出了一些社交化服务,比如说书友圈,它能够有效地拉近读者和读者之间的距离,甚至作者与读者之间也能进行互动。我们平台上有些书的作者会直接在书友圈中和读者去互动交流,这在实体书店中是很难做到的,但借助移动互联网,我们可以轻松拉近他们之间的距离,方便他们相互交流,这是完全不同的体验。

CSDN:电子图书与纸质图书的制作流程是不同的,多看阅读在这方面是怎么做的?

王毅:我曾在知乎写过一篇贴子,简单介绍了多看对每本电子书的制作流程。我们的每一本书都和其他平台完全不同,多看书城中的书籍很多都是图文混排的,我们深谙此道。而且我们对排版的字体,以及许多排版细节要求都很高。我们制作每本书之前,首先需要出版社提供数据源,然后我们再根据数据源进行加工制作。从排版设计的角度讲,我们的理念是“千书千面”,希望每一本书都有它独特的风格和阅读体验,包括封面设计、版面设计,甚至文案编辑都会有所不同,有些书会加入视频(如,柴静的《看见》试读版),有些会加入交互。我们不完全是追求与实体书的一致,我们希望电子书的体验完全超越实体书。

在多看中,不同类型的书,会被赋予完全不一样的阅读体验。以计算机类图书为例,这也是多看最具特色的图书之一。与其他平台不同,书中所有代码不是用图片形式显示,而是以真正的代码块形式显示的,我们为此专门扩展了交互代码块的定义,所有计算机类的图书都不能直接使用代码图片,而必须全部是等宽字体排的代码文本,代码是可以交互的。


技术类图书

手机屏幕对文字的缩进、排版存在很大的限制,但代码往往比较长,如果它不符合手机屏幕对缩进、排版的要求,代码段看起来会非常乱,不利于阅读。但通过一些交互的操作,用户可以阅读到原版的格式规范的代码。

完成排版后,我们的开发工程师会利用业余时间对所有的代码进行审校,这也让图书中的代码比实际纸质图书更准确、更规范。不过,加工成本很高,而且周期都很长。

CSDN:制作一本书的周期是多久?

王毅:现在计算机类图书的制作周期一般在两周以上,因为它的流程很长,其中包括审核、校对、制作等,而且计算机类图书的加工成本是最高的。

CSDN:就像之前所提到的,一些图书会加入视频,我们发现也有一些图书会加入轮播图形式的插图(如,《转一转希腊》)。

王毅:这是专门使用了我们的“画廊”技术。在很多摄影类图书中,我们大量地使用“画廊”,因为摄影类的图书,经常会拿不同曝光、不同光圈下的图像进行对比,但你会发现其实图片大小是一样的,所以采用“画廊”的交互形式,能让用户滑动浏览图片,非常便于对比在相同环境下使用不同参数的照片,它阅读体验比纸质书籍会更好。

CSDN:在电子书制作方面,多看有哪些独特之处呢?

王毅:交互式代码是多看独有的,其他平台都不具备这样的特性。当然还有很多细节也非常与众不同,比如说多看的图文混排、多字体排版、独特的样式和字体,这在别的应用中是没有的。

另一个独特之处就是多看的纠错和更新系统。每本书就像一个应用一样,它会有自己的版本号,会根据用户反馈进行定期更新。如果读者在读书时发现了错别字,他可以点击选中它,并发送纠错报告。多看的后台有一个数据整理系统,每天定时收集这些用户的反馈报告,系统会自动生成相应的错误报告,然后发送到我们的工作流系统里。我们的编辑团队会根据这些反馈做出相应处理,然后更新图书版本。这时用户就会在客户端就会看到一个温馨提示,告诉用户图书更新了,用户甚至可以查看更新记录,在图书的详细信息页里面也可以浏览它的更新历史。用户只需点击下载更新,就可以继续阅读了。

我认为这种更新机制完全颠覆了传统纸质图书的出版流程,因为实体书的出版无法做到快速更新,再版最短也需要6个月。但是我们基本上在一个月之内,就可以把用户提交的Bug全部修改完,然后更新上线。用户也能很快的得到反馈效果,他看到的电子书的内容精准程度,通常比实体书更高。同时,我们与出版社保持沟通,获取刊物的最新信息,这使电子书臻于完美。频繁的更新使得数据越来越准确,电子书的质量会变得越来越高。

CSDN:在电子书中加入视频、图片等多媒体元素,无疑会让文件体积增大。你们会如何处理?

王毅:我们会做一些处理,会对其体积进行控制,因为数据量太大也会影响用户的下载体验。但是文件体积变大是不可避免的,尤其对图文混排的书,多媒体图书体积相对较大。不过现在的网络带宽在不断提升,下载速度也在不断的加快,我们认为这已经不再是什么太大的问题了。

CSDNPDF智能重排和切边功能是如何实现的?

王毅:这个功能也是一个特色,因为多看阅读除了是多看书城的终端之外,在各个平台也是很好的一个阅读工具,它支持主流格式,比如TXT、ePub、PDF等。同时,每一种格式在多看中都会有自己的特点,比如ePub,我们很好地支持了ePub标准和它的CSS解析。在很多的阅读器中,ePub仅被简单当作了一种的文本格式,这一种误解,其实不利于ePub标准的推广。实际上,ePub标准主要的核心优势是采用了HTML5和CSS技术,可以做出非常精美的电子书,包括多看书城上的很多书都是ePub格式的,所以我们在ePub的兼容性方面应该比绝大多数的应用更完美。

我们有很多用户,甚至会自己制作ePub图书放到多看里面阅读。前一段时间,我们基于ePub做了一些扩展的开放标准,开放了一些多看的扩展规范,比如说我们的交互式的文内注,这个扩展规范已经开放给了用户。我们有一些用户专门针对我们的扩展规范,做了一些电子书。这些开放的规范都可以在我们论坛找到。

关于PDF格式,我们对PDF投入较大的就是重排功能,现在不论是文字版还是扫描版的PDF都可以实现重排。PDF是作为一个版式的文档,它其实在小屏幕上的阅读体验并不好,所以为了能让它适应小屏幕的阅读,就需要借助重排的功能,目前这方面我们也在努力,包括切边,包括重排扫描版的处理。

然而PDF重排是个很复杂的过程,因为PDF主要是面向印刷,很多PDF本身丢失了文档的结构信息。它不像重排一个TXT或者Word文档,这些文件都是有段落结构的,而PDF则不同,它是一种基于矢量的文件格式,最终印刷效果是否高保真,是否与原始版面完全一致才是它的重点,但它的文档却缺失了逻辑结构。所以PDF重排过程会涉及到一些对版面理解的算法。你可以将PDF理解为一张图像,你用算法去理解这张图像,其中哪些是段落,哪些是标题,哪些是图,以及哪里是段落的起始和结束的位置,这些信息都需要以算法来进行处理。

CSDN:在多看在线书店中搜索书籍时,输入法国,搜索结果中不仅仅有书名包含法国一词的书籍,还有法国作家的著作,以及中国作家写的相关图书。多看的搜索基于什么?

王毅:现在我们并没有在搜索方面投入很多人力,但是我们做了一些管理性的工作。多看不仅仅针对书名、作者进行搜索,还包括标签。我们编辑会对每本书加上标签,这是加工制作流程的一环。编辑会根据他的理解,为每本书打上相关的标签。这些标签用户也可以在图书详细信息页中看到,如果用户点击标签就可以进入相关的标签书单。另外,我们对标签有多个维度,比如地理的纬度、人名的纬度等,都有比较严格的限定。

CSDN:小米并购多看为你们带来了什么样的变化?从技术层面讲,有哪些协作呢?

王毅:最明显的就是基础技术的互通,现在我们所有的应用,包括多看阅读,全部迁移到了小米帐号的体系下,多看现在也使用小米帐号,作为一个身份认证系统,小米帐号打通了整个小米的业务系统。用户可以基于小米账户做很多事情,比如访问云空间,以前的多看帐号是没有这项服务,但是随着无缝迁移至小米帐号后,用户可以通过小米账号登录,同步账号中的图书、笔记等信息到小米云空间。

与此同时,米币支付系统也是一大重点。支付系统是小米生态中非常重要的一环,现在游戏、主题和阅读都以统一的支付系统贯穿起来。同时支持各种各样的充值的方式,这样我们的用户不管是在移动端,还是在Web端都可以很方便地使用米币来支付,这也是合并之后的一大变化。

CSDN:多看目前有100多名员工,算是一个中等大小的团队。从技术层面看,您认为对于中小开发者来说,什么样的开发工具或服务是必需的?

王毅:我觉得从开发团队管理上讲,采用适合自己的开发工具是很重要的,因为这有利于大幅提升他们的开发效率。就好像我们的代码管理方式已经历了好几次的改变,最初我们使用的是微软一套代码管理系统TFS,后来开始使用SVN,由于SVN在分布式处理方面存在一些缺陷,所以最终采用了Git。

我认为选择工具的目的是尽量杜绝以往手工作坊式的开发方式,使开发更有条理和规范。与我们现在采用Git做代码管理的道理一样,因为Git的特点是分布式开发,它很便于分支,同时它也很轻量级,跨平台性能好,现在也是主流的代码管理工具。

我们的Bug管理现在采用的是JIRA,这也是目前整个小米体系下大多数团队所采用的平台。这个平台可以通过多种方式扩展,可定制接口和模块,轻量、灵活也是它的重要特性,能够有效地帮助中小团队解决项目管理问题。

友友姚宏宇:用C,C++和Java实现自主研发之后,放开心态迎“高朋” 新技术对传统学科的颠覆:系谱网使用大数据寻亲问祖 IDC:2015年全球平板电脑出货量将超PC Web开发者的福利 30段超实用CSS代码 库克出席D11科技大会:苹果公司没有陷入麻烦 千兆的带宽是不够的,最新研究将我们带入400G时代! 告诉你一个事实:移动互联网依然不大 一切才刚刚开始 戴尔的10亿美元云扩建计划到底是什么? iOS vs. Android,应用设计该如何对症下药? 扁平化设计五大原则 16种折磨开发者的方式 2013年度中国优秀开源项目征集活动正式启动 技术趋势:产品设计向“钱”看 服务器领域:旧时代已过 新时代正在降临 速度与金钱的碰撞:F1赛车将搭上大数据的东风 中国·北京第一届开源大会Hadoop专场侧记:Hadoop已经成为大数据分析平台的标配 Marissa Mayer为何带雅虎重回门户时代? 开发者最爱的三款开发工具 Facebook开源JavaScript库:React 硬件天堂深圳行:从Seeed Studio、Knewone到柴火创客空间 消费应用开发难赚钱?做个企业app store吧 开发开源软件的智慧:够简单,很好用 历届中国云计算大会PPT集萃(终章):架构到实践的全面解析 透过现象看本质:详谈数据可视化 专家观点:HTML5无法彻底抹杀Native应用 Google地图工程主管Raj Shah跳槽至微软在线服务部门 微软证实Windows 8.1引入类“开始”按钮 系统6月26日开放下载 PHP开发者意向调查:移动开发+云服务成为焦点 研发周报:16种折磨开发者的方式 移动周报:Jolla和Sailfish OS,那些你应该知道的事儿 优化技巧分享:把内存消耗降低至原来的1/20 各位:怎么判断表里某个字段是否存在? 纯技术问题:精通“书签“与“层“的大虾请进!!!! 一个奇怪的现象,请教高手这是怎么回事? 哪里有破解清华五行卫士密码的软件? vc++7.0好用吗? 吃完晚饭了... 可不可以让 CppWebBrowser1的背景不是白色? 热热热!!!热疯了!!! 我的喇叭哪儿去了? 我的PB程序出了问题了!!! sql server中哪个函数是用于字符串与整型之间转换的? 我想限定文本输入框只能输入10个汉字或20个英文字符,但文件输入框却只能输入10个英文字符,如何解决? 当我将这样的字符串“dsdsdsdfsdffsdsdfsdfsfdsdfsdfsfsfdsdffs.....”放入我的表格中时,无论怎样设置也不折行,影响了部局,如何解决? MFC中视图(view)是怎样随着主窗口的大小改变而改变的。 急!请教!!猫猫连接,用数据管道同时访问两库,访问不到对方的网络库(sybase) 关于电影下载 我已经把一个exe文件加入到我自己的程序中了,请问在我的程序中应该样调用该exe文件呢? 哪位高手知道RTF格式的含义?或者更好,知道Rxlib中的RXRICHEDIT控件中识别RTF格式的方法? Delphi编写的DLL在VC下不能使用 请问哪儿有电工的<>的电子版下载?我只有这么多了 msdn2001年4月版的讨论 请问哪儿有电工的<>的电子版下载? 请教高手!!!! 请进 各位:周末愉快!为何我的多表查询用updatebatch提交时总是报错? 我不明白!!!! 请问,BAS 与 VBJ 有什么区别吗?为何他们安装在同一个目录呢? 如何得到系统进程的列表? vi下如何撤销操作? 我们知道MFC中的对象序列化做得很好,不知在DELPHI中怎样来实现对象的序列化? 我已经学过C++,想学VC++请问哪本书入门比较好啊? 欢迎使用技巧酷skillstore beta 1.00 有个可以显示IP的QQ,很不可思议,讨论一下好吗? 怎样在程序运行的时候加上参数,比如说双击文本文件打开记事本 谁有运行后烧硬件的程序 用VC开发如何实现网页的同步浏览呢? 动态产生的datawindow怎样调整它的显示? 怎么从ORACLE白痴到高手 怎样通过程序员考试??????? 庆祝北京成功 COM基础问题 感谢huangguanshu回答我的问题,请进来拿这200分 老问题了,access to SQLserver 关于的js问题(高分相送) 谁有运行后烧硬件的程序,要多少分都给. 请高手赐教, DDDW 的问题 ?谁有运行后烧硬件的程序,要多少分都给. hotmail box怎么用不了? sql的image型字段内容如何输入? 谁有运行后烧硬件的程序,要多少分都给 谁有运行后烧硬件的程序??要多少分都给 (1-1/2²)(1-1/3²)(1-1/4²)(1-1/5²)……(1-1/2007²)(1-1/2008²)要过程! 已知a=2+√3,b=2-√3,求代数式a²b-ab²的值 试用适当方法表示由二元二次方程组y=x+2,y=x²的解组成的集合 求教求教QAQ 已知 a+b=3,则a²-b²+6b的值是 已知a=1/3,b=0.2,求代数式a³-b³/a²+ab+b²的值 1:已知m=x-y,n=xy,试用m,n表示(x³+y³﹚²,2:当x=-1时,x³+2x²﹣5x-6=0,请根据这一事实,将x³+2x²-5x+6分解因式.没分了,不好意思, 若a²+2a+b²-6b+10=0,求a²-b²的值 已知实数a、b满足ab=1 a+b=2 求代数式a²+b²的值. 设Y=X²-ax+b,A={x|x-y=o},B={X|y-ax=0},若A={1,-3},求集合B(用列举法表示) 已知a²+b²+4a+6b+13=0,求a,b的值 已知(a+b)²=7,(a-b)²=3.求a²+b²、ab的值 设集合A={x|x²-2x-3=0},B={x|x²-ax-a²+1=0}(1)若a=-1,求A∪B(2)若A∩B={3},求实数a的值 已知a+b=3则a的²-b的²+6b的值为 已知:(a+b)²=7,(a-b)²=3.求a²+b²和ab的值 若集合A={-1,3}集合B={x|x²+ax+b=0}且A=B求实数a,b 2a²+6b²=3,则a+b的最小值是 已知(a+b)²=7,(a-b)²=3,则a²+b²与ab的值分别是 已知a+b=5.ab=3,求a ²+b ²的值 已知(a+b)²=7,(a-b)²=3,求(1)x²+y² (2)xy的值 设A={(x,y)|y=x²+2x+5},B={(x,y)|y=ax+1},问:(1)a为何值集合A∩B有两个元素?(2)a为何值时,集合A∩B至少有一个元素? 已知a+b=5,ab=3,求a²+b²的值 已知a+1/a=7,求a²+1/a²的值 用列举法表示集合A={y/y=X²,-1≤x≤1,x属于N},-1≤x我知道-1≤x≤1 中x=-1,0,1 因为x属于N,所以x=0,1 x的值用集合可表示为{0,1}.当x=0时 y=0 ,当x=1时 y=1 所以A={0,1}.亲 这是为什么呢 已知a+b=5,ab=3,求,a²+b²的值 用配方法证明:代数式-x²+6x-8的值一定不小于1. 集合P={(x,y)| y=x²+2,|x|≤1,x∈Z},用列举法表示集合P 计算2²-5乘5分之1+|-2| 谢谢 已知a+b=3,ab=1,求(a-b)²的值 用配方法证明:代数式-x² 6x-8的值一定不大于1 1.5²+2.2²=()² 已知(a-b)²=3,ab=-1/2,求(a+b)²的值 用配方法说明代数式X²-6x+10的值大于0 1×2×3×4+1=5²=(1²+3×1+1)²2×3×4×5+1=11²=(2²+3×2+1)²;3×4×5×6+1=19²=(3²+3×3+1)²;4×5×6×7+1=29²=(4²+3×4+1)² …… (1)根据你的 已知ab满足a+b= 3,ab=2,求a²+b²的值 用配方法说明:代数式x的平方-6x+13的值恒大于0 1²+2×1×2+2²=3² 2²+2×2×3+3²=5² 3²+2×3×4+1²+2×1×2+2²=3² 2²+2×2×3+3²=5² 3²+2×3×4+4²=7²发现了什么规律 用数学语言叙述 已知a=3+2√2,b=3-2√2,则a²b-ab²的值为? 用配方法证明代数式5X的平方-6X+11的值,恒大于0 (√5-√3)²+√60-(√2+1)(√2-1) a+b=3,ab=2求a²+b²的值 用配方法说明代数式中x平方-12x+40的值恒大于零 1=1² 1+3=2².1+3+5.+2011=? 如果a²-ab=3,b²+ab=2,那么a²+b²的值是多少? 用配方法说明:无论x取何值,代数式2x-x的平方-3的值恒小于0. ﹙√5+1﹚﹙√5-1﹚,﹙2-√7﹚﹙2+√7﹚,﹙2√3+1﹚²,√3-√2/√3+√2 己知a²+ab=3 ,b²+ab=2,求a²+b²的值 用配方法说明代数式X平方--5X+7的值恒大于0 4(a+b)²-9(a+3)(a-3)+5(a-1)²,其中a=-1应该是4(a+2)²-9(a+3)(a-3)+5(a-1)²,其中a=-1 若|a+3|+(b-2)²=0,求ab的值. 代数式x^2+2mx+2m^2+1的值恒大于零 a+b=5,ab=3(1)...(2)...(3)求(a²-b²)² 已知,√a+1+(a-b-3)²=0,求ab的值 , 设a=1/2m+1,b=1/2m+2,c=1/2m+3,求代数式a²+2ab+b²-2ac-2bc+c²的值.要过程! 1²+2²+3²+4²+5² +···+n²=? 已知a=3+2√2,b=3-2√2,求代数式a²b-ab²的值. 若代数式mx²+2(3-2m)x+1(m≠0)是关于x的完全平方式,求m值 1×3+1=2²,3×5+1=4²,2×4+1=3²,4×6+1=5²…,请找出规律,并用含有一个字母的式子表示出来. 已知a(a-1)-(a²-b)=2,则代数式ab-(a²+b²)÷2的值为急求 试用适当的方法表示由二元二次方程组{y=X+2} 组成的集合 { y=X²}试用适当的方法表示由二元二次方程组{y=X+2} 组成的集合{ y=X²}
备案号:鲁ICP备13029499号-2 说三道四 www.s3d4.cn