我正在学习 Ruby 和 Rails,我计划通过 rspec 使用 TDD 编写我的第一个应用程序。但现在我发现我的原则与大多数 Rails 社区的运作方式之间存在一些摩擦。我看到的大多数示例和教程都在告诉我生成我的代码。我什至可以在一个命令中为我的对象生成脚手架以及 rspec 规范。虽然这真的很光滑,但感觉不太对劲。如果我生成了一堆我现在实际上不需要的属性和方法,那就违反了 YAGNI,对吧?
问问题
132 次
2 回答
1
如果你生成了很多你必须删除的东西,也许你只是使用了错误的生成器?
请注意,您应该使用脚手架来创建一个模型,该模型也将在控制器中具有操作。还有其他生成器,例如,如果您的模型根本不应该有相应的控制器,您想要generate model
,不generate scaffold
,或者如果表根本不需要您可以使用的模型generate migration
,或者对于没有模型的控制器,generate controller
并且很快。
所以假设你在正确的地方使用脚手架,也就是创建一个需要控制器的模型。脚手架实际生成
- 具有输入中属性的迁移 (YGNI)
- 测试文件 (YGNI)
- crud 操作的控制器条目(可能是 YAGNI;您可以简单地删除文件不需要的方法。无论如何应该比自己键入整个文件更容易)
- 它在控制器中生成的操作的视图(同样,删除您不需要的操作)
- 一个 CSS 文件(如果您打算转移到生产环境,则必须始终删除或编辑该文件)
于 2013-04-24T23:47:38.063 回答
1
脚手架可以成为快速原型制作的有用工具,但它实际上很少用于生产应用程序。此外,为 CRUD 资源搭建脚手架并不会产生很多“额外的东西”。但归根结底,这只是一种偏好和合适的东西。如果您可以生成一个脚手架并对其进行修改以适合您的应用程序,并且可以节省您的时间,那就去做吧。但是通常,一旦您进一步了解了框架的细微差别,您会发现自己创建文件会更容易。但总的来说,我并不认为脚手架过多地违反了 YAGNI。
于 2013-04-24T23:25:42.363 回答