Ruby on rails 你如何规划你的Rails应用程序?

Ruby on rails 你如何规划你的Rails应用程序?,ruby-on-rails,project-planning,mindmapping,Ruby On Rails,Project Planning,Mindmapping,我正在为一位客户启动一个Rails应用程序,我正在考虑创建一个思维导图,或者直接跳到一个Cumber规范 你如何规划你的Rails应用程序 另外一个问题是,假设您也从Cucumber开始,您会在哪一点编写单元测试?在满足规范之前?我不认为只编写Cumber特性作为规范是个好主意。编写测试代码而无法通过测试会导致测试中出现错误,并增加以后需要更正的时间 所以我要做以下几点: 写一些思维导图。但要简单明了项目的主要思想 在sime时间开始编写测试和编码(编写一个测试,使其通过,编写另一个测试,…)

我正在为一位客户启动一个Rails应用程序,我正在考虑创建一个思维导图,或者直接跳到一个Cumber规范

你如何规划你的Rails应用程序


另外一个问题是,假设您也从Cucumber开始,您会在哪一点编写单元测试?在满足规范之前?

我不认为只编写Cumber特性作为规范是个好主意。编写测试代码而无法通过测试会导致测试中出现错误,并增加以后需要更正的时间

所以我要做以下几点:

  • 写一些思维导图。但要简单明了项目的主要思想
  • 在sime时间开始编写测试和编码(编写一个测试,使其通过,编写另一个测试,…)

因此,您将在驱动应用程序时编写规范。保持它的干净,而且保持敏捷,并且能够在项目中间改变一些想法。

< P>我从用户界面的草图开始,然后进展到HTML模型。一旦UI设计完成,我就可以识别应用程序中的RESTful资源及其关系。

我有一个6步流程

  • 我更喜欢在做任何事情之前先计算出模型关系和使用。通常,我尝试将模型定义为包含连贯信息块的单元。通常,首先确定我的应用程序将需要的正交资源(用户、帖子等)。然后,我找出每个资源绝对需要(属性)和可能需要(关联)的信息,以及这些信息可能如何在(方法)上操作,然后定义一组规则来管理资源一致性(验证)

    我通常会重复我的设计几次,因为定义其他模型的行为通常会让我重新思考我已经做过的那些模型。一旦我有了一个我喜欢的模型设计,我将开始重构或专门化(子类化)模型以澄清设计

  • 我编写迁移并为我的模型制作骨架。在实现方法和验证的初稿之前,我通常不会编写测试。在对其进行适度思考之前,如何实施并不总是显而易见的

  • 接下来是测试套件。不管我以前写什么测试,只要我能确定后端是正常的

  • 这就是我拼凑控制流的时候。成功的请求会发生什么?请求不成功?哪些控制器操作将链接到其他控制器?通常在控制器和模型之间有一个1-1映射(不包括模型的子类),我经常会遇到需要对多个模型类型进行操作的情况,为此我可能会创建一个新的控制器。根据我的应用程序的复杂程度,我可以将流程建模为状态机

  • 最后,我创建视图。我首先勾勒出基于UI的模型,它严重受模型的关系和属性的影响。抽象出常见的部分,然后写出视图

  • 润色用户界面。我创建了一个CSS,并开始用远程调用替换链接,甚至在适当的时候只使用javascript

  • 我可以将第2步和第3步交替进行。我发现在我编写了要测试的代码之后编写测试非常容易。特别是因为我通常在编写时在控制台中进行测试,而一半的测试是通过从控制台粘贴来完成的


    我还可以为每个模型/控制器划分步骤4和步骤5。我可以回顾和修改以前的任何一点决定,并通过我的步骤传播这些更改。

    嗨,John,你不能通过仔细映射域来识别RESTful资源吗?你可以,但首先从UI开始可以帮助我识别域边界在哪里。请看否。只要您允许自己在项目发展时更改之前定义的内容,您就可以保持敏捷。我正在考虑尽早编写功能,以便能够确定需要哪些模型方法,然后编写单元测试,然后回到让功能通过。我认为这应该是社区维基。你没有说你如何识别模型和控制器。我有点掩饰了这一点。我觉得这样一个模糊的问题描述得太深入了。我已经编辑好了,现在就把它包括进去。当我在做的时候,我在我的其他步骤中添加了类似的细节,甚至添加了一个。