开源项目 《 Rails 10 日谈》请教社区意见

happypeter · 2014年10月10日 · 最后由 joezhang 回复于 2016年01月31日 · 6837 次阅读

很早我就建立一个 github repo: https://github.com/happypeter/rails10 。跟大家说要录一套 Rails 的免费视频教程,不过一直忙着挣钱糊口,都好几个月过去了。现在才是真的抽出时间来弄了。

适合观众:初学者,要录成 porn for the beginners,让大家感觉到 rails 是很简单易用的,课程做得越 teasing 越好。

课程形式:主要是十来个视频,也会配文字稿:http://happypeter.github.io/rails10/


很早就拜读了 @yedingding 博客上和 @poshboytl 的讨论,也了解到了 @knwang 的“温室培养”的高论。我非常同意各位的意见:课程不要一下子就讲很深的理论,而要以动手为导向,如 @yedingding 说的,这边写几行代码,那边浏览器中就能看到一点变化,这样是最有成就感的。

今天发帖想请教一个具体问题。

Rails 开发环境安装是比较复杂的,apt-get git...brew install..source .bashrc...passenger-in... 这些内容对于新手来说应该就是天书,不是信号而是噪音。所以我想是不是应该努力在《Rails 十日谈》中避免掉这一步?我现在的想法是找一个安装好 rails 的 ubuntu vagrant 来直接用,不知道大家有没有更好的方法?

用 docker 应该更简单

要不考虑 Ntrio (貌似拼写错了)?最方便,写好后直接部署到 heroku,有头有尾,另外个人觉得应该有单独一集讲讲前端部分,asset pileline 这部分对新人也是很难理解的,而且大部分人其实第一眼看到的就是前端样式,后端再怎么牛,前端太清水白菜了做出来的应用也不怎么招人爱,如何快速生成前端样式框架(bootstrap),或者说如何套用一套前端样式模版,以及如果要改的话从哪里下手。

vagrant 同样得有基础才能玩,不过比直接给脚本好很多,docker 就算了,折腾 docker 会比 rails 更难。还有一种就是针对主流发行版写通用安装脚本,例如 mac,u12.04,u14.04,arch 就算了,用的应该都是老鸟。 综上,建议 vagrant+virtualbox

最容易的可以是你做一个 Linux VM 放在你自己的服务器上学生可以下载,而你的视频系列可以在同样的环境下操作,能够做到即使学生从来没有接触过 Linux 和任何编程训练,也可以模仿你的每一步做出一个项目,就很好了。

又是 peter,每次见到你总会有好东西!赞同@n00b1 的,应该讲讲前端样式啊,asset 啊,如何套用一套前端样式模版,以及如果要改的话从哪里下手。

Docker 和 vagrant 都不推荐,我觉得你直接指定一个系统,比如 Ubuntu 14.04.1,然后给一个脚本或者一串命令告诉他直接执行即可,暂时不必纠结于细节。重点要放在 Rails 的学习上,这些知识可以以后来补。

不推荐 Docker 和 vagrant,折腾这两个岂不比单纯的安装 Rails 更费事? 对于新手来说,Linux 下的安装命令并不算天书,如果有必要的话,你甚至可以专门讲一节安装。

《Ruby on Rails Tutorial》这本教程很好,以一个用户注册模块示例,一步一步添加新功能来示范整个 Rails 开发过程,很棒,但是他最大的问题就是从头到尾都夹杂着太多太多的其他内容,比如 git,比如 Spec 测试,比如 Bootstrap,比如样本数据生成等等,在这么多内容里面转来转去,对初学者来说,脑袋真的要爆炸了,坚持不下去了,最后我是手动把这本书里面的纯 Rails 内容生生剥离出来才看得下去。

@knwang 的“温室培养”的高论确实点中了要害,不愧是专业做培训的。要摒除一切干扰和杂音,先熟悉并上手最单纯的 Rails 开发,这样才能给初学者信心。当然,那些暂时摒除的也是必须要学的,但是,可不可以不要在一开始就全部上?会吓死胆小的,撑死坚持的。

