InfoQ

InfoQ

技术访谈

我的书签

登录注册 以永久保存书签。

该内容已经被标记书签!

标记书签错误,请重试!

张文钿谈Rails开发及台湾Ruby社区

受访人 张文钿 采访人 刘申 发布于 2010年3月11日 长度 00:11:01     下载 MP3

领域
语言 & 开发
主题
Ruby ,
Ruby on Rails
标签
最佳实践 ,
社区 ,
Rails ,
引入新人
 
概要
在去年10月份的Kungfurails大会上,InfoQ中文站有幸采访了从台湾专程赶过来的张文钿,与他探讨了关于台湾Ruby社区的发展、Rails的商业化,Restful Design等话题。

个人简介
张文钿(a.k.a ihower),来自台湾新竹,2006年开始接触Ruby on Rails,从此爱上Ruby这个极具生产力及表达能力的程式语言。他同时也是Ruby Taiwan社群主力成员,不定期在台北主办Ruby Tuesday技术分享聚会。

关于会议
这是在上海的第一届Rails Conference(KungfuRails),坐在我旁边的是iHower,iHower你好。请跟大家介绍一下你自己,以及你的工作?
大家好,我是张文钿,我在网上代号是iHower。我从台湾新竹过来,我目前在和多股份有限公司(编者注:此采访录制于09年10月份,iHower目前已离开这家公司),这是一家专职做Ruby on Rails的外包顾问公司,我目前的工作当然是全职做Rails的软件开发的工作。那除了工作之外,我有应OSSF(Open Source Software Foundry)──台湾有一个团体叫“自由软体工作坊”的邀请,做一些Ruby on Rails的Training,免费的课程这样子。
那么你既然从台湾过来,台湾现在的Ruby以及Rails的发展如何,特别是在台湾当地商业化的应用多吗?
目前还是,使用的人多半还是单打独斗的人比较多,像是学生或者是SOHO,小型的工作室来做一些外包的服务。也有一些网络公司使用Ruby on Rails来进行他们新网站或者最新的内部项目的开发,他们也在借此评估说Ruby on rails是不是这么好用,那大概是这样子。
那你认为Ruby或者是Rails要想在商业上发展或者是被认可,它的优势或者是障碍都有哪些?
就Ruby语言来说,它是一个设计非常精良的语言,它的语法非常自然。让开发者学起来、用起来都非常愉悦。更重要是它的关于面向对象部分是特别的受到大家赞扬的。包括我们现在有不少的Java的OO大师都在使用Ruby。最近他们有在这方面出一些书,像最近出版的《Refactoring: Ruby Edition》(重构),出了Ruby的版本。那在Rails方面,Ruby社区是一个蛮团结的专案,几乎是集合了Ruby社区的力量去打造这个框架。就我来看,它应该是我们所有的Web框架上面投注最多眼神、关注、心力,我个人认为它也是最先进的框架,跟其他的比较起来,它的确是非常先进的,这是它的优势。人们比较担心的多半都是人才的部分。因为毕竟是一个比较新兴的技术,人们在接受它的考量上面都是,没有足够的人会这个东西。如果企业去采用的话,找不到足够的人,基本上我觉得这个问题是鸡生蛋,蛋生鸡的问题而已。先有的人公司才去用,可是你要先有公司去用才有工作就业机会,才有人去学。所以我个人会也在尝试做一些教育训练的工作,去培养新的人才这样子。
我有订阅你的blog(http://ihower.tw/blog/),发现你经常会组织一些Ruby开发者的聚会,这个你是怎么考虑的。你认为如何来促进和发展本地的开发者社区呢?通常你都采取哪些方式?
我大概是定期每一两个月会在台北办一次叫做Ruby Tuesday(http://registrano.com/group/rubytaiwan)的聚会,然后我会...(插问:都是每周二吗?)对,都是每周二。刚好有一家餐厅叫Ruby Tuesday,也有一首歌叫做Ruby Tuesday,很有趣的。我会固定邀请二到三位的讲者,来跟我们分享他们在使用Ruby on Rails的经验。例如最近一次我们有请到一家做Facebook App的公司来跟我们分享他们的经验,非常有趣。我自己会办这样的活动,当然希望说,了解在台湾还有哪些人在使用,促进业界交流之类的。也有一些来参加聚会的朋友,其实我们已经是好朋友了,就是借此聚会一下。办了几次下来,很有趣的是,有将近快一半的人其实是对Ruby有兴趣的新手,他们的背景多半是.Net,或者Java。他们来是想看看这个社区的情况到底是如何,这个技术到底是如何,看看情况。
因为你是在新竹,那活动也都是办在新竹吗,还是办在台北?
我办在台北,因为台北人比较多,我从新竹到台北做高速铁路大概半小时。
现在我们回过来看个体,就是包括Ruby或Rails的开发者,对他们的发展你有什么建议呢?
最重要的还是从基础(着手),我们现有的资源是书,比如像最重要的Bible(Agile Web Development with Rails),虽然它没有跟上最新的版本,但是它还是非常重要的,一定要读的书。那接下来我认为可以去看,订阅一些重要的Blog或者是杂志,比如说像Rails的官方网站是一定要看的,Rails官方网站最近每个月其实都有整理对应社群的人的状况,等等。其他的也有一些,如果你有注意看,其他有一些知名的有关于如Ruby或Rails的Blog是可以订阅,或者是有些杂志这样,我记得Ruby Inside是非常好的一个资源,还有最近有一个Ruby 5(http://ruby5.envylabs.com/),也非常的棒。然后接下来,我想在工作上,我认为最重要的是你要找到一位导师,让他能够跟你一起结对编程,跟你一起写代码,才能够让他去指导你,或者是至少能够每周或定期一段时间请他来为你做复查代码。比如我今天的演讲主题其实有非常非常多,是我之前在跟我的员工结对编程的时候,我指导他的东西,只是这样把它整理起来。所以从中发掘说好的最佳实践是什么。
那你当初也是有一位非常好的导师吗?
可以这么说。
刚才听你的演讲感觉非常的棒,其中你提到了一点restful design,就包括Controller架构的设计,但是你只提了一下,没有详细的介绍,这一点能不能给我们大家稍微详细的说一下?
我举了几个例子(编者注:以下内容可结合iHower的slide理解http://www.slideshare.net/ihower/practical-rails2-350619),一个是has_one,这种情况其实多嵌套的资源。然后有一种情况是has_many,那也是多嵌套的资源。第三个情况是many-to-many,我们可以再新增的一个membership,新增的一个resource来做。接下来比较神奇的是,有一个例子是operate操作的情况,我要操作resource的状态,这里有一个很重要的观念是,不一定一个model对应到一个resource,我可以去设计一个新的resource,只专门做状态的改变──开跟关。另外我的例子里面还有是Sorting,这种情况是我们不需要新增resource,也不需要新增action,我们只需要在参数上面做操作就可以了。那还有一个例子是Search,我是想要解说可以加上自定义的route来做。那最后的情况就是,比如说我要加一个admin的界面,我要介绍是resource有一个东西是namespace,加一个namespace就可以了,所以大家是透过这七八个例子来解说我们要如何设计resource,那当然实际状况可能会比这个复杂。
你刚才说的内容可以在你的Blog上找到演示文档吗?
是的。
那最后能不能给大家推荐几本书,不一定非限制在Ruby或Rails,对你影响比较大的,关于开发方面的书都可以?
除了我刚才有提到的那个最重要的Bible之外,同一家出版社还有出很棒的像是《Advanced Rails Recipes》、O'Reilly也有出很棒的《Ruby Best Practices》、《Enterprise Rails》等等。因为我在台湾的情况是,台湾不容易有翻译书了,我接触的资源大部分是英文书籍,我一直买英文书,因为台湾很少有书的翻译,比较少。就算有翻译也多半是很容易就过时的这样子。
谢谢你接受我们的采访。
谢谢。
show all  show all show all

采访人 刘申 在08年毕业于哈工大,管理科学与工程硕士。对Web前端开发、Ruby、RoR以及极限编程十分感兴趣。

深度内容

大规模视频网站的计费与流量管理

本次分享将会就大规模视频网站的计费与流量管理这个话题,从操作层面细细进行讲解和分析,为系统工程师们揭示平日里我们没有关心的另一些内容。同时也希望本次分享能揭示行业中的一些“潜规则”,让互联网行业的流量与带宽管理更为开放与简洁。
本次演讲视频录制于QCon杭州2011

专访Jeffrey Richter:Windows 8是微软的重中之重

Jeffrey Richter以其多本Windows核心技术的经典著作而闻名,同时,他深入掌握微软的.NET等一系列核心技术,2012年1月,Jeffrey Richter在北京接受了InfoQ中文站的专访,谈到Windows 8和WinRT编程,并就异步编程、Windows编程中的可扩展性、性能和安全性方面给出自己的建议。

应用云平台的可用性——从新浪SAE看云平台设计

云计算平台的可用性,相比传统互联网服务而言,更加复杂和困难,也更具有挑战性。本文借助新浪SAE云平台为读者讲述了云平台可用性的定义、如何打造高可用的平台,以及对云计算的用户提出了建议。

JVM定制改进 @ 淘宝

淘宝高度重视Java平台的健康发展,组建了一个团队专注于Java平台的底层部分的性能、功能与稳定性改进;工作主要基于OpenJDK中的HotSpot VM开展,其中一些通用的功能随后也会逐渐反馈给OpenJDK社区。希望能与使用Java平台开发应用的大家交流经验。
本次演讲视频录制于QCon杭州2011

"伤得起"的云计算应用——对云端应用之架构的思考

2011年4月21日至22日是值得云计算从业者纪念的日子。Amazon的IaaS服务出现故障,导致许多商业网站的服务中断,影响非常严重。作为云计算用户,我们需要思考的是,如何保证即便在云服务不可用的情况,我们的应用架构仍然能够屹立不倒?本文正是站在云计算用户的角度试图探讨这一问题。

让交付的速度跟上思考的速度

12人的技术团队,4组刀片服务器,每月20亿的访问量,每日1次准时部署,99.9%的可用性。这可能吗?当然。想知道如何做的吗?百姓网将与您分享他们在DevOps实践过程中的经验和技巧。
本次演讲视频录制于QCon杭州2011

架构之路——穿行在产品和业务之间

篱笆作为一家起源于社区的电子商务公司,反映到技术层面就是同时要面对产品和业务,以及经营战略的变化调整。如何在产品和业务的夹缝之间完成技术架构的抽象与平衡,寻找更有效的价值定位,这当中有些经验教训和个人感悟愿与众人分享。
本次演讲视频录制于QCon杭州2011

特性注入:成功三部曲

本文将对特性注入以及相关方法做一个扫盲性的介绍。我们会解释这个框架的关键要素,并附上实例来证实它们。为了让文章保持相对较短,我们不会深入到某个工具或方法中,而是会给出一些参考资料,以便大家做进一步的研究。