用心策划并筹备了本次大会的讲师阵容和主题,但是前期只是把 16 个讲师的大头照挂上去,在没有任何主题和日程信息的情况下,350 张门票就卖光了,这只能说明这是一个看脸的世界!
原本很担心第一次在深圳办会,没有群众基础,要靠主题和内容来提振大会门票销售情况。结果没怎么宣传,就靠刷讲师的脸,票就买光了。这让我陷入了深深的思考,同时也打击了我前期卖力去宣传主题和日程的动力... 距离大会还有一周多的时间,现在放出所有的主题和介绍,主要是证明一下我是一个拖延症晚期患者,请大家以后见面不要打我。
讲师:李华顺 - 支付宝 介绍:由 Ruby China 的其中一个创始人、主要的开发者 - 李华顺,为大家分享 Ruby China 社区这几年的经历过程。以及其中涉及到他如何将 Ruby、Rails 社区的一些文化、技术特点合理的应用到实践上面。这个主题涵盖了 Ruby China 社区管理经验、教训,对于期望学习如何创立、并管理好一个网站的人会有很大帮助。同时也会有很多关于 Ruby on Rails 的实战经验分享。
辣评:如果你认为用 Rails 实现一个论坛比如 RubyChina 没什么难度,那么你就的错了,RubyChina 论坛项目比你想象的要复杂,过去四年不断迭代,期间发生了很多故事,而且还对华顺的人生产生了重大影响,具体有哪些鲜为人知的故事,这次让我们听听当事人来讲讲。
讲师:黄增光 - SelfStore.io 介绍:写作是编程领域重要的沟通手段,是否擅长写作是杰出程序员与一般程序员的区别之一。目前流行的标记语言 Markdown 将写作从繁琐的样式设置中解脱出来,但由于其功能简单、标准分裂,面对复杂文档时力不从心,因此要寻找更好的选择。此次演讲将分享使用 AsciiDoc 和 Asciidoctor 生成博客、文档、电子书等各类文档的经验。
辣评:程序员写博客的节奏通常是这样的,初级一般会挑选一个博客平台,然后开始美化。中级的会自己买域名,服务器,然后用 Octopress,Hexo,或者 Ghost 自己搭建,然后开始美化。高级的就自己做博客静态文章生成器,自定义 Markdown 编辑器,以及自动发布脚本,然后开始美化。那么大师级会怎么折腾呢?让我们拭目以待。
讲师:吕国宁 - 杭州安存正信 介绍:从第一届 RubyConf China 到今年第七届,吕国宁作为大会的主要发起人和组织者之一,能以讲师的身份上台给大家撒点鸡汤,哦不对,是做技术分享是我多年的夙愿。为了实现这个愿望,我选择了 Rails 5.0 即将发布的 ActionCable 作为切入点,给大家介绍一下事实 WebSocket 的内部实现,以及在生产环境下如何去正确的水平扩展 WebSocket 服务。同时该主题是吕戈的主题的姊妹篇,会介绍如何用 Celluloid 去替换掉 EventMachine 来实现 WebSocket 服务。
辣评:明显就是找不到好的选题,还要来凑个数,请大家千万,千万不要有任何期待。
讲师:肖雪洁 - Citrusbyte, LLC 介绍:软件中的所有复杂度真的都是真正需要的么?以 Rails 为例,Rails 那么复杂,真的有必要么?写 Rails 软件的总是加班,真的都是是产品经理跟工程师的错么?有没有降低用 Rails 写成的软件的复杂度的方法?当然有!这篇演讲会告诉你,怎么区分额外复杂度 (Accidental Complexity) 与必要复杂度 (Essential Complexity),以及为什么 Rails 中的大部分复杂度都是可以避免的额外复杂度。这里还会介绍我们如何采用另一种经过大量验证的架构来开发软件,并极大的提高工作效率。我们相信:当 SICP 的目的是帮助你阅读并修改一个有 50 页长的代码的项目时,这并不是说 SICP 只是入门书籍,而是 99% 软件本应比这个长度要短。
辣评:相信这次来参会的 Rails 程序员占大多数,而 Rails 发展 10 年,慢慢开始有一种声音诟病 Rails 变得臃肿,低效,提倡所谓的 Off Rails。肖雪洁所供职的公司,就是一个专门提供基于 Ruby 非 Rails 的 Web 解决方案的公司,所以我特别邀请到他,并安排了这样一个主题,让肖雪洁来拍一下 Rails 框架的复杂性和臃肿这件事,希望肖大大在讲台上拍的的时候,下手最好能轻点。
讲师:Florian - Strikingly 介绍:随着用户体验要求的与日俱增,很多 Web 应用会往 SPA 这个方向发展。复杂的 SPA 应用面临着前端工程化的挑战;Strikingly 就遇到了 Rails asset pipeline 上对前端资源管理的瓶颈。本次分享想介绍我们遇到的问题、为什么 webpack 可以解决这些问题,以及我们在实践中如何结合应用 Rails 和 webpack 的体会。
辣评:从前端发展的趋势上不难看出,Webpack 干掉 Gulp 已经毫无悬念了,拥抱前端是当下 Rails 发展的主旋律,而且非常难得的是 Strikingly 会分享他们的实际开发经验,所以这个主题很有价值,值得期待。
讲师:夏俊晨 - Strikingly 介绍:在构建大型前端应用时,前端和后端工程师通过 API 的方式进行合作。API 也是双方的协议。现在主流的方式是 RESTful API,然而在实践中,我们发现 RESTful 在一些真实生产环境的需求下不是很适用。往往我们需要构建自定义 endpoint,违背了 Restful 的设计理念。GraphQL 可能是目前最完美的解决方法。不久前,Facebook 推出了 GraphQL 的规范并开源了 JavaScript GraphQL 库。将主要介绍 GraphQL 结合 Rails 的实战经验。
辣评:又一个来自 Strikingly 的主题,今年大会招募讲师的时候 Strikingly 公司一次性给我们投了 5 个主题,且都是那种有干货,分量足的主题,但是不能 5 个全上,于是我主动跟 Strikingly 讨论了一下,最多只给两个名额。所以结果是选一个跟前端有关,对大家有实际价值的主题,然后上一个非常超前的主题,挑战并刺激一下大家。
讲师:吕戈 - Odigo 介绍:由于 MRI 的解释器锁 GVL 的存在,线程不能同时执行,它只能提高并发性能,而不能提高并行性能. 但是并发的世界里,Thread sucks! 现在已经有 NIO, AIO, Evented IO, Actor, CSP, Coroutine ... 多种多样的并发设计,为什么我们还在用线程?基于线程的 Celluloid 对比不用线程的 Eventmachine 有什么优劣势?这都要从 Ruby 线程是怎么实现的讲起...
辣评:估计会是本届大会最 hardcore 的主题分享... 在多核时代,Ruby 在高并发,以及多线程编程方面越来越受到开发者的关注,所以技术含量这么高的话题必须得请吕戈来讲才放心,于是我们把这个命题主题交给了吕戈,经过各种威逼利诱,吕戈从容就范。
讲师:毛超 - ThoughtWorks 介绍:BDD 作为 TDD 的延伸已经在软件开发中扮演着越来越重要的角色。对一个项目来说,TDD 能保证我们在正确的写代码,而 BDD 能确保我们在写正确的代码。业务人员,测试人员和开发人员需要缺一不可的参与 BDD 的整个流程,这样才能保证 BDD 的正常运行。在 Rails 项目中,cucumber 和 rspec 的大量使用都在帮助我们更广泛的实践 BDD,然而真实项目却远远超过了 cucumber 或者 rspec 中 hello world 一般的 BDD 例子。rspec 缺乏自然语言描述的支持,cucumber 中的 given,when,then 无法支撑复杂的现实生活,这都让不太懂技术的业务和测试人员无法保持对 BDD 的热情,最终演变成开发人员的个人独舞。在这次分享中,我会详细剖析在真实项目中使用 rspec 和 cucumber 的不足,并且提出改进方法。最后我会介绍一个比 cucumber 更好用的 BDD 工具。
辣评:Rspec 可算作是当前 Rails 的事实上的标准测试套件,但是 Cucumer 的流行程度远远没有 Rspec 高,如果能解决掉 Cucumber 的实际问题,还能否唤起大家对 BDD 真爱,期待毛超的分享。
讲师:黄志敏 - Xinmsn Labs 介绍:许多 ruby 项目仍然在使用旧的被弃用的代码,仅仅是因为代码优化需要做很多重复的工作而且会耗费很多时间,不少团队更注重功能实现,认为代码可以之后再去优化,但实际上是永远不会去做,如果代码优化能够非常快速地完成,大多数团队是愿意更频繁地去优化代码的。我会给大家介绍一种基于 AST(抽象代码树)的自动代码优化的方法,介绍一些基于 AST 做自动代码优化的工具,也会教你如何自己写这样工具。现场我会做一些代码演示,比如将 rspec 代码从 2.x 升级到 3.x,将 rails 3.x 升级到 4.x
辣评:通过 AST 抽象代码分析找到代码中的热点,然后能自动优化,这是一件门槛很高的事情。在这方面黄志敏可以算作国内 Ruby 代码静态分析和优化方面的专家,且硕果累累,那么这次带来的自动代码优化会不会带来新的突破,让人耳目一新呢?
讲师:吴江 - GitCafe 介绍:如何为一个 Rails 网站增加客户端支持?吴江和您分享 GitCafe 在这个过程中的各种取舍和许多有趣的故事。如何在时间紧迫,人手不足的情况下一方面保证 API 的开发进度,一方面提供给客户端开发人员详细又正确的文档?程序员最痛恨两件事,一件是写文档,另一件是别人不写文档。这个经典笑话背后是 DRY 原则。我们在 DRY 原则的指导下使用 Swagger,不光不费力就有漂亮的 API 文档,还简化了测试流程。內容还有跨地域跨部门的协作方式和值得关注的服务器端和客户端发展的新方向,并回味一下 DRY 原则的实施步骤:抽象 - 选取合适的工具 - 带来价值。
辣评:Rails 在后 Web 时代,以及移动互联网时代作为 API Server 扮演者举足轻重的作用,结合 GitCafe 的业务特点,他们在 API 服务方面有很深的积累,同时吴江也带着这个主题参加了今年的 RubyConf TW。
讲师:张晗 - FreeWheel Desc: FreeWheel 的广告系统为 80% 的美国主流电视媒体和运营商提供广告投放增值服务,其业务端基于 RoR 实现。不同于多数网站,其业务逻辑非常依赖事务性的操作,且不同用户的使用场景差异巨大,再加之超过 8 年的历史积累,使其面临比较特殊的性能挑战。我们总结了近一年来在性能优化方面的经验以及问题,包括:性能监控,性能测试,最坏情况的预期与控制,数据访问优化,前端优化等等,其中既有工程方面的,也有技术改进的,希望与社区,特别是有类似应用场景的朋友们分享交流。
辣评:FreeWheel 的 Ruby 技术团队在我的认知范围内,可能是北京,甚至国内规模最大,技术实力最强的的 Ruby 技术团队,业务类型复杂,压力大,厚重的历史积累,这些铸就了他们是一支彪悍的技术团队,能邀请到 FreeWheel 的团队负责人来做分享,我很期待。
讲师:王益善 - 蝉游记 介绍:Leetcode.com 上提供了很多经典算法题,能够让你在线编写程序去解决,最近添加了 Ruby 语言的支持。每天花费 5~30 分钟去解这些题目,不仅能够加强基础算法,还能体验到更多 Ruby 语言美妙特性。这个主题会和大家分享解题的几个心得:Ruby 解法可以简洁到的像读文章一样自然、Ruby 的各种内置方法简直是外挂、Ruby 解 Leetcode 算法题的优点和缺点。
辣评:很可能听了这一场主题分享就会觉得值回票价的主题分享,所以当我跟 Quake 共同策划这次的主题的时候,我意识到大会门票定价可能太低了... 如果你想见识到底用 Ruby 刷算法题的时候,能开挂到什么程度的话,千万不要错过。
讲师:向磊 - 大疆 介绍:在无人机行业风生水起的今天,我们已经能在世界各个角落看到大疆的身影,而全球最大的专业航拍社交网站 SkyPixel,承载了来自全球各地的航拍爱好者。大家在社区内分享和交流航拍图片,视频和故事,特殊的用户场景给我们的网站提出了诸多挑战:从初期单独 RoR 构建网站,到后来 Rails 和 Angularjs,Reactjs 的前后端分离;从异构系统的开发到图片视频分享平台的构建…… 在主题中,我们将介绍 SkyPixel 在这一年里,应对全球化所攻克的一个个困难挑战。
辣评:大疆这家公司可谓当下现象级的创业公司,这家公司的全球在线商城基于 Rails 开发,作为深圳本土的技术公司的翘楚,他们在处理跨国电子商务方面,构建电商平台方面的技术挑战和经验分享,给大家带来的启发相信不会让大家失望。
讲师:李哲 - OneAPM 介绍:Ruby 经常被身边搞其他语言开发的朋友嘲笑它慢,说它只是看起来很美好,而 Ruby 的粉丝们又因为多数是中小型开发团队使用,没有遇到过性能瓶颈的情况下进行反驳,这次我们首先来介绍那些原本通过 Ruby 编写的应用通过其他语言改写之后获得巨大性能提升的原因,然后通过计算机语言运行的基本原理以及 Ruby 的基本实现方式来描述 Ruby 到底"慢"在哪里,以及如何在代码书写的时候最大限度的避免这个问题,此外还将介绍在调优一个 Ruby 应用时的重要的衡量标准,有哪些方法和工具可以帮助我们检测到性能的瓶颈,以及如何解决这些问题。
辣评:作为本届大会的赞助商,同时也是最早(第一个)把主题投递给大会的公司,我真的很担心这是一个硬广+软文性质的主题分享,所以事前我已经跟对方打过招呼,不要软文,不要硬广,要干货。好在 APM 领域是一个强技术驱动的领域,而 OneAPM 拿得出干货,所以请大家共同监督,看这场分享是否能“干”到底。
讲师:王子龙 - 友好速搭 介绍:IaaS 变革了运维工作,PaaS 变革了开发工作,SaaS 会变革各类行业的工作。国内的 SaaS 行业,今年刚起步,有众多行业痛点,亟待解决,未来两年,SaaS 势必成为创投热点。本主题将结合友好速搭构建经验,着重从架构方面,介绍如何构建 SaaS 应用,包括:技术选型、多租户、微服务、水平拓展等。此外,还介绍基于 Sinatra/Padrino 的 Ruby 技术栈。友好速搭是电商建站 SaaS 产品,2012 年开始研发,2014 年上线,核心业务基于 Ruby 构建,上线一年来,积累 8 千多用户,已获得浙商创投、京东融资。
辣评:把眼光放到 5 年前,当时 SaaS 的概念刚刚新起,人人都想做 SaaS,然后一批接着一批的做 SaaS 的人死在沙滩上。于是有人叫嚣说 SaaS 模式不适合中国,时过进迁,现在越来越多的优秀 SaaS 平台每天在互联网世界扮演举足轻重的角色,那么作为拍死先烈的后来者,友好速搭的经验分享将为我们展现其中奥秘。
讲师:陈林燏 - Beansmile 介绍:我们使用 backbone+rails4+grape+phonegap 的组合开发了一个任务管理的网站和移动 app,在主题里会介绍如何用 backbone 作为前端 MVC 框架跟 rails 的结合,rails 怎么配合时下流行的 hybrid 技术(phonegap, ionic)怎么做 mobile app,以及一些任务分配系统中 repeating task、权限处理、消息推送、定时通知等典型场景的实现思路。
辣评:本届大会,我们留了一个特别主题席位给广州 Rails 技术公司的代表 — Beansmile 公司,目的是为了展现广州技术公司的特质。低调,务实,而且能闷头赚大钱。他们的 CTO 会从一线工程师的角度,给大家带来最鲜活的实战经验分享,这也是最符合我们举办 RubyConf China 的初衷,希望大家能通过这次技术分享了解,认识到这家公司。
讲师:Laurent Sansonetti - RubyMotion
介绍:RubyMotion 让开发者可以使用 Ruby 语言为 iOS、Android 和 OS X 原生应用。基于和 Objective-C、Swift 和 Java 相同的运行时技术,使用 RubyMotion 开发的项目可以被编译成经过优化的机器代码,并使用目标平台的全套 API。使用 RubyMotion 开发,你无须使用 Xcode 等专有 API,转而使用 Rake 等 Ruby 平台成熟的工具链和趁手的代码编辑器开发原生应用。RubyMotion 是一款自筹资金开发的产品,没有任何投资介入,因此我们可以按照一个长远的规划开发和维护 RubyMotion,因此您可以放心使用 RubyMotion 开发您的产品。
辣评:这是一个番外篇,早在 8 月份的时候我就敲定了所有的 16 位讲师,而 RubyMotion 的创始人 Laurent 先生因为联系方面的原因,没有及时跟我们确定行程,但是后来我么还是跟 Laurent 最终敲定了行程,问题是我们如何才能把 RubyMotion 的主题安排到日程当中呢?我们认为这个主题非常有意义,Laurent 先生本人其实为人和善,技术能力超强,非常值得通过本次大会让大家认识 Laurent,了解他在 RubyMotion 方面做出的努力和取得的成果。所以如果大会第一天,要求大家中午午休后提前十分钟开始下午的日程,且下午比既定日程晚二十分钟结束,大家是否会接受呢?