BT

如何利用碎片时间提升技术认知与能力? 点击获取答案

张文钿谈Rails开发及台湾Ruby社区
录制于:

| 受访者 张文钿 关注 0 他的粉丝 作者 刘申 关注 0 他的粉丝 发布于 2010年3月11日 | 如何结合区块链技术,帮助企业降本增效?让我们深度了解几个成功的案例。
11:01

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

   

1. 这是在上海的第一届Rails Conference(KungfuRails),坐在我旁边的是iHower,iHower你好。请跟大家介绍一下你自己,以及你的工作?

大家好,我是张文钿,我在网上代号是iHower。我从台湾新竹过来,我目前在和多股份有限公司(编者注:此采访录制于09年10月份,iHower目前已离开这家公司),这是一家专职做Ruby on Rails的外包顾问公司,我目前的工作当然是全职做Rails的软件开发的工作。那除了工作之外,我有应OSSF(Open Source Software Foundry)──台湾有一个团体叫“自由软体工作坊”的邀请,做一些Ruby on Rails的Training,免费的课程这样子。

   

2. 那么你既然从台湾过来,台湾现在的Ruby以及Rails的发展如何,特别是在台湾当地商业化的应用多吗?

目前还是,使用的人多半还是单打独斗的人比较多,像是学生或者是SOHO,小型的工作室来做一些外包的服务。也有一些网络公司使用Ruby on Rails来进行他们新网站或者最新的内部项目的开发,他们也在借此评估说Ruby on rails是不是这么好用,那大概是这样子。

   

3. 那你认为Ruby或者是Rails要想在商业上发展或者是被认可,它的优势或者是障碍都有哪些?

就Ruby语言来说,它是一个设计非常精良的语言,它的语法非常自然。让开发者学起来、用起来都非常愉悦。更重要是它的关于面向对象部分是特别的受到大家赞扬的。包括我们现在有不少的Java的OO大师都在使用Ruby。最近他们有在这方面出一些书,像最近出版的《Refactoring: Ruby Edition》(重构),出了Ruby的版本。那在Rails方面,Ruby社区是一个蛮团结的专案,几乎是集合了Ruby社区的力量去打造这个框架。就我来看,它应该是我们所有的Web框架上面投注最多眼神、关注、心力,我个人认为它也是最先进的框架,跟其他的比较起来,它的确是非常先进的,这是它的优势。人们比较担心的多半都是人才的部分。因为毕竟是一个比较新兴的技术,人们在接受它的考量上面都是,没有足够的人会这个东西。如果企业去采用的话,找不到足够的人,基本上我觉得这个问题是鸡生蛋,蛋生鸡的问题而已。先有的人公司才去用,可是你要先有公司去用才有工作就业机会,才有人去学。所以我个人会也在尝试做一些教育训练的工作,去培养新的人才这样子。

   

4. 我有订阅你的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。他们来是想看看这个社区的情况到底是如何,这个技术到底是如何,看看情况。

   

5. 因为你是在新竹,那活动也都是办在新竹吗,还是办在台北?

我办在台北,因为台北人比较多,我从新竹到台北做高速铁路大概半小时。

   

6. 现在我们回过来看个体,就是包括Ruby或Rails的开发者,对他们的发展你有什么建议呢?

最重要的还是从基础(着手),我们现有的资源是书,比如像最重要的Bible(Agile Web Development with Rails),虽然它没有跟上最新的版本,但是它还是非常重要的,一定要读的书。那接下来我认为可以去看,订阅一些重要的Blog或者是杂志,比如说像Rails的官方网站是一定要看的,Rails官方网站最近每个月其实都有整理对应社群的人的状况,等等。其他的也有一些,如果你有注意看,其他有一些知名的有关于如Ruby或Rails的Blog是可以订阅,或者是有些杂志这样,我记得Ruby Inside是非常好的一个资源,还有最近有一个Ruby 5(http://ruby5.envylabs.com/),也非常的棒。然后接下来,我想在工作上,我认为最重要的是你要找到一位导师,让他能够跟你一起结对编程,跟你一起写代码,才能够让他去指导你,或者是至少能够每周或定期一段时间请他来为你做复查代码。比如我今天的演讲主题其实有非常非常多,是我之前在跟我的员工结对编程的时候,我指导他的东西,只是这样把它整理起来。所以从中发掘说好的最佳实践是什么。

   

8. 刚才听你的演讲感觉非常的棒,其中你提到了一点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,那当然实际状况可能会比这个复杂。

   

10. 那最后能不能给大家推荐几本书,不一定非限制在Ruby或Rails,对你影响比较大的,关于开发方面的书都可以?

除了我刚才有提到的那个最重要的Bible之外,同一家出版社还有出很棒的像是《Advanced Rails Recipes》、O'Reilly也有出很棒的《Ruby Best Practices》、《Enterprise Rails》等等。因为我在台湾的情况是,台湾不容易有翻译书了,我接触的资源大部分是英文书籍,我一直买英文书,因为台湾很少有书的翻译,比较少。就算有翻译也多半是很容易就过时的这样子。

登陆InfoQ,与你最关心的话题互动。


找回密码....

Follow

关注你最喜爱的话题和作者

快速浏览网站内你所感兴趣话题的精选内容。

Like

内容自由定制

选择想要阅读的主题和喜爱的作者定制自己的新闻源。

Notifications

获取更新

设置通知机制以获取内容更新对您而言是否重要

BT