Rails 望有经验的 Rails 程序员总结一下 Rails 开发流程

alijan · 2012年10月02日 · 最后由 air 回复于 2017年05月27日 · 11900 次阅读

是这样: 前段时间读了《Learn Web Development with Rails》(Michael Hartl)这本书。跟着书从头到尾自己动手做了一遍。因为我是首次接触 Web 开发,虽然可以写,但是不是很明白。现在呢,想写写小应用练习,但是不知道从哪里开始了。主要是一些顺序,像 Modules,Controller,View,Rout 这些以怎样的顺序开始写。在网上查了很多,没找到一个好的。要么太笼统,或者不全之类的。 现在假设一下,其他的事已经弄好了,开始写代码了: $ rails new app 这之后的都有哪些步骤,顺序又是怎样的? 还有思路是怎样的?

不知道有没有表达清楚,大概意思就是,不能太笼统,又不能太详细。点到即可,省下的可以自己去搜索。

BTY,有没有简单的开源网站源代码可供新手学习?(感觉 Ruby China 还是有点复杂)

了解。这些就是实践经验,需要靠积累。如果想提升自己,需要参加一下收费课程。如果你运气好,身边有高手带你,也可以。可遇不可求的。

可以看看我发的一个贴,关于测试驱动

RailsCasts China 的代码更适合阅读学习。 https://github.com/pragmaticly/railscasts-china

@alijan 有些东西只能意会,不可言传。最好的办法就是自己去写一个论坛,然后加功能、加功能。 等论坛完成时,所有问题就都解决了。

@yedingding 这可是 Rails4 的代码,你还是不要折磨新手了。

#6 楼 @xds2000 你觉得现有的代码哪里因为是 Rails 4 而折磨人?

@yedingding 下了最新的 railscasts-china 代码看了,虽然用了 upstream 的 rails repo,但完全没用到 rails 4 的重点介绍的新特性。看来我错了,谢谢提醒。所以你提到的* railscasts-china 的代码确实相比 ruby-china 更适合阅读学习 *是正确的,我错了。;-)

我之前下过 railscasts-china 的版本,在 Gemfile 上遇到很多坑,所以我想当然的认为,既然是 upstream 的代码,稳定性很难保证,如果是新手如果一次配置不成功,挫败感很难抹去。但这一次新 fork 的代码没出问题。

下图是我跑的环境截图,我仍然担心有多少新手会读懂 spec 代码,并且梳理出开发流程思路。anyway,还请@yedingding 能有机会讲讲 rspec,让我也开开眼界。这方面我还是需要加强。😄

#8 楼 @xds2000 用 upstream 只是为了等 Rails 4 出来的时候不用去做 upgrade,会尽可能避免一些只能在 Rails 4 里有的东西。估计 @poshboytl 会在 Ruby China Conf 上讲这些测试方面的东西,大家一起期待吧,:)

写得不是一般得好,先记下,回头细看

#10 楼 @nightire 非常感谢。看着很熟悉。确实如你所说,像我这样的新手严重缺乏全局概念。虽然有个想法但是不知道怎么开始,严重受挫。这段时间我正在看第二遍 Rails Tutorial,比第一次顺利多了,也对基本的流程有了一定的认识,看完之后打算开始自己动手写写小网站,这应该帮助很大。 还有就是,我觉得这答案应该可以整理到 Wiki 里,对新手帮助挺大。 再一点,如果有时间,能否把最后第六点所说的那些复杂大概的说一下!虽然可以自己搜索出来,但是结果不一定适合新手看。谢谢!

没有特殊的顺序,这个需要实践,需要结合不同的项目,不同的场景,不要拘泥于这些形式。 http, html, css, javascript, ruby, rails 组件,mysql,数据库。

#10 楼 @nightire 我被感动的热泪盈眶。

#10 楼 @nightire 写的真好:)

想到什么写什么,需要什么用什么,看到脸熟的代码就要想要不要重构。找个自己身边需要用的小 app,从 0 开始,一个 model,一个 action,一个 controller,循序渐进,终成大牛。

受益匪浅!!!

@nightire 你已然成为了我心中 Rails 的导师。文笔思路都给我这等菜鸟新手有了很大的帮助。

