Ruby on rails RubyonRails开发流程/顺序

Ruby on rails RubyonRails开发流程/顺序,ruby-on-rails,web,workflow,project-management,organization,Ruby On Rails,Web,Workflow,Project Management,Organization,现在大学暑假结束了,我的课程也结束了,我需要在这个夏天保持头脑清醒。我决定从头到尾尝试制作一个足够好的RubyonRails应用程序 我以前尝试过这样做,但我经常遇到的问题是: “在完成之前,我无法真正完成这项工作,但除非我完成这项需要首先完成的工作,否则它似乎不会起作用。” 基本上,我的项目很快就失控了,因为我不知道该做什么,什么时候做 我的问题是,哦,伟大而明智的SO社区,开发rails应用程序的最普遍方式是什么 我是从模型、视图还是控制器开始? 先生成HTML还是先生成服务器代码更好? 完

现在大学暑假结束了,我的课程也结束了,我需要在这个夏天保持头脑清醒。我决定从头到尾尝试制作一个足够好的RubyonRails应用程序

我以前尝试过这样做,但我经常遇到的问题是: “在完成之前,我无法真正完成这项工作,但除非我完成这项需要首先完成的工作,否则它似乎不会起作用。”

基本上,我的项目很快就失控了,因为我不知道该做什么,什么时候做

我的问题是,哦,伟大而明智的SO社区,开发rails应用程序的最普遍方式是什么

我是从模型、视图还是控制器开始? 先生成HTML还是先生成服务器代码更好? 完成事情的最佳方式是什么

提前谢谢

  • 设计
  • 决定要实现哪些功能
  • 决定要使用哪些gems来实现这些功能
  • 单独配置和实现这些gem/特性-使用Git
    • 意识到你在这里花了很多时间
    • 考虑修剪特征或简化设计。也许回到顶端
  • 开始编写主应用程序-使用Git
  • 一起配置这些gem-使用Git
  • 编写模型-使用Git
  • 尝试编写控制器和视图(使用脚手架开始,这样您将进行更多的黑客操作,减少编码)-使用Git
  • 在最后三个步骤中遇到问题,或者发现您必须实现的新功能,以使一切正常工作
  • 单独解决这个问题(在一个单独的rails应用程序中)——一定要使用Git
  • 重复
关于使用Git Damien Roche在评论中建议使用Git分支,而不是单独测试新工具

我从一开始就在Rails中使用Git,我建议使用Git分支和独立测试新工具

e、 g:您可以在这里看到我的公共Github存储库:。它是一个简单的单分支存储库,我在其中记录了我为逐步形成我的项目而采取的每个步骤

但是当使用一个新的工具或库时,很多时候事情都会破裂,你一开始就不知道为什么事情不会按照他们在教程中说的那样工作。我是否使用了错误版本的库?错误版本的Rails?我是否按错误的顺序添加了工具

为了理解这些问题,很多时候你会想要比较一个工作目录是否工作。这意味着您需要两个并排工作的目录

当然,您可以通过将一个目录克隆到另一个目录并签出两个不同的分支来实现上述目标,但我们正在超越自己。在使一个gem与您正在使用的十几个其他gem共存之前,您应该确保您知道如何使它在最简单的场景中工作。意思是用普通导轨,最低限度是必需的

因此,首先,您将把这个独立的分支合并到一个香草rails应用程序中。无论如何,此分支与您的主分支无关,只是它应该使用与您的应用程序相同版本的rails。您可以将其托管在同一个存储库或单独的存储库中,这并不重要

一旦您确信知道它应该如何独立工作,就可以使用该独立分支的提交日志跟踪您所采取的所有步骤,并将这些提交适当地合并到主分支顶部的功能分支中。当你修复了bug并使所有的gem协调工作后,你的特性分支就可以被拉入主分支了


HTH.

Rails社区大力推动某种形式的测试驱动开发。当您刚刚开始时,开始编写测试可能没有意义,但您仍然可以保持相同的方法

因此,基本上,您只需尝试在浏览器中执行您想要的操作,并在需要时编写您需要的内容即可

因此,开始吧,只需生成一个新的rails应用程序并启动服务器。它将为您提供默认的Rails环境信息。您不希望它成为主页,因此可以转到routes.rb文件并定义根地址(例如root'welcome#index')

现在重新加载页面时会出现错误“Uninitialized constant WelcomeController”。因此,现在需要一个控制器。添加控制器

现在出现错误“找不到WelcomeController的操作“索引”。请在WelcomeController上定义索引操作

现在出现错误“缺少模板欢迎/索引”。请添加视图/welcome/index.html.erb视图

等等等等

很快你就会发现自己需要模型。从视图中引用你想与之交互的模型。例如,
@articles.each do | article |
等。你会得到一个“nil上未定义的方法”或类似的方法

然后,您在控制器中定义您想要与之交互的模型(例如,
@articles=Article.all
)。然后您将得到一个错误,即您的模型不存在。请创建模型

向视图中所需的模型添加属性


重复这个过程…

我认为这是一个好问题,我希望在这里看到一些有见地的答案。 在我看来,这是伴随着实践而来的,你将不断地在M、V和C.之间切换,我认为模型通常是第一个实现的部分,因为它通常由真实世界的问题域决定,因此不那么流畅和主观。然后,控制器和视图接下来。如果你只执行最小的工作PAR。t随着每次迭代,您可以更快地看到结果,这有助于避免gett