其实可以 windows + railsInstaller + rubymine 我就是这样入门的,看的是 rails tutorial

#9 楼 @PengEdy #8 楼 @sphawkcn 我觉得用 vagrant 会简单一点,下载官方 vagrant 和 virtualbox 的 deb 包,双击安装,然后 petter 做一个 rails 的镜像,给地址学生, 常用命令几个

vagrant box add 
vagrant init
vagrant up
vagrant ssh
vagrant halt

https://ruby-china.org/topics/21754

难道都没有听说过 Nitrous.IO 这个云端 Rails IDE 吗?绝对新手专用,只需要注册一个账号就好了,其他环境配置,版本啊,CVS 啊,部署啊,测试啊全部帮你搞定,让新手专注 Rails 的核心概念。是新加坡本土团队开发的。

Vagrant 和 Docker?几条命令生成环境的确简单,但新手估计连用它们的目的都搞不清楚吧,推荐的人从来不从别人的角度考虑问题。

#13 楼 @ugoa 全英文环境对新手本身就是一个巨大的障碍。

#14 楼 @sphawkcn 反正对新手来说到处都是障碍,一个障碍总比多个障碍好。

新手总是要花上那个几年的时间学习计算机各个方面的知识的,少走错路便是捷径。

#6 楼 @knwang 对,基本上就是这个思路,初期尽量减少大家的挫败感。

#13 楼 @ugoa

nitrous.io 我再好好评估一下。前几个月接了个在线教育网站开发的项目,跟客户提建议要集成 cloud9 IDE,被客户给否定了。@knwang 觉得这个能在教学中实用吗?

另外有朋友真正用 nitrous.io 做开发吗?

开始时同样是 windows + railsInstaller,当时使用 Rails 2.2。 后来才学习使用 linux,对于新手来说不建议使用 Ubuntu Vagrant 和 Docker 这些纯命令行的方式教学。新手会越看越模糊,把握不住重点。

如果不会搭建真实环境,我觉得往后也会学得很艰难啊。

#20 楼 @Rei 开始时要学习的是 Ruby 的语法和 Rails 框架的结构,当代码能够正常运行时自然要使用 linux,到了那时再花精力去学习部署。 先学习部署再学习开发,并适合编程新人。

#21 楼 @tiseheaini 我没说部署啊,我说从 gem install 到 rails s。

其实对于新手来说,一开始都不知道是干嘛的,比如说,初期用rails s,不是后来看源码,谁知道是什么呢……so,需要的 just do it step by step. 当然 step 少点好,但是不建议省略基础,例如基本 linux 命令。所以我推荐 vagrant,而且这玩意夸平台。后面如果有一节需要安装什么软件,例如 imagemagick,ssh 进去安装就可以。

#18 楼 @happypeter 跟学生基础,教学的方式和教学的内容都有关,不好一概而论;不是所有的人都适合在线学习编程的,好你们的项目想教谁。如果项目想教所有想学习编程的人是很难做好的

#22 楼 @Rei 可能我没能理解你的意思,我想表达的是,开发入门越简单越好,一键安装,迅速写代码。 @knwang 说的对,要看想教谁,不要想教所有人。

我觉得大家都已经过了新手的阶段了,而且可能大家学 Rails 的时候已经不是开发新手了,只是要学 Rails 而已。

所以要要对新手分类:

一类是小小白,什么都不会,Linux 从没接触过

一类是小白,折腾过 php,.net,对 MVC 有概览,折腾过服务器部署,对 linux 很熟悉。

说实话,Rails 本来就玩了很多魔术,你再用 vagrant 和 docker 或 Virtualbox 把什么都弄好好,对小白来说,一开始就是雾水,感觉世界都不真实了。安装个 rails 环境对他们来说其实最多也就一个小时。

对于小小白,那就用 https://www.nitrous.io + heroku,这才叫零配置。

对于视频来说,配置这章可选就行了,按自己的情况,要么自己装,要么用现成的。这两种情况没有关联。