“如果我们请一个高手“大略”说说这些复杂,那么即使他说完了,新手看不懂的地方还是看不懂;除非他更加深入浅出的说——那就真的是长篇大论了,会涉及到 N 多书籍、教程、视频、搜索的结果。那么这样就真的好吗?我觉得不是的。因为每一个人的基础起点不一样,对事物理解的方法和顺序也不一样,直接喂到嘴里的饭未必会觉得好吃。”

这句话的确是个道理。但是在我学习的道路上一直有个坎,我不习惯去学习一个我一开始就全然不懂不知何物却又硬生生摆在那里的东西,然后背着这个巨大的心里疙瘩痛苦的看完一大段之后才恍然大悟。能恍然大悟固然好。可是,那段背负着疙瘩的路实在是走得难受。(如果那时有人能稍微提醒你两句,哥们,那个不重要,先放过去吧。的确会好很多的。)

在学习 Rails 路上经常会遇到一些个小疙瘩,其实后来想来,也会觉得那些只是个很细小的东西,可是当时在看的时候心里却老是放不过去。总想着把路上的每个细节步骤都弄懂,不说明了,至少知道是为何物。如果重要则新建知识分支,细看;不重要,心里也可以舒坦的继续下去了。。。

#18 楼 @nightire 顶一下,Keep moving on

#21 楼 @346617552 你谈到的这个问题在我个人看来是这样的:我从来不认为哪一个“疙瘩”是不重要的,仅仅是优先级有区别。一个“疙瘩”就是一个坑,如同我上文所说:如果你的志向就是这一行,就是要开发出卓越的产品,那么这些坑你迟早都是要填满的,因此在我看来所有的“疙瘩”都很重要。

只不过学海无涯而吾生有涯,或许我们没有那么多时间去填满所有的坑,更加明智的做法是排出个顺序来,一步一步的吃掉它们。

首先,大前提是我必须要清楚我的总体目标是什么。其次,在前进的道路上如果遇到了“疙瘩”,我会给自己一个时限去了解一下它是什么?它有多重要?它有多复杂?掌握它需要花费多少代价?通常我会给自己半小时时间去搜集这些信息。

这里我有一个个人的小技巧:我对面的墙上贴着一张大大的白纸,白纸的中心是我的目标,然后向四周延伸出去,每一条延伸线都代表了达成这个目标所必须要完成的路线,比如说:设计、前端、后端、部署、文档、商业模式……等等;之后每一条路线上都会有各种各样的分叉、再分叉、再再分叉……它们分别代表一个坑,或者说一个“疙瘩”。我花半个小时去了解一个坑,然后确定它属于哪一条分叉,并且写出它在我心中的优先级,这个优先级取决于几个因素:它对整体路线的影响力;学习它的难度和时间消耗程度;它是必须我独立掌握的,还是可以交由团队其他成员掌握即可等等。

然后,就放下它吧,继续你之前的进度,反正它已经在你的“黑名单”上了,逃不了的。更重要的是,我不能让它成为我的心结,不能老惦记着却不做任何事情。

一开始肯定会比较头大,因为“黑名单”太长了……不过请不要担心,一个人建立知识体系是漫长的过程,但是体系的节点之间总是有着千丝万缕的联系,经过一段时间有规划的学习之后,你就会发现实际花费的时间和精力总是少于你的事前估计的。

要相信自己,也要养成习惯,更重要的是:不要去想未来还有多长,专注于眼下吧,因为担心未来的功夫浪费的正是眼下的时间。

@nightire Thanks and thanks~ :D

@nightire 大师,麻烦能写一篇文章给我们讲解一下“测试”吗?看过 Rails Tutorial,里面关于测试的代码实在看不下去。。。什么“断言”。。。每次都是直接 copy+paste......非常想听听你对“测试”讲解啊。。。。。。TDD BDD 什么的。。。对于新手学习开发哪种更好些?

@nightire 呵呵,看完啦~~~ 小有收获啊~~~我就觉得所有的 Guides 都应该你这么写,那才叫 Guides 嘛,要不就只能叫 Reference。会多自己看的,不过至少现在已经知道将要看的可以带来什么知识点。心里有底感觉好些。 估计你回答多几个就可以作为《Rails 新手引导》了。。。谢谢了,哥~

继续顶帖~

#10 楼 @nightire 非常感谢你的分享,学到了很多东西

#10 楼 @nightire 好赞,收获很大

我大力顶,受益匪浅。刚准备搞个项目

@nightire 几年过去了,新手来看还是受益匪浅。

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