我正在学习Ruby和Rails,并计划通过rspec使用TDD编写我的第一个应用程序。但是现在我发现我的原则和大多数Rails社区似乎运作的方式之间存在一些摩擦。我看到的大多数示例和教程都告诉我要生成我的代码。我甚至可以在一个命令中为我的对象生成脚手架以及rspec规范。虽然这真的很光滑,但它感觉不对。如果我生成一堆我现在不需要的属性和方法,那就违反了YAGNI,对吧?Ruby on Rails是否会鼓励人们违反YAGNI?
2
A
回答
1
脚手架可以成为快速原型制作的有用工具,但实际上很少用于生产应用。此外,脚手架CRUD资源真的不会产生很多“额外的东西”。但在一天结束时,这只是一个偏好和适合的事情。如果您可以生成脚手架并对其进行修改以适应您的应用程序,并节省您的时间,那就去做吧。但一般来说,一旦你多了解框架的细微差别,你会发现自己创建文件更容易。但总的来说,我并不认为脚手架太多会侵犯YAGNI。
1
如果您正在生成很多必须删除的东西,也许您只是使用了错误的生成器?
请注意,您应该使用脚手架来创建将在控制器中执行操作的模型。例如,如果您的型号不应该有各自的控制器,您想要generate model
而不是generate scaffold
,或者如果某个表格根本不需要某个型号,则可以使用generate migration
,或者对于没有控制器的控制器型号,generate controller
等。
因此,假设您在正确的地方使用脚手架,即创建需要控制器的模型。脚手架实际上产生
- 在您输入(YGNI)
- 测试文件(YGNI)
- 的CRUD操作(也许YAGNI控制项的属性迁移,你可以简单的删除你不”的方法(无论如何应该比自己输入整个文件要容易)
- 在控制器中生成的操作的视图(再次删除那些你不需要的视图)
- CSS文件(这是一个必须删除或编辑,如果你打算转移到生产)
相关问题
- 1. 鼓励Admob点击违反服务条款?
- 2. 你如何鼓励用户填写他们的个人资料?
- 3. CNAME链不鼓励?
- 4. 为什么人们总是鼓励一个网站的单个js?
- 5. Ruby on Rails:协会
- 6. 反射是否违反LSP?
- 7. Ruby on Rails开发人员
- 8. 为什么setAnimationDidStopSelector不鼓励?
- 9. 鼓励地理位置API
- 10. 为什么Debug.Print不鼓励?
- 11. Ruby on Rails是否有“canvas_tag”功能?
- 12. Voltdb是否支持Ruby on Rails?
- 13. Ruby on Rails:测试值是否存在?
- 14. Xcode 4是否支持ruby-on-rails?
- 15. Ruby on Rails检查javascript是否启用
- 16. 是否鼓励在Web应用程序中使用线程?
- 17. 是否自定义机架环境变量不被鼓励?
- 18. 是否不鼓励将oauth2.0授权码存储在cookie中?
- 19. 是否鼓励在Android开发中使用内部类?
- 20. 是否在javascript中使用增量运算符而不鼓励?
- 21. 是否在XHTML中使用fieldset和标签不鼓励?
- 22. 是否鼓励在同一领域使用@Spy和@InjectMocks?
- 23. Ruby on rails对象协会
- 24. Ruby on Rails的协会
- 25. Ruby On Rails中的会话
- 26. Ruby on Rails:与ActiveResource会话?
- 27. Ruby On Rails - Zurb基金会
- 28. Ruby on Rails协会表格
- 29. Ruby on Rails登录机会
- 30. Ruby on Rails的会话=零
不是给定发电机的大粉丝。我唯一经常使用的就是'轨道g迁移'。这实际上是个人喜好的事情 - 但我倾向于写出我需要的其他东西,因为我需要它们。 – nzifnab 2013-04-25 00:08:53