很早我就建立一个 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 来直接用,不知道大家有没有更好的方法?
要不考虑 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 开发,这样才能给初学者信心。当然,那些暂时摒除的也是必须要学的,但是,可不可以不要在一开始就全部上?会吓死胆小的,撑死坚持的。
难道都没有听说过 Nitrous.IO 这个云端 Rails IDE 吗?绝对新手专用,只需要注册一个账号就好了,其他环境配置,版本啊,CVS 啊,部署啊,测试啊全部帮你搞定,让新手专注 Rails 的核心概念。是新加坡本土团队开发的。
Vagrant 和 Docker?几条命令生成环境的确简单,但新手估计连用它们的目的都搞不清楚吧,推荐的人从来不从别人的角度考虑问题。
nitrous.io 我再好好评估一下。前几个月接了个在线教育网站开发的项目,跟客户提建议要集成 cloud9 IDE,被客户给否定了。@knwang 觉得这个能在教学中实用吗?
另外有朋友真正用 nitrous.io 做开发吗?
开始时同样是 windows + railsInstaller,当时使用 Rails 2.2。 后来才学习使用 linux,对于新手来说不建议使用 Ubuntu Vagrant 和 Docker 这些纯命令行的方式教学。新手会越看越模糊,把握不住重点。
其实对于新手来说,一开始都不知道是干嘛的,比如说,初期用rails s
,不是后来看源码,谁知道是什么呢……so,需要的 just do it step by step. 当然 step 少点好,但是不建议省略基础,例如基本 linux 命令。所以我推荐 vagrant,而且这玩意夸平台。后面如果有一节需要安装什么软件,例如 imagemagick,ssh 进去安装就可以。
#18 楼 @happypeter 跟学生基础,教学的方式和教学的内容都有关,不好一概而论;不是所有的人都适合在线学习编程的,好你们的项目想教谁。如果项目想教所有想学习编程的人是很难做好的
我觉得大家都已经过了新手的阶段了,而且可能大家学 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 是初期最好的配置。这样可以摆脱用户平台之间的差异,然后可以提供安装文档,就是针对不同平台的环境配置,提供图文说明,一步一步较他们如何搭建本地环境。这个部分提供图文教程的好处是可以让用户自己去做,从而让教程关注核心部分。
这门课主要是服务真正的小白的。但是我也要保证视频的内容中是绝对实用的。vagrant 是有几点明显的好处的:
nitrous.io 我自己比划了好几下都没有进去评估,我感觉几年后可能我会用这样的 cloud IDE 来进行开发,但是这两年真的是不行,网速太慢了。我家里用光纤都不行,大学宿舍里肯定效果更差。
他们现在也在大力推本地编辑,但是毕竟本地还是没有运行环境的,也就是说如果断网了,那我就不能运行看效果了,那怎么开发?
他们还提供很好的一站式部署托管等等各种服务,我觉得都很好,但是还是因为网络还是不通畅,暂时我觉得还是自由好。
我现在的工作方式是这样的,大家给看看合理不。
#30 楼 @happypeter 就国内这时断时续的国际带宽来说,nitrous.io 真是不具备什么实用性,综合以上意见,我现在也推荐 Vagrant 里的 ubuntu,无论小白用什么平台,都可以快速得到一个完备的环境。
@richard_ma 我自己学会使用 Capistrano 自动部署,并且成功把我自己的应用部署到 linode VPS 上。比起期待教程,还是自己沉下心来读文档和 Google 更靠谱。