Upgrade to Pro — share decks privately, control downloads, hide ads and more …

ruby introduction ( Chinese)

SiweiShen
December 14, 2012

ruby introduction ( Chinese)

a short introduction to Ruby / Rails.

SiweiShen

December 14, 2012
Tweet

More Decks by SiweiShen

Other Decks in Technology

Transcript

  1. 关于我 • 7 年半的 Web 开发人员 • 05 年~ 08

    年底 (3 年半), java 程序员 累计 8 个正式项目 • 之后至今 ruby 程序员 累计 12 个正式项目。若干小的开源项目。
  2. 我的故事 • 其 我的 实 JAVA 做的 好。 实 •

    毕业设计 3 个人做,我一个人把其他两个人 的活 都干了。 儿 • 第二年毕业设计,帮另外一个同学(结业) 了 了 的 文也 了。 写 论 • 之后 JAVA 干的 生水起。 熟悉各种 的上 风 说 名字的框架。各种工具。各种开源东 东。。。。 • 干活而速度也最快。
  3. 转向 RUBY ? • 08 年受 熊 ( 了 《重

    》, 《 人件》, 翻 论 论 论 《 WIHTOUT EJB 》 , 《 RUBY ON RAILS 滑板 )》 ) 影 。 实 实 • 我所知道的 JAVA 大牛都做 RUBY 项目 了。 • 相信大牛, 的。 实实
  4. 深入了解 RUBY • Dave 和 Andy 了 论 100 多

    言,最后 实实 发现只有 RUBY 是他们想要的(第一版序 言?) • When we discovered Ruby, we realized that we’d found what we’d been looking for. • You can concentrate on solving the problem at hand, instead of struggling with compiler and language issues. • Four years later. Ruby is still our language of choice
  5. 比喻 • 用了 TDD 的方式,再也不愿意回到原 的 来 开发方式了 • 用了自

    化 脚本,再也不愿意人肉 动 测试 测试 了。 • 用了 RUBY ,再也不愿意回到 JAVA 了。
  6. 这几年的最直观感觉 • RUBY 代 接近于正常 言。 实 实 • 读文件:

    • File.read(“some_file”) • 心里想的是什么, RUBY 代码就是什么。 • JAVA 代码跟心里最初想的差太多。
  7. 读文件的 JAVA 代码 (1) public class FileInput { public static

    void main(String[] args) { File file = new File("C:\\MyFile.txt"); FileInputStream fis = null; BufferedInputStream bis = null; DataInputStream dis = null; try { fis = new FileInputStream(file); // Here BufferedInputStream is added for fast reading. bis = new BufferedInputStream(fis); dis = new DataInputStream(bis); // dis.available() returns 0 if the file does not have more lines.
  8. 读文件的 JAVA 代码 (2) while (dis.available() != 0) { System.out.println(dis.readLine());

    } fis.close(); bis.close(); dis.close(); } catch (FileNotFoundException e) { e.printStackTrace(); } catch (IOException e) { e.printStackTrace(); } } }
  9. 对比( java : RUBY ) RUBY : 写代码思路流畅。 JAVA :

    实现代码跟思路差太远,离自然 语言太远了。 • 我干嘛要了解 各种 input stream? • 我干嘛要使用 main 函数? 我只知道目标文件名。
  10. 生 率: 实 JAVA : RUBY = 1 : 5

    大 可以 : 在 概 认为 WEB 开发方面: 一个 RUBY 程序员,干 5 个 JAVA 程序员的 活儿。
  11. RUBY 适合做什 ? 实 除了不能写 3D 大型游 ,其他都可以。 戏 1.

    日常的常 工作。 实 1.1. 自动化脚本,取代 SHELL 1.2. 实现 DSL 2. WEB 开发。 3. 其他开发
  12. 入 要求高 门 (主要是英文) • 90% 的文 都是英文的。 档 •

    剩下 10% 的中文文 都是 期的。 档 过 (参考《滑板书》的更新速度,还不如直接 看官方的 文档 ( guides.rubyonrails.org )
  13. 深入了解:更高 的 言特性 级 语 • 元编程 (Meta programming) •

    支持代码块 (block, closure, proc ) • 最适合做 DSL
  14. RAILS 优点 1 :遵循 定配置 约 • 好 :不必事无巨 的都把配置

    出 。 处 细 写 来 所有的 model 都放在 app/model 所有的 view 都放在 app/view 所有的 controller 都放在 app/controller 所有的 RAILS 程序员省去了沟通和交流的麻 。 实
  15. 对比 JAVA (老风格) Spring: 一堆配置文件 Struts: 一堆配置文件 Hibernate: 更是一堆配置文件 人望而却步。

    实 然后来出 了 论 论 xdoclet 和 annotation, 但 是仍然配置代码量极大。
  16. RAILS 优点 2 :吸收最佳实践 数据 迁移 库 (DB migration) 持久层。

    MVC 。 缓存 . Bundler 管理 rubygem HAML, Coffeescript Asset pipeline. ( 压缩 css, js) 自动化部署工具 , 元 工具。 实 实实
  17. RAILS 缺点 • 于新手 , 化有 度 实 实实 实

    实 • 可能 RUBY 新手写的东西,比 JAVA 新手写 的 西,性能要慢一些。 东 • 国内大公司用的不多。所以工作职位目前以 初 公司 主。 实 实 挑 机遇 存。机遇大于挑 。 实实 实 实
  18. 新 言的比 ? 实 实 实 • Scala • Closure

    • Coffeescript 都 得一 值 试 Coffeescript 身上有很多 RUBY 语言的影 子。 起 非常自然流 。 实 实 实
  19. 其他 用? 实 • 编写 iOS: RubyMotion ( 2012/12/12 出版

    ) • 编写 Android: Ruboto – Ruby on Android • 编写硬件相关:略
  20. 展望 • Ruby 2.0 + Rails 4 也马上出炉了。也有很 多特性。 •

    国内越来越多的大公司开始招聘 Ruby 程序 员了。( redhat, 路透社 , Vmware... ) • 给力啊!