05月03, 2016

为什么开发众成翻译平台

很快,我们就要发布了“众成翻译1.0版”了:http://www.zcfy.cc,这一版开始采用邀请制注册方式,将来会逐步放开注册。顾名思义,“众成翻译”就是集众人之力,鼓励大家协作的一个翻译平台。1.0版的功能还比较基础,包括推荐、认领和一些辅助翻译工具。但本文的主要目的是想回顾一下众成翻译平台的由来,也就是为什么开发这个翻译平台。

时光荏苒的9个月

2015年8月3号,我到360上班的第一天下午5点,月影(吴亮)就召集波大(周裕波)、二哥(刘观宇)和我开了一个会,讨论开发翻译平台,也就是现在的“众成翻译”。以下是这次会的纪要:

拟开发一个翻译平台,支持GitHub账号登录,会员可以推荐文章、翻译文章,并因此获得积分。模式参考众筹、返利等。翻译平台由会员中心、前台展示及编辑器等组成。其中编辑器参考GitBook和Google翻译,即从左至右依次为原文窗口、译文窗口(MD格式)、译文预览窗口。考虑支持术语、人名提示功能。

本周或下周,吴亮给出原型。在此期间,刘观宇开展前期调研,比如梁杰的翻译项目。

翻译平台将来可面向社会开放(做成开源项目?),近期主要为奇舞官网、奇舞博客、奇舞周刊提供稿源,为奇舞翻译提供工作平台。为此,除考虑在线翻译平台自身前台展示界面外,与上述三个对外界面衔接,最好一键提交、一键发布。

开发翻译平台的初衷确实是“为奇舞官网、奇舞博客、奇舞周刊提供稿源,为奇舞翻译提供工作平台”。翻译平台从alpha版到beta版的开发测试过程中,奇舞翻译(奇舞团翻译小组)的同学踊跃推荐并认领翻译,目前翻译平台上有译文44篇,在译41篇,待译13篇,基本上都出自奇舞团同学之手。有一些特别优秀的文章也推荐到了《奇舞周刊》转发。

奇舞官网和奇舞博客基本没怎么采用翻译平台的译稿。主要原因,一是翻译平台并没有翻译出影响力特别大的文章,如果有这类文章,至少是可以推荐到奇舞博客发表的;二是这两个站点的定位决定了它们发表的文章应该主打奇舞团原创,而不是转载和翻译。《奇舞周刊》一直是商业化团队在运营,组稿主编周炜同学多次表示,翻译平台上线确实在很大程度上缓解了周刊稿源不足的问题。短期来看,周刊稿源不可能完全依赖翻译平台,目前投稿仍然占相当比例。

说到奇舞翻译,据原奇舞团同学郭瑞回忆,翻译小组大致组建于2012年,那时候月影在组织《高性能HTML5》一书的翻译,于是组建了翻译小组。除了翻译与工作相关的技术图书,组员还会寻找自己感兴趣的文章,或者认领其他人推荐的文章,大家在一个内部维基页面上协同共享信息和链接。

2015年年底前后,翻译小组已经翻译出版了4本书,除了《高性能HTML5》还有《Node.js项目实战》《移动Web手册》和《React Native:用JavaScript开发移动应用》。到目前为止,翻译小组又翻译完成了4本书:《React Essentials》《Ionic in Action》《JavaScript at Scale》和《The Browser Hacker's Handbook》,这几本预计2016年都可以付梓。

按照“为奇舞翻译提供工作平台”的初衷,目前的这个1.0版基本满足了大家集中推荐原文和认领翻译的需求。同时也可以有限度地对行业内开放,即先实行邀请注册的方式。未来的版本可以加入团队协作编辑、审校,甚至支持翻译图书的功能。

最后,从开发周期上看,翻译平台1.0版的开发用了9个月,主要原因是人力不足。对于开发像翻译平台这样的内部项目,通常的做法都是在团队中寻找那些热衷于学习新技术,或者对类似需求、功能感兴趣,同时又有一些自由时间可支配的同学穿插着来写码。相信任何技术团队都不可能为此分配几个专人,产品、设计、开发、测试全配齐,毕竟有些主业项目都不一定能做到这样。当然项目本身也有一定的复杂性,加上需求和工具选型也是边调研边引入边调整,周期就被拖长了。