以后可以考虑在 linux 下录视频,如果要部署,也可以分两种情况教,一种是 linux 下部署到服务器,一种是教小小白部署到 heroku。

小小白如果看得懂,他自然会去 linux 实践,如果看不懂,他也能完成教程,也有成就感。

docker 不建议,可能会让事情变的复杂。但是,我觉得还有一个问题,如果用户学习的时候使用的是 Windows 呢?这种情况是非常容易出现的。所以,我也认为 https://www.nitrous.io + heroku 是初期最好的配置。这样可以摆脱用户平台之间的差异,然后可以提供安装文档,就是针对不同平台的环境配置,提供图文说明,一步一步较他们如何搭建本地环境。这个部分提供图文教程的好处是可以让用户自己去做,从而让教程关注核心部分。

安装环境就 Windows 比较麻烦吧,不知 http://rubyinstaller.org/ 足不足够解决?

这门课主要是服务真正的小白的。但是我也要保证视频的内容中是绝对实用的。vagrant 是有几点明显的好处的:

  • 第一,这个是真实的工具,不是 toy,我本人的日常开发就是 Mac 上装 vagrant
  • 第二,vagrant 也可以安装在 windows 上
  • 第三,我推荐的 vagrant 镜像上默认是有 rails 的,但是后续在同样一个 vagrant 机器上学习者也可以去自己升级 rails 和 ruby 这些工具。所以后续学习的道路是平的。

nitrous.io 我自己比划了好几下都没有进去评估,我感觉几年后可能我会用这样的 cloud IDE 来进行开发,但是这两年真的是不行,网速太慢了。我家里用光纤都不行,大学宿舍里肯定效果更差。

  • 他们现在也在大力推本地编辑,但是毕竟本地还是没有运行环境的,也就是说如果断网了,那我就不能运行看效果了,那怎么开发?

  • 他们还提供很好的一站式部署托管等等各种服务,我觉得都很好,但是还是因为网络还是不通畅,暂时我觉得还是自由好。

我现在的工作方式是这样的,大家给看看合理不。

  • 开发运行环境都在 Vagrant 里的 ubuntu 上,和真正的部署环境保持最大化的一致
  • vagrant 上有共享文件夹功能,所写代码其实还是在 Mac 上,可以用 Mac 的各种 GUI 工具,比 Linux 下的确实 nice 很多。
  • 不跟 nitrous.io 绑定,那部署的时候自由度就大了,可以选国外的 digitalocean,也可以用国内的 aliyun。

#30 楼 @happypeter 就国内这时断时续的国际带宽来说,nitrous.io 真是不具备什么实用性,综合以上意见,我现在也推荐 Vagrant 里的 ubuntu,无论小白用什么平台,都可以快速得到一个完备的环境。

支持啊,顺便透个信,kaikeba.com 最近要上一个 rails 课程《云端上的铁轨》,不过是面向初学者的

#32 楼 @awking 云端上的铁轨,这个名字挺好。

#33 楼 @happypeter 当时和他们聊天,因为时间限制,效果并不是很好,希望能出一个好的教学视频

希望能加上一章讲部署的,最好是能结合真实 production 环境,举例:linode VPS 上的安装部署全过程。

初学时用 Ubuntu 14.04 + rvm,我觉得 rvm 已经把 ruby 和 rails 安装简化的相当可以了。。。

@joezhang 部署这章要加上,rails 自带的服务器就是开发玩玩的,并发一上来就抗不住了。

@richard_ma 我自己学会使用 Capistrano 自动部署,并且成功把我自己的应用部署到 linode VPS 上。比起期待教程,还是自己沉下心来读文档和 Google 更靠谱。

torvaldsdb 各位,有没有好的 Ruby 学习视频推荐下? 提及了此话题。 04月11日 00:22
happypeter 《 Rails 10 日谈》课程上线啦 提及了此话题。 04月03日 10:57
需要 登录 后方可回复, 如果你还没有账号请 注册新账号