分享 周五要给公司的一群 Java coder 做 Ruby 的 share,

jarorwar · 2013年08月15日 · 最后由 sanivbyfish 回复于 2013年08月16日 · 2727 次阅读

周五要给公司的一群 java coder 做 ruby 的 share,自己也是自学 ruby,所以。感觉不够啊。ppt 做的很一般。大家帮忙审核审核啊。。 pdf 版本:http://s.yunio.com/Rh4jim ppt 版本:http://s.yunio.com/r8tINh

谢谢了~!

界面有点丑啊

@jarorwar thanks for share.

背景颜色本身暗,然后字体颜色用的黑色,不容易看清!

顺便贴下我的 git subtree 分享

我给 java 的同学讲 ruby 的时候,感觉这个例子比较有价值——http://fsword.github.io/slide/ruby/index.html#slide-72 总的来说,该用对象的地方用对象,该用函数的地方用函数,供楼主参考

我也曾经是职业 java coder 假如我当时看了这个 ppt 我肯定觉得不屑的 有这么几个问题: 1、混杂了中文符号和不应该出现的首字母大写 2、实例代码过于 Java,明显不是 Rubist 的常用方式 3、与其迎合 Java 的继承封装多态 不如多展示一下 Ruby 的语法糖

建议: 1、实例代码采用截图的方式 有很多 textmate 或者 sublime 的好看的配色方案 直接上截图能给人眼前一亮 2、如果你想用面向对象这个角度切入的话 最好做左右屏对比的方式 3、一定要展示语法糖 比方说前几天的一句话实现斐波那契数列 Java 不用分号分隔的话死也做不到的~

最后 感谢楼主拿出来分享 并且感谢楼主解救水深火热的 Javaer...

#5 楼 @zj0713001

又完整看了一下 slides,确实感觉还有很多不足,可以有这么几个对比角度——

  • 一切皆对象:java 的 class 体系和 object 体系是两张皮,这样导致很多东西是不自然的,比如类方法不可继承,而相对来说,ruby 的 class 就是 object,于是有很多便利,比如 case 的时候可以 when 一个 class 等等
  • 单继承问题:单继承和多重继承各有优劣,module 如何解决
  • ruby 不支持 overload:这里可以回答一下 overload 的场景在 ruby 中要如何处理
  • block 的价值:我之前举的例子就可以说明,另外由于有了 open class 设计,允许针对一个点做增强,可以减少不必要的工具封装层次

写了一些以后觉得我把问题谈复杂了,楼主时间有限,真要让 java 程序员认识到 ruby 的好处可能需要很多次交流,不妨先用一个 ppt 先演示一下 ruby 的基本语法和概念,比如 saito 以前写的这个 http://saito.im/slide/ruby-new.html

#6 楼 @fsword 😄 我也是觉得以 第一次启发兴趣 为出发点最好了 其实很多很多东西 java 和 ruby 完全就不一样 硬拿来比的话 javaer 会死掉的...

到了分享结束的提问环节,一位平时与楼主有隙的 java coder 以不善的语气问道:

「我不知道你分享这东西有什么用,你看 twitter 一开始就走错了路用 ruby,最后还不是得费老大劲换回 java?」

#1 楼 @guyanbiao 我觉得还行。。是不是。我的审美有问题了。。额。。

#4 楼 @fsword 感谢。因为我也是半斤八两。所以这个代码我都需要理解啊~呵呵

#5 楼 @zj0713001 谢谢你的建议,因为我们老大上次 share 了一下语法糖。这次让我 share 类、对象、module。所以。。其实我不喜欢对比的。尤其 java 代码一大堆~!

#6 楼 @fsword 非常不错。你的这几点建议很好~! * ruby 的 class 就是 object * 大悟啊~! 其实在我的理解中。module 就是为类增加功能的。继承才有真正的层次关系~ 这个点跟 java 的 class 和 interface 一样

#8 楼 @blacktulip 呵呵。有木有用这个就不说。仁者见仁,智者见智~,最近正在用 ruby 重构原来的一个系统。等做完了就可以看最终效果了~!另外,一般的 it 人员还是比较喜欢接受新事物的,如果拒绝新事物,那么这个人的 it 之路就很短了。呵呵~!

#12 楼 @jarorwar 酱紫啊 这样那就木有办法了 只能听老大的了 😦 脏活儿累活儿都给你了

呵呵,没关系的,其实,ruby 不只是语法糖啊~!朴实的东西解决了大众的问题,这才是最重要的~!

看完来拍砖了: PPT 配色有点杂,看起来感觉乱。 建议: 白底黑子,最好的展示方式。 页面最好不要超过 3 种主色调,超过太乱。

推荐本书,会对 PPT 制作有很大提升。 http://book.douban.com/subject/4243135/

@zj0713001 的建议 1 很棒,适合展示代码用。

不知道你以前是否做了 ruby share。从内容列一堆跟 java 一样的语法概念,不会让人产生眼前一亮的感觉。 我现在是主职 java, ruby 仅属于爱好,说几个当时震撼到我的地方: 1.一切皆对象:

3.times { p '123' }
1.upto 5 do |num| 
    p num 
end

2.字符即模板

language = "java"
puts "Hi ~ #{language}"

3.Gem

gem install xxx
bundle install xxx

java 中用 maven 试试...

4.创建一个 Web 应用,如此简单:

require 'sinatra'

get '/hi' do
  "Hello World!"
end

我们公司也有很多 java coder,如果是我,我就只说一句:真的不要再搞 java 了,选择 ruby 你的人生从此与众不同,java 那是在浪费你的人生。

#19 楼 @blacktulip 总有一些 java coder 搞不清楚,人家 scala 其实和他们每天写的 java code 是有很大不同的。比如,我告诉一个 java coder 你应该用 coffeescript 来写 backbone 代码,但他总说,那不就是加了点语法糖的 javascript 么,很明显他根本没搞懂状况,这些之间是如此的不同。如此的节省你的时间和生命。

#19 楼 @blacktulip 呵呵,到了那个用户量,还是有钱,重来的。。。

我倒是觉得可以跟他们说说 gem 的概念,rails,语法真不是关键

不要开篇就是一堆概念,先用 9 牛 2 虎之力写一个 java 程序,然后用 ruby 几秒实现出来,有对比才能兴趣。

这是我 2 年前的一次分享,当时也是面向 Java 程序员,和 LZ 很类似: http://www.slideshare.net/neosoyn/ruby-rails-10632364

#23 楼 @camel 不错不错。你的代码太精彩了~!

public protected private

#23 楼 @camel 非常棒的分享

需要 登录 后方可回复, 如果你还没有账号请 注册新账号