人物、技术和感谢

众成翻译项目发起人及最初产品原型的设计者是奇舞团“团长”月影(吴亮),协调人为波大(周裕波),参与写码的同学包括:二哥(刘观宇)、李松峰、张天龙、彭玉凤、钟恒、段玉文,设计师是小雨(魏呈雨)。下图是月影最初设计的编辑器界面的原型:

翻译平台的客户端和服务端使用的都是JavaScript语言,特别地,服务端采用了国人自主研发的优秀Node.js MVC框架:ThinkJS 2.0。这个框架的作者是知名Node.js技术专家、奇舞团技术经理李成银。

由于ThinkJS 2.0紧跟前端步伐,写码同学使用ES6甚至ES7最新语法开发的梦想成为现实。除了支持新潮的语言特性,ThinkJS的模块化设计、钩子与中间件机制、丰富的数据库支持,以及便利的开发配置和性能优化考量,处处体现了作者的博采众长和匠心独运,确实可以大幅提升开发效率。因此ThinkJS也是奇舞团不遗余力向同行推荐的一款开源框架。翻译平台算是ThinkJS 2.0驱动的一个重要示例应用。

另外,翻译平台的推荐模块封装了原奇舞团同学张代平的Lavaflow项目的核心代码,该项目是基于ThinkJS 1.0开发的。我只是简单地把它移植了过来,在此特别向代平致谢,他原来就坐我对面。

从个人角度讲,参与开发这个项目满足了我要“写代码”的夙愿,让我从ECMA-262时代跨跃到了ES7时代,同时基本熟悉了Node.js和ThinkJS,也过了一把产品经理和码农的瘾。因此真的非常感谢月影、波大和各位小伙伴。

当然,翻译平台从搭建到成型主要靠的是二哥,项目代码是二哥生成的,数据表也是二哥建的,整个项目前半期都是二哥在主持和推动。为什么叫“二哥”?观宇(关羽)当然是“二哥”了。另外,满身都是正能量的二哥的工号可是000196啊。多谢二哥无数次耐心帮我解决技术问题。(题外话,像二哥这样稳重、真诚,处处替人着想,富有同情心又不乏幽默感的好男人,谁跟了谁就赚大了。希望二哥把我这个评价以适当方式转达给弟妹知悉。)

天龙除了负责平台全部页面的展示和前端交互,还完成了编辑器辅助翻译功能的核心代码。玉凤则专注于外部并不可见的后台管理页面,还有关系到所有注册用户的积分系统。开发期间,我跟天龙基本每周五下班都会打一会乒乓球,然后大汗淋漓地去食堂排队吃晚饭,直至春节后我的腿受伤。玉凤巾帼不让须眉,雷厉风行,经常1分钟前还在十几层,1分钟后已经拿着她的Mac在七层跟我探讨功能了。

钟恒在和玉文携手完成了国家名词委术语动态查询功能之后,又完成了平台和个人术语的创建和上传。这两位都是九零后帅哥,一个刚毕业上班一个今年才毕业,但同样才高八斗聪明异常,关键是响应速度极快。设计师小雨比我早入职1个月,在设计师紧缺的团队中她注定会很忙,但正是这个看似柔弱的女孩给翻译平台从头到脚做了美化,并且脑洞大开,设计了可爱的智能机器人形象。

最后不能不感谢ThinkJS作者,坐在我旁边的成银。ThinkJS是我自jQuery之后真正在实际开发中用到的第二个框架,因此不懂的我就随时问。几乎每次都是还没等我把问题描述完,他的解决方案已经脱口而出了。有一次成银帮我调试代码,他双手击键的速度之快,堪称“运指如飞”。我瞬间的反应就是:郎朗弹奏《野蜂飞舞》也不过如此吧!

本文链接:http://lisongfeng.cn/post/why-we-have-developed-the-zcfy.cc.html

-- EOF --

Comments

评论加载中...

注:如果长时间无法加载,请针对 disq.us | disquscdn.com | disqus.com 启用代